flume和kafka整合(转)

原文链接:Kafka flume 整合

前提

前提是要先把flume和kafka独立的部分先搭建好。

下载插件包

下载flume-kafka-plus:https://github.com/beyondj2ee/flumeng-kafka-plugin

把lib目录下的

flume和kafka整合(转)

和package下的

flume和kafka整合(转)

都放到flume的lib目录

注:在flume1.6.0中还需要添加kafka-clients-0.8.2.2.jar包

修改原有的flume-conf文件

在插件包里有一个flume-conf.properties,把这个文件放到flume的conf文件夹里

然后修改以下内容

producer.sources.s.type = exec

producer.sources.s.command = tail -f -n+1 ~/tmp/test.log

producer.sources.s.channels = c

……

producer.sinks.r.custom.topic.name=test

……

consumer.sources.s.custom.topic.name=test

启动zookeeper

zkServer.sh start

启动kafka broker

bin/kafka-server-start.sh config/server.properties

创建kafka topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

启动kafka consumer

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

启动flume

bin/flume-ng agent --conf conf --conf-file conf/flume-conf.properties --name producer -Dflume.root.logger=INFO,console

测试

echo "this is a test" >> ~/tmp/test.log

此时只要能在consumer里现“this is a test”就表示成功

升级版本

看到前面我们下载的plugin版本不是最新的,是不是很不爽?不爽就换了他

我们用到的plugin的jar有:

flume和kafka整合(转)

flume和kafka整合(转) 这个不用换,他只是单纯的实现

我用的kafka版本是:kafka_2.11-0.8.2.1

替换的所换成这个版本的lib下的

kafka_2.11-0.8.2.1.jar

kafka-clients-0.8.2.1.jar

metrics-core-2.2.0.jar

metrics-annotation-2.2.0.jar照常用吧不用替换

scala-library-2.11.5.jar

scala-parser-combinators_2.11-1.0.2.jar

zkclient-0.3.jar

kafka-clients-0.8.2.2.jar

flumeng-kafka-plugin.jar这个要保持,他只是单纯的实现

替换完了再跑之前的测试就行

参考链接:

【Twitter Storm系列】flume-ng+Kafka+Storm+HDFS 实时系统搭建

利用flume+kafka+storm+mysql构建大数据实时系统

上一篇:idea 执行maven 命令


下一篇:Java WebSocket实现网络聊天室(群聊+私聊)