flume启动shell脚本解读

2018年10月26日19:05:11 发表评论 919 views
摘要

flume在当前的大数据环境中大量使用,主要用在数据收集的过程中,在工作用到的实例有,使用flume将日志数据导入到hdfs中、kafka中等,或者spark直接读取flume中的数据用作处理。本文只介绍flume的启动脚本flume-ng,脚本的主要功能有:读取启动时传入的参数、参数归类、收集flume启动和运行所需的jar包等依赖、最后启动主程序。

启动参数变量

FLUME_CLASSPATH="启动flume所需的依赖,包括主目录lib下的jar包、conf目录、自定义的插件(放到plugins.d)等"

FLUME_JAVA_LIBRARY_PATH="启动flume的入口(一般是:org.apache.flume.node.Application)"

JAVA_OPTS="java虚拟机参数"(-Xmx20m)"

启动模式

变量名 入口
opt_agent org.apache.flume.node.Application
opt_avro_client org.apache.flume.client.avro.AvroCLIClient
opt_tool org.apache.flume.tools.FlumeToolsMain
opt_version org.apache.flume.tools.VersionInfo

参数归类

flume的启动脚本通过一个while-case循环对脚本获得的参数进行归类,

变量名 说明
opt_conf 配置文件目录
opt_classpath class所在目录
opt_plugins_dirs 自定义插件目录(默认是plugin.d)
arr_java_props java相关的参数
opt_dryrun

FLUME_CLASSPATH赋值

FLUME_CLASSPATH的值来至于一下5部分:

1、将opt_classpath的值赋给FLUME_CLASSPATH

FLUME_CLASSPATH="${opt_classpath}:${FLUME_CLASSPATH}"

2、将flume/lib的值赋给FLUME_CLASSPATH

FLUME_CLASSPATH="${FLUME_HOME}/lib/*:$FLUME_CLASSPATH"

3、将自定义插件相关的依赖赋给FLUME_CLASSPATH

FLUME_CLASSPATH="${FLUME_CLASSPATH}:${plugin_libext}"

4、添加hadoop、hbase、hive相关lib

add_hadoop_paths()

add_HBASE_paths()

add_hive_paths()

5、将flume配置文件目录也赋给FLUME_CLASSPATH。

FLUME_CLASSPATH="$opt_conf:$FLUME_CLASSPATH"

运行run_flume函数

 

接下来我将就org.apache.flume.node.Application进行更细致的阅读。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: