Flume的安装与配置

1.背景 在hadoop集群上安装flume,将日志数据传输到HDFS上去   2.规划 三台主机的主机名分别为master,slave1,slave2(防火墙已关闭) 由slave1和slave2收集日志信息,传给master,再由master上传到hdfs上   3.配置 3.1上传解压 在slave1上的usr文件夹下新建个flume文件夹,用作安装路径 [root@slave1 usr]# mkdir flume [root@slave1 usr]# ls [root@slave1 usr]# cd flume/ Flume的安装与配置

 

将flume压缩包上传到usr/flume文件夹下,解压   [root@slave1 flume]# ls apache-flume-1.8.0-bin.tar.gz [root@slave1 flume]# tar -zxf apache-flume-1.8.0-bin.tar.gz  

3.2 .配置flume-env.sh文件 # 进入到conf文件夹下 [root@slave1 flume]# cd apache-flume-1.8.0-bin/conf/ [root@slave1 conf]# ls flume-conf.properties.template flume-env.ps1.template flume-env.sh.template log4j.properties # 拷贝出来一个flume-env.sh文件 [root@slave1 conf]# cp flume-env.sh.template flume-env.sh [root@slave1 conf]# ls flume-conf.properties.template flume-env.ps1.template flume-env.sh flume-env.sh.template log4j.properties # 修改flume-env.sh文件 [root@slave1 conf]# vim flume-env.sh   Flume的安装与配置

 

Flume的安装与配置

 

 

3.3 配置slave.conf文件 在conf下创建一个新的slave.conf文件 #创建 [root@slave1 conf]# touch slave.conf #修改 [root@slave1 conf]# vim slave.conf

写入配置文件进行测试,其内容为: 此配置文件中的/logs需要事先建好,其他内容无需修改。
# 主要作用是监听目录中的新增数据,采集到数据之后,输出到avro (输出到agent) # 注意:Flume agent的运行,主要就是配置source channel sink # 下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1   a1.sources = r1 a1.sinks = k1 a1.channels = c1   #具体定义source a1.sources.r1.type = spooldir #先创建此目录,保证里面空的 a1.sources.r1.spoolDir = /logs   #对于sink的配置描述 使用avro日志做数据的消费 a1.sinks.k1.type = avro # hostname是最终传给的主机名称或者ip地址 a1.sinks.k1.hostname = master a1.sinks.k1.port = 44444   #对于channel的配置描述 使用文件做数据的临时缓存 这种的安全性要高 a1.channels.c1.type = file a1.channels.c1.checkpointDir = /home/uplooking/data/flume/checkpoint a1.channels.c1.dataDirs = /home/uplooking/data/flume/data   #通过channel c1将source r1和sink k1关联起来 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1

3.4 将flume发送到其他主机

[root@slave1 conf]# scp -r /usr/flume/ root@slave2:/usr/ [root@slave1 conf]# scp -r /usr/flume/ root@master:/usr/

 

 

Flume的安装与配置

Flume的安装与配置

Flume的安装与配置

进行测试

3.5 修改master中flume的配置

在master的flume的conf文件夹下创建一个master.conf文件
[root@master conf]# vim master.conf
此配置文件中,除了a1.sinks.k1.hdfs.path改为ip:9000,其他位置不需要更改
写入配置信息

# 获取slave1,2上的数据,聚合起来,传到hdfs上面 # 注意:Flume agent的运行,主要就是配置source channel sink # 下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1   a1.sources = r1 a1.sinks = k1 a1.channels = c1   #对于source的配置描述 监听avro a1.sources.r1.type = avro # hostname是最终传给的主机名称或者ip地址 a1.sources.r1.bind = master a1.sources.r1.port = 44444     #定义拦截器,为消息添加时间戳 a1.sources.r1.interceptors = i1 a1.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder   #对于sink的配置描述 传递到hdfs上面 a1.sinks.k1.type = hdfs #集群的nameservers名字 #单节点的直接写:hdfs://主机名(ip):9000/xxx #ns是hadoop集群名称,此处注意,如果是安装在master上,此处写上master:9000,不能写ns,此处易出错 a1.sinks.k1.hdfs.path = hdfs://ns/flume/%Y%m%d a1.sinks.k1.hdfs.filePrefix = events- a1.sinks.k1.hdfs.fileType = DataStream #不按照条数生成文件 a1.sinks.k1.hdfs.rollCount = 0 #HDFS上的文件达到128M时生成一个文件 a1.sinks.k1.hdfs.rollSize = 134217728 #HDFS上的文件达到60秒生成一个文件 a1.sinks.k1.hdfs.rollInterval = 60     #对于channel的配置描述 使用内存缓冲区域做数据的临时缓存 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100   #通过channel c1将source r1和sink k1关联起来 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1

保存退出 4.启动测试 确认防火墙关闭 首先启动Zookeeper和hadoop集群,参考hadoop集群搭建中的启动 然后先启动master上的flume(如果先启动slave上的会导致拒绝连接) 在apache-flume-1.8.0-bin目录下启动(因为没有配置环境变量) [root@master apache-flume-1.8.0-bin]# bin/flume-ng agent -n a1 -c conf -f conf/master.conf -Dflume.root.logger=INFO,console 如此便是启动成功,

 Flume的安装与配置

 

如果想后台启动(这样可以不用另开窗口操作), [root@master apache-flume-1.8.0-bin]# bin/flume-ng agent -n a1 -c conf -f conf/master.conf -Dflume.root.logger=INFO,console &   再启动slave1,2上的flume 首先在slave1,2的根目录创建logs目录

 不然会报错,

 Flume的安装与配置

 

#slave1
[root@slave1 /]# cd /usr/flume/apache-flume-1.8.0-bin
[root@slave1 apache-flume-1.8.0-bin]# bin/flume-ng agent -n a1 -c conf -f conf/slave.conf -Dflume.root.logger=INFO,console

#slave2
[root@slave2 /]# cd /usr/flume/apache-flume-1.8.0-bin
[root@slave2 apache-flume-1.8.0-bin]# bin/flume-ng agent -n a1 -c conf -f conf/slave.conf -Dflume.root.logger=INFO,console

 

测试 启动成功后(如果没有后台启动另开个窗口继续下面操作)

在slave1的usr/tmp文件夹下新建个test文件 [root@slave1 tmp]# vim test helloworld test 保存退出   将其复制到logs文件夹下 [root@slave1 tmp]# cp test /logs/

查看master

Flume的安装与配置

 

 

 

 

 

上一篇:杀蚂蚁


下一篇:Linux下安装Flume