一文看懂大数据生态圈完整知识体系
徐葳
随着大数据行业的发展,大数据生态圈中相关的技术也在一直迭代进步,作者有幸亲身经历了国内大数据行业从零到一的发展历程,通过本文希望能够帮助大家快速构建大数据生态圈完整知识体系。
目前大数据生态圈中的核心技术总结下来如图1所示,分为以下9类,下面分别介绍。
数据采集也被称为数据同步。随着互联网、移动互联网、物联网等技术的兴起,产生了海量数据。这些数据散落在各个地方,我们需要将这些数据融合到一起,然后从这些海量数据中计算出一些有价值的内容。此时第一步需要做的是把数据采集过来。数据采集是大数据的基础,没有数据采集,何谈大数据!
数据采集技术框架包括以几种。
表1
表2
表3
Flume、Logstash和FileBeat的技术选型依据如图2所示
Sqoop和Datax之间的技术选型依据如图3所示。
Cannal和Maxwell之间的技术选型依据如图4所示
数据的快速增长推动了技术的发展,涌现出了一批优秀的、支持分布式的存储系统。
数据存储技术框架包括HDFS、HBase、Kudu、Kafka等。
在传统的IT领域中,企业的服务器资源(内存、CPU等)是有限的,也是固定的。但是,服务器的应用场景却是灵活多变的。例如,今天临时上线了一个系统,需要占用几台服务器;过了几天,需要把这个系统下线,把这几台服务器清理出来。
在大数据时代到来之前,服务器资源的变更对应的是系统的上线和下线,这些变动是有限的。随着大数据时代的到来,临时任务的需求量大增,这些任务往往需要大量的服务器资源。如果此时还依赖运维人员人工对接服务器资源的变更,显然是不现实的。因此,分布式资源管理系统应运而生,常见的包括YARN、Kubernetes和Mesos,它们的典型应用领域如图5所示。
数据计算分为离线数据计算和实时数据计算。
(1)离线数据计算。
大数据中的离线数据计算引擎经过十几年的发展,到目前为止主要发生了3次大的变更。
(2)实时数据计算。
业内最典型的实时数据计算场景是天猫“双十一”的数据大屏。数据大屏中展现的成交总金额、订单总量等数据指标,都是实时计算出来的。用户购买商品后,商品的金额就会被实时增加到数据大屏中的成交总金额中。
他和Storm、Flink之间的区别见表4。
表4
Storm、Spark、Flink 之间的技术选型依据如图6所示。
因此,目前企业中离线计算主要使用Spark,实时计算主要使用Flink。
包括Hive、Impala、Kylin、Clickhouse、Druid、Drois等,它们的典型应用场景如图7所示。
Hive、Impala和Kylin属于典型的离线OLAP数据分析引擎,主要应用在离线数据分析领域,它们之间的区别见表5。
表5
Clickhouse、Druid和Drois属于典型的实时OLAP数据分析引擎,主要应用在实时数据分析领域,它们之间的区别见表6。
表6
包括Azkaban、Ooize、DolphinScheduler等。它们适用于普通定时执行的例行化任务,以及包含复杂依赖关系的多级任务进行调度,支持分布式,保证调度系统的性能和稳定性,它们之间的区别见表7,它们之前的技术选型依据如图8所示。
图8
大数据底层基础技术框架主要是指Zookeeper。Zookeepe主要提供常用的基础功能(例如:命名空间、配置服务等),大数据生态圈中的Hadoop(HA)、HBase、Kafka等技术组件的运行都会用到Zookeeper。
随着企业中数据的逐步积累,针对海量数据的统计分析需求会变得越来越多样化:不仅要进行分析,还要实现多条件快速复杂查询。例如,电商网站中的商品搜索功能,以及各种搜索引擎中的信息检索功能,这些功能都属于多条件快速复杂查询的范畴。
在选择全文检索引擎工具时,可以从易用性、扩展性、稳定性、集群运维难度、项目集成程度、社区活跃度这几个方面进行对比。Lucene、Solr和Elasticsearch的对比见表8。
表8
企业如果想从传统的数据处理转型到大数据处理,首先要做就是搭建一个稳定可靠的大数据平台。
一个完整的大数据平台需要包含数据采集、数据存储、数据计算、数据分析、集群监控等功能,这就意味着其中需要包含Flume、Kafka、Haodop、Hive、HBase、Spark、Flink等组件,这些组件需要部署到上百台甚至上千台机器中。
如果依靠运维人员单独安装每一个组件,则工作量比较大,而且需要考虑版本之间的匹配问题及各种冲突问题,并且后期集群维护工作也会给运维人员造成很大的压力。
于是,国外一些厂商就对大数据中的组件进行了封装,提供了一体化的大数据平台,利用它可以快速安装大数据组件。目前业内最常见的是包括CDH、HDP、CDP等。
三者的关系如图9所示。
以上内容出自于《大数据技术及架构图解实战派》一书。