flume集群搭建

搭建一个flume集群,设置2个节点,如下图这样的集群
[img]http://dl2.iteye.com/upload/attachment/0111/7129/d521584b-e8a6-32f4-8a09-b167c86a401d.png[/img]

2个节点分别为192.168.5.220和192.168.5.221
设置成这样的情景,第一个接受日志传过来的数据(这里使用配置log4j往里面写数据),
第一个节点的sink指向第二个节点的source,第二个节点sink配制成hdfs

首先,配置第一个节点,
[img]http://dl2.iteye.com/upload/attachment/0111/7133/e3abc329-1a34-3941-bd1a-056e1cbc28ef.png[/img]

这里面source的port设置成41414,log4j输出的port也必须配制成41414,才能把数据传到flume
sink配置的port必须和第二个节点source配置的一样才行

配置第二个节点
[img]http://dl2.iteye.com/upload/attachment/0111/7135/6b5439fd-1f0d-3f57-afe7-d550dde864d0.png[/img]

source的bind配置本机ip,端口配置和第一个节点的sink.port一样
这个节点sink写入hdfs,配置了2个拦截器,对输出hdfs目录进行格式化

然后先启动第2个节点
bin/flume-ng agent --conf ./conf/ -f ./conf/agent2.conf -n agent2 -Dflume.root.logger=DEBUG,console


再启动第一个节点
bin/flume-ng agent --conf ./conf/ -f ./conf/agent1.conf -n agent1 -Dflume.root.logger=DEBUG,console


都启动完成,写个java测试类进行测试
package cn.han;

import org.apache.log4j.Logger;

public class MyTest {
public Logger log=Logger.getLogger(MyTest.class);
public static void main(String[] args) {
MyTest ss=new MyTest();
for(int i=0;i<20;i++){
ss.log.info(System.currentTimeMillis());
}
}
}


配置下log4j

log4j.rootLogger=INFO,flume
log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.flume.Hostname = 192.168.5.220
log4j.appender.flume.Port = 41414
log4j.appender.flume.UnsafeMode = true


测试类运行的时候可能会报错,把flume-ng-log4jappender-1.5.0-cdh5.1.3-jar-with-dependencies.jar放入测试项目的环境变量中
运行测试类,去hdfs的目录查看文件已经生成,这样,flume集群就配置好了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值