本文以E-MapReduce Flume实时同步HDFS audit日志至HDFS为例,介绍如何使用Flume。
前提条件
背景信息
Apache Flume是一个分布式、可靠、高可用的系统,用于从大量不同的数据源有效地收集、聚合和移动大量日志数据进行集中式数据存储。Flume的核心是Agent,Agent中包含Source、Channel和Sink。
EMR-3.19.0及后续版本,您可以在E-MapReduce控制台配置和管理Flume Agent。
Flume Agent拓扑结构如图所示。

注意 您可以根据实际情况设置Flume Agent的拓扑结构。
Flume其它使用场景请参见Flume配置说明。
启动Flume Agent
- 进入Flume页面。
- 登录阿里云E-MapReduce控制台。
- 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组。
- 单击上方的集群管理页签。
- 在集群管理页面,单击相应集群所在行的详情。
- 在左侧导航栏,选择集群服务 > FLUME。
- 配置Core实例参数。
- 配置emr-worker-1节点的Flume Agent。
- 单击配置页签,配置如下参数。
配置项 参数值 default-agent.sinks.default-sink.type hdfs default-agent.channels.default-channel.type file default-agent.sources.default-source.type avro deploy_node_hostname emr-worker-1 - 在服务配置区域,单击flume-conf页签。
- 单击自定义配置,添加如下配置项。
配置项 描述 default-agent.sinks.default-sink.hdfs.path 适用高可用集群。 例如hdfs://emr-cluster/path。
default-agent.sinks.default-sink.hdfs.fileType DataStream default-agent.sinks.default-sink.hdfs.rollSize 0 default-agent.sinks.default-sink.hdfs.rollCount 0 default-agent.sinks.default-sink.hdfs.rollInterval 86400 default-agent.sinks.default-sink.hdfs.batchSize 51200 default-agent.sources.default-source.bind 0.0.0.0 default-agent.sources.default-source.port 根据实际设置。 default-agent.channels.default-channel.transactionCapacity 51200 default-agent.channels.default-channel.dataDirs Channel存储Event数据的路径。 default-agent.channels.default-channel.checkpointDir 存储Checkpoint的路径。 default-agent.channels.default-channel.capacity 根据HDFS Roll设置。 - 单击保存。
- 单击配置页签,配置如下参数。
- 可选:单击部署拓扑页签。您可以查看Flume Agent组件emr-worker-1节点的状态信息,组件状态为STARTED。
- 请参见上面步骤a配置emr-worker-2节点。
- 配置emr-worker-1节点的Flume Agent。
- 配置Master实例。
- 配置Flume Agent。
- 单击配置页签,配置参数。
配置项 参数值 additional_sinks k1 deploy_node_hostname emr-header-1 default-agent.sources.default-source.type taildir default-agent.sinks.default-sink.type avro default-agent.channels.default-channel.type file - 在服务配置区域,单击flume-conf页签。
- 单击自定义配置,添加如下配置项。
配置项 参数值 default-agent.sources.default-source.filegroups f1 default-agent.sources.default-source.filegroups.f1 /mnt/disk1/log/hadoop-hdfs/hdfs-audit.log.* default-agent.sources.default-source.positionFile 存储Position File的路径。 default-agent.channels.default-channel.checkpointDir 存储Checkpoint的路径。 default-agent.channels.default-channel.dataDirs 存储Event数据的路径。 default-agent.channels.default-channel.capacity 根据HDFS Roll设置。 default-agent.sources.default-source.batchSize 2000 default-agent.channels.default-channel.transactionCapacity 2000 default-agent.sources.default-source.ignoreRenameWhenMultiMatching true default-agent.sinkgroups g1 default-agent.sinkgroups.g1.sinks default-sink k1 default-agent.sinkgroups.g1.processor.type failover default-agent.sinkgroups.g1.processor.priority.default-sink 10 default-agent.sinkgroups.g1.processor.priority.k1 5 default-agent.sinks.default-sink.hostname emr-worker-1节点的IP地址。 default-agent.sinks.default-sink.port emr-worker-1节点Flume Agent的Port。 default-agent.sinks.k1.hostname emr-worker-2节点的IP地址。 default-agent.sinks.k1.port emr-worker-2节点Flume Agent的Port。 default-agent.sinks.default-sink.batch-size 2000 default-agent.sinks.k1.batch-size 2000 default-agent.sinks.k1.type avro default-agent.sinks.k1.channel default-channel
- 单击配置页签,配置参数。
- 配置Flume Agent。
- 启动Flume Agent。
- 单击右上角的保存。
- 在确认修改对话中,配置各项参数,单击确定。
- 单击右上角的操作 > 重启 All Components。
- 在执行集群操作对话框中,配置各项参数,单击确定。
- 在确认对话框,单击确定。
查看日志
Flume Agent日志的存放路径为/mnt/disk1/log/flume/default-agent/flume.log。
查看监控信息
在Flume页面的状态页签,您可以查看Flume Agent的监控信息。
在文档使用中是否遇到以下问题
更多建议
匿名提交