flume 1.9 源码阅读(二)

Flume NG 启动脚本分析

启动 flume-ng-agent

/root/flume/bin/flume-ng agent --name agent1 -c conf -f flume-conf.conf

配置文件如下:

agent1.sources = source1
agent1.channels = channel1
agent1.sinks = sink1

agent1.sources.source1.type = exec
agent1.sources.source1.channels = channel1
agent1.sources.source1.command = tail -F /root/flume/test.log

agent1.channels.channel1.type = memory
agent1.channels.channel1.capacity = 1000
agent1.channels.channel1.transactionCapacity = 100

agent1.sinks.sink1.type = logger

agent1.sinks.sink1.channel = channel1

[root@localhost conf]# /root/flume/bin/flume-ng agent --name agent1 -c conf -f flume-conf.conf^C
[root@localhost conf]# cat flume-conf.conf 

agent1.sources = source1
agent1.channels = channel1
agent1.sinks = sink1

agent1.sources.source1.type = exec
agent1.sources.source1.channels = channel1
agent1.sources.source1.command = tail -F /root/flume/test.log

agent1.channels.channel1.type = memory
agent1.channels.channel1.capacity = 1000
agent1.channels.channel1.transactionCapacity = 100

agent1.sinks.sink1.type = logger

agent1.sinks.sink1.channel = channel1

这里要注意的是agent的名字要和启动脚本中的agent --name参数一致,我们这里是 agent1, 这个配置文件的意思是采集 /root/flume/test.log 这个文件,并将其打印到控制台,注意需要修改一下conf目录下 log4j.properties 将其重定向到 console。

首先看一下 flume-ng.sh 文件, 其中下面这个函数就是 flume 执行的

run_flume() {
  local FLUME_APPLICATION_CLASS

  if [ "$#" -gt 0 ]; then
    FLUME_APPLICATION_CLASS=$1
    shift
  else
    error "Must specify flume application class" 1
  fi

  if [ ${CLEAN_FLAG} -ne 0 ]; then
    set -x
  fi
  $EXEC $JAVA_HOME/bin/java $JAVA_OPTS $FLUME_JAVA_OPTS "${arr_java_props[@]}" -cp "$FLUME_CLASSPATH" \
      -Djava.library.path=$FLUME_JAVA_LIBRARY_PATH "$FLUME_APPLICATION_CLASS" $*
}

简单的来讲就是解析各种参数最终执行了 java -cp org.apache.flume.node.Application $* 这个命令。

可以看到 org.apache.flume.node.Application 这个就是整个flume-ng-agent的入口类。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值