大数据平台架构简介
大数据架构图
该架构自下而上分为3层,分别是数据采集层,数据存储
本文从大数据的整体架构出发,分层介绍了不同组件的应用场景。可以对大数据的初学者提供一定的参考。以下为集群架构图: 大数据架构图 该架构自下而上分为3层,分别是数据采集层,数据存储和处理层,应用层。 下面分层介绍下各层组件的大致用法。 1.数据采集层 数据采集分为了实时采集和批量采集,实时采集主要通过Kafka和Spark Streaming,批量采集则用Datax,Sqoop,Shell和Python脚本完成。 1.1 Datax 目前作为我司主流的批量数据同步工具,主要用于一些逻辑简单的单表数据同步大数据技术架构,如 Oracle->MySQL, Oracle->HDFS,MySQL->MySQL,MySQL->HDFS,HDFS->MySQL等。 这里的HDFS都是直接写入到了Hive表的存储路径。 1.2 Sqoop 部分很老的脚本仍在使用,如MySQL->Hive, Oracle->MySQL等,已经基本弃用。 1.3 Python脚本 部分人在用,用Python脚本做一些MySQL之间和Oracle和MySQL之间的数据同步。 1.4 Shell脚本 主要做一些复杂逻辑的数据同步。 如:同步的数据是多张MySQL表Join获得的,或者同步来的数据要写入到Hive分区表(通常会结合Datax,将批量数据写入临时表,然后查询临时表,处理分区字段写入到分区表内)。 1.5 Kafka+Spark Streaming的实时同步 这部分一般是客户端/服务端的用户行为数据,一部分是用户客户端自己上报(如用户的点击),一部分是Flume采集的服务器日志,发送到Kafka,这类数据一般都是实时的。通过Kafka的MirrorMaker把数据镜像到分析环境的Kafka,我们就可以用Spark Streaming应用程序消费,然后落地到HDFS,Hbase,ES等。 二、数据存储和处理层 这一层主要是数据的存储和处理,常用的组件有Hive,Hbase,Spark, ES等。 2.1 Hive 作为传统的数仓工具,存储着各个渠道同步过来的数据,同时也是业务分析人员常用的分析工具。一般业务数据会通过批量同步工具导入到Hive表,用户行为数据则会通过实时采集存储到HDFS,然后再洗成Hive表。 2.2 Hbase 主要两种用途,第一,作为实时计算的中间数据存储,第二,用于存储一些快照数据。 Hbase可以与Hive集成,可以有效利用HBase数据库的存储特性,如行更新和列索引等来更新Hive表。不过这种集成执行Hive查询效率极低。需要权衡考虑使用。 2.3 Spark 部分离线应用会使用Hive on Spark,把Spark作为Hive的一个计算引擎,将Hive的查询作为Spark的任务提交到Spark集群上进行计算。该方法可以提高Hive查询的性能,同时为已经部署了Hive或者Spark的用户提供了更加灵活的选择。 实时应用则会通过Spark Streaming结合Hbase做一些逻辑计算,然后将实时计算结果传给下游开发人员。 2.4 ES 存储Spark Streaming实时格式化后的数据,主要用于一些客服,运维人员的数据查证。也可以存储APP等的报错数据,用于异常定位。 三、数据应用层 数据应用层主要是各种报表数据支持,分析报告,接口服务,APP数据支持和违规打击等等。 四、最后 这只是一个最常规的大数据架构,一些组件并没有介绍,如负责脚本调度的azkaban,应用协调的zookeeper,集群资源管理的yarn,用于计算的MapReduce,hadoop的图形化截面hue,权限管理的sentry等等。 此外现在比较火的实时数仓也没有涉及(如ClickHouse,Kudu,Flink等等)。 (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |