EMR Flume支持多种服务启动方式,本文介绍通过EMR控制台修改Flume配置并启动Flume Agent,继而实时同步HDFS Audit日志至HDFS。

前提条件

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

启动Flume Agent

  1. 进入Flume页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,选择集群服务 > FLUME
  2. 配置emr-worker-1节点的Flume Agent。
    以下配置项请遵循开源Flume内容,详情请参见 Flume
    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路径。
      • 高可用集群:例如hdfs://emr-cluster/path
      • 非高可用集群:例如hdfs://emr-header-1:9000/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 可选参数,默认值为10000
      default-agent.channels.default-channel.dataDirs Channel存储Event数据的路径。

      可选参数,默认路径~/.flume/file-channel/data

      default-agent.channels.default-channel.checkpointDir 存储Checkpoint的路径。

      可选参数,默认路径~/.flume/file-channel/checkpoint

      default-agent.channels.default-channel.capacity 根据HDFS Roll设置。

      可选参数,默认值为1000000

    4. 单击确定
  3. 单击部署拓扑页签。
    您可以查看Flume Agent组件emr-worker-1节点的状态信息,组件状态为 STARTED
  4. 请参见上面步骤2配置emr-worker-2节点。
  5. 配置Master实例的Flume Agent。
    以下配置项请遵循开源Flume内容,详情请参见 Flume
    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的路径。

      可选参数,默认路径为~/.flume/taildir_position.json

      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. 单击确定
  6. 启动Flume Agent。
    1. 单击右上角的保存
    2. 确认修改对话中,输入执行原因,开启自动更新配置开关,单击确定
    3. 在右上角选择操作 > 重启All Components
    4. 执行集群操作对话框中,输入执行原因,单击确定
    5. 确认对话框,单击确定
      执行完成后,日志就从HDFS Audit同步至HDFS了。

查看日志

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

查看监控信息

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