自己动手做大数据系统(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.7 Flume

通过前面各节的大数据组件工具,我们可以把关系型数据库的结构化数据通过Sqoop工具同步到Hadoop平台上的HDFS中,Hive的SQL开发语言对HDFS中的数据基于业务逻辑和指标进行聚合统计计算,并分层存储在HDFS中。海量数据要想低延迟地满足业务的快速查询,就需要使用针对查询优化基于列式存储设计的HBase数据库。那么,如果需要采集非结构化数据到大数据系统并进行低延迟的流处理和分析应用,有什么成熟的大数据组件工具呢?下面会具体介绍。

Flume是一个分布式、可靠、高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

Flume架构如图2-8所示。

图2-8 Flume架构图

Flume通常可以监控指定网站服务器目录下文件的变化(如有新文件或数据将文件上传到Agent),Agent中的Source接收到数据之后,会将该数据发送给Channel,Channel作为一个数据缓冲区会临时存放该数据,随后Sink会将Channel中的数据发送到指定的地方,如HDFS等。

对应的Flume逻辑架构如图2-9所示。

通过图2-9中的逻辑架构设计,可以保证Flume的高可用性。

企业一般选择Flume做数据采集工具,会有以下原因:

• 稳定、可靠性高。Flume通过参数设置,可以实现将所传输的数据先进行本地持久化再传输,传输完成后在本地删除。

• 高可用性。Flume采用了3层架构,分别为Agent、Collector和Storage。每一层均可以水平扩展,所有Agent和Collector由master统一管理,这就使得系统易于监控和维护;且其允许有多个master(使用ZooKeeper进行管理和负载均衡),这样就避免了单点故障的问题。

图2-9 Flume逻辑架构图

• 便于管理和功能扩展。Flume自带了很多组件,包括各种Agent(file、syslog等)、Collector和Storage(file、HDFS等)。业务开发可以根据业务场景需要,进行基于提供组件的数据处理过滤等功能扩展。

Flume的安装与配置步骤如下。

1)进入CentOS 7所对应的Flume安装文件夹,在Apache Flume官网下载软件包apache-flume-1.7.0-bin.tar.gz。

2)下载完成后,解压缩并重命名所解压缩的文件夹名称:

3)进入flume文件夹,进行配置文件的设置:

4)使用vi或vim工具更改对应的flume.conf文件配置:

5)修改完成后输入保存命令(:wq!),退出vi工具。然后,将FLUME_HOME添加到系统环境变量文件中,启动并验证对应的服务,使用如下命令行: