Flume配合hadoop的使用

下载最新版0.9.4 https://github.com/downloads/clo ... on-0.9.4-bin.tar.gz
1、设置环境变量:FLUME_CONF_DIR  解压后conf路径(JAVA路径等)
2、启动master:  ./flume master 
       启动node  ./flume node 
       以上启动方式信息直接输出在console,要将信息输出到日志文件:修改flume-daemon.sh中FLUME_HOME、FLUME_LOG_DIR、FLUME_PID_DIR 值
3、master启动后,可以通过 http://机器名:35871 访问管理界面,通过点击config 配置node(下拉选择对应节点)的Source 和 Sink ,也可以通过下面配置多个node ,格式:  host : Source |  Sink;  (勿忘分号)
4、配置多个master 需要配置conf下配置文件:
     以下几点:
<name>flume.master.servers</name>
<value>host1,host2,...</value>
</property>
<property>
<name>flume.master.serverid</name>
<value>index</value>
<description>The unique identifier for a machine in a
Flume Master ensemble. Must be different on every
master instance.</description>
< /property>
< property>
< name>flume.master.gossip.port</name>
< value>57890</value>
< /property>
5、通过./flume shell 以命令方式进行配置
connect localhost
  通过 ./flume shell  -c "localhost:35873" -q -s "命令文件"      执行包含命令的文件
           ./flume shell  -c "localhost:35873" -q  -e "command"     执行一条命令 (注意要用\"进行转义)
6、通过tailDir可以监控文件目录变化,通过%{tailSrcFile} 可以获取文件名,并可以给Event添加键值对
eg:
  exec host1 'collectorSource' 'collectorSink("hdfs://hostname:9000/data/%{category}/%{host}","%{tailSrcFile}-")'
exec host2 'collectorSource' 'collectorSink("hdfs://hostname:9000/data/%{category}/%{host}","%{tailSrcFile}-")'
exec config agent1 'tailDir("filepath",fileregex=".*\\.log$",startFromEnd=true,recurseDepth=1)' '{value("category","A") => agentE2EChain("host1","host2")}'
exec config agent2 'tailDir("filepath",fileregex=".*\\.log$",startFromEnd=true,recurseDepth=1)' '{value("category","B") => agentE2EChain("host1","host2")}'
exec map host3 agent1
exec map host3 agent1
7、还在熟悉中,有时数据会重复、传不上hadoop

     以下是 提取文件目录下的正则表达式:
     
 (?:^money)_\d+_\d+_\d{8}(?:\.log$)    形如:money_30_34_20110922.log  在配置中写成 (?:^money)_\\d+_\\d+_\\d{8}(?:\\.log$)

0 个评论

要回复文章请先登录注册