为什么需要大数据处理技术?
随着传感器技术、网络通信技术以及计算机技术的发展和广泛应用,数据的生产、收集、存储和计算变得越来越高效,有效地分析和处理这些数据通常会产生巨大的社会价值。
内容服务商(如新闻资讯网站、视频网站、音乐网站等)通过收集用户在消费内容时生产的点击、分享、消费时长等行为数据,可以更加精准地理解每个用户的消费偏好,一方面可以为C端用户提供更加符合个人兴趣的内容,从而产生更好的产品使用体验。另一方面可以为B端客户广告投放触达更加精准的潜在用户群体,不仅减少了因对广告内容不感兴趣而对C端用户的体验伤害,也帮B端客户节省了不必要的广告费用开销提高了ROI,同时也因自身流量得到更合理的分配而产生了更高经济回报,实现了用户、客户以及平台的多赢。
不仅内容消费行业,生活服务、互联网金融、自动驾驶、互联网医疗、共享出行等行业在大数据技术的加持下都得到了快速的发展,诞生了像美团、富途、滴滴等一众优秀上市公司,企业在帮助消费者获得更好服务的同时,也帮助越来越多的从业者获得稳定的收入,实现了游戏参与者的多赢,创造了巨大的社会价值。
有哪些大数据处理技术?
数据的生产方式千变万化,为了能够对海量数据进行分析处理,需要解决数据的收集、存储和计算三个方面的问题,一种可行的大数据处理技术栈为:消息队列、分布式存储以及分布式计算。为了在数据越来越大的时候,能够提供足够的存储空间以及在可控的时间内完成计算,这些技术通常都采用集群模式,并具备水平扩展能力(即通过增加机器扩充集群规模的方式提高集群整体的服务性能)。
消息队列技术抽象看包含三个角色:生产者、队列和消费者,消息是一个抽象概念,可以表示任何应用数据。主流的消息队列有:activemq、rabbitmq、rocketmq以及kafka等。通过消息队列,生产者可以将消息投递到队列中进行暂存,消费者可以从队列中订阅感兴趣的消息并在消息到来的时候进行处理。采用消息队列技术解决数据的收集问题,可以为数据存储和计算环节屏蔽数据生产技术的复杂性。
分布式存储技术相对于单台服务器的内存或者磁盘存储主要特点在于分布式:即通过集群将多台服务器的内存或者磁盘等存储资源整合成一个对外提供服务的整体,从而满足大数据对海量存储空间的需求。主流的分布式存储技术有hdfs、hbase、redis等。
分布式计算技术通常构建在分布式存储技术和消息队列技术的基础上,根据处理时效性的不同可以分为批处理和流处理两类。批处理分布式计算时效性通常在小时级或者天级,一般采用“调度运算到数据”的策略对大数据进行并发处理。流处理分布式计算时效性通常在秒级或者分钟级,一般采用“调度数据到运算”的策略对大数据进行并发处理。主流的批处理分布式计算技术有mapreduce、hive、impala等,主流的流处理分布式计算技术有storm、spark、flink等。其中spark和flink也支持进行批处理分布式计算。
工业界大数据处理技术从数据生产、收集、存储到计算典型的处理流程如下图所示:
简要概述处理流程:数据生产者把数据以消息的方式发布到消息队列中,消息队列中的数据一方面可以进入流处理分布式计算程序直接进行运算分析,另一方面可以被写入分布式存储供批处理分布式计算进行分析处理。
接下来的章节我们将以一个完整的工业大数据分析案例为例分别对消息队列、分布式存储、批处理分布式计算以及流处理分布式计算技术的道和术展开详细介绍,力求使读者做到知原理会应用。