本文以E-MapReduce Flume实时同步HDFS audit日志至HDFS为例,介绍如何使用Flume。

前提条件

已创建E-MapReduce的Hadoop集群,并且选择了Flume服务。详情请参见创建集群

背景信息

EMR-3.19.0及后续版本,您可以在E-MapReduce控制台配置和管理Flume Agent。

Flume Agent拓扑结构如图所示。flume
注意 您可以根据实际情况设置Flume Agent的拓扑结构。

Flume其它使用场景请参见Flume配置说明

启动Flume Agent

  1. 进入Flume页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组
    3. 单击上方的集群管理页签。
    4. 在左侧导航栏,选择集群服务 > FLUME
  2. 配置Core实例参数。
    1. 配置emr-worker-1节点的Flume Agent。
      1. 单击配置页签,配置以下参数。
        配置项 参数值
        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
      2. 服务配置区域,单击flume-conf页签。
      3. 单击自定义配置,添加配置项。
        配置项 描述
        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设置。
      4. 单击保存
    2. 可选:单击部署拓扑页签。
      您可以查看Flume Agent组件emr-worker-1节点的状态信息,组件状态为STARTED
    3. 请参见上面步骤a配置emr-worker-2节点。
  3. 配置Master实例。
    1. 配置Flume Agent。
      1. 单击配置页签,配置参数。
        配置项 参数值
        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
      2. 服务配置区域,单击flume-conf页签。
      3. 单击自定义配置,添加配置项。
        配置项 参数值
        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
  4. 启动Flume Agent。
    1. 单击右上角的保存
    2. 确认修改对话中,配置各项参数,单击确定
    3. 单击右上角的操作 > 重启 All Components
    4. 执行集群操作对话框中,配置各项参数,单击确定
    5. 确认对话框,单击确定

查看日志

Flume Agent日志的存放路径为/mnt/disk1/log/flume/default-agent/flume.log

查看监控信息

在Flume页面的状态页签,您可以查看Flume Agent的监控信息。