简介
本文介绍完善的大数据中台架构了解这些架构里每个部分的位置,功能和含义及背后原理及应用场景。
帮助技术与产品经理对大数据技术体系有个全面的了解。
数据中台定义:集成离线数仓与实时数仓,并以多数据源统一整合采集到kafka,再通过kafka进行离线数据仓库及实时数据仓库,并集用户标签,统一数据资产管理(对数据资产目录、元数据、数据质量、数据血缘、数据生命周期等进行管理和展示,以一种更直观的方式展现企业的数据资产,提升企业的数据意识)提供给客户以及上层领导进行数据分析、数据运营等功能。
直观框架图如下:
整个数据流程分为五个环节
从数据采集-->数据传输-->数据存储-->数据计算及查询-->数据可视化及分析。
1、数据采集
根据平台产生的日志,将数据采集后写入到HDFS,HBase,Hive ,提供后续计算流程进行消费使用。
数据来源有网络的Python爬虫数据、java后台日志数据、还有各种 API 接口及数据文件等等,汇聚到服务器本地磁盘。针对不同的数据来源有各自的采集方式,其中因为日志数据有数据量多,数据结构多样,产生环境复杂等特点,属于主要采集的对象。日志采集框架挑应用较广泛的有 Flume,Logstash进行数据采集。
Flume
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。
主要特点:
- 可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。
- 可扩展性Flume采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。
- 可管理性
(1)所有agent和colletor由master统一管理,这使得系统便于维护。
(2)多master情况,Flume利用ZooKeeper和gossip,保证动态配置数据的一致性。
(3)用户可以在master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。
(4)Flume提供了web 和shell script command两种形式对数据流进行管理。
- 功能可扩展性用户可以根据需要添加自己的agent,collector或者storage。此外,Flume自带了很多组件,包括各种agent(file, syslog等),collector和storage(file,HDFS等)。
- 文档丰富,社区活跃Flume 已经成为 Hadoop 生态系统的标配,它的文档比较丰富,社区比较活跃,方便我们学习。
Logstash
Logstash是一个开源数据收集引擎&