1.2 浅析大数据工作流程、技术与应用
1.2.1 大数据工作流程
大数据已经悄然改变了我们的工作与生活,那么大数据到底是怎样工作的?
图 1.2.1 简单演示了大数据的主要处理步骤,主要包括数据采集、数据存储、数据处理、数据运用等主要环节。
图1.2.1 简易的大数据处理流程图
(1)数据采集
大数据处理的第一步是数据的收集或汇总。现在的中大型项目通常采用微服务架构进行分布式部署,所以数据的采集会在多台服务器上进行,且采集过程不能影响正常业务的开展。基于这种需求,就衍生了多种日志收集工具,如 Flume、Logstash、Kibana 等,它们都能通过简单的配置完成复杂的数据收集和数据聚合。
(2)数据存储
收集到数据后,数据该如何进行存储?MySQL、Oracle等传统的关系型数据库是大家最为熟知的,它们的优点是能够快速存储结构化的数据,并支持多种访问和处理方式。但大数据的数据结构通常是半结构化(如日志数据)、甚至是非结构化的(如视频、音频数据),为了解决海量半结构化和非结构化数据的存储,衍生了Hadoop HDFS、KFS、GFS等分布式文件系统,它们都能够支持结构化、半结构化和非结构化数据的存储,并可横向扩展。
分布式文件系统完美地解决了海量数据存储的问题,但是一个优秀的数据存储系统必须同时考虑数据存储和访问两方面的问题,比如你希望能够对数据进行随机访问,这是传统的关系型数据库所擅长的,但却不是分布式文件系统所擅长的,那么有没有一种存储方案能够同时兼具分布式文件系统和关系型数据库的优点呢?基于这种需求,就产生了HBase、MongoDB。
(3)数据处理
大数据处理通常分为数据批处理和数据流处理两种。
数据批处理:对一段时间内海量的离线数据进行统一的处理,对应的处理框架有Hadoop MapReduce、Spark、Flink等;
数据流处理:对运动中的数据进行处理,即在接收数据的同时就对其进行处理,对应的处理框架有Storm、Spark Streaming、Flink Streaming 等。
数据批处理和数据流处理各有适用的场景,时间不敏感或者硬件资源有限时,可以采用数据批处理;时间敏感和及时性要求高就可以采用数据流处理。随着服务器硬件的价格越来越低和大家对及时性的要求越来越高,数据流处理将越来越普遍,如股票价格的实时预测和电商运营数据分析等。
(4)数据运用
这是前面数据采集、数据存储、数据处理的目的所在,是数据的具体应用之所在,也是数据核心价值体现之所在。它所涉及的领域广、种类多、形式复杂、效果巨大,具体细节见后续介绍。
在对大数据的工作流程有了一个简单的认识后,下面进一步对其中的流程环节进行介绍。