软件版本
apache-storm-0.9.2-incubating
apache-flume-1.5.0-bin
kafka_2.9.2-0.8.1
flumeng-kafka-plugin-master
storm-kafka-0.9.2-incubating
zookeeper-3.4.5
安装部署环境
总体思路:
1、 安装 zookeeper集群,storm和kafka可以共用,最好独立机器安装。
2、 在web容器(niginx,apache)所在所有机器安装flume,编译项目flumeng-kafka-plugin,将flumeng-kafka-plugin.jar 及lib下的jar包拷贝到flumelib下,并修改该项目的flume-conf.properties,放到flume conf目录下,分别启动agent,监听特定目录(配置source type为spooldir),发送消息到kafka。
3、 配置kafka集群,在每台机器分别启动kafkaserver,接收来自flume kafkasink的数据,写入kafka集群的分区。
4、 Storm整合插件storm-kafka-0.9.2-incubating,加入jar包。在storm集群某一节点启动nimbus。在其他节点启动supervisor,需要几个启动几个。任意节点启动ui。
5、写storm的topology,使用kafkaspout接入数据,编写处理逻辑bolt,可参考项目kafka-storm-test
功能整合测试
测试环境:
Zk,kafka,flume单节点,storm集群。
h1启动storm zk:zkServer.sh start
h1执行: storm nimbus &
h1执行:storm ui &
storm2执行:storm supervisor &
storm3执行:storm supervisor &
c1启动kafka zk:zkServer.sh start
c1启动kafkaserver:kafka-server-start.shconfig/server.properties
c1创建主题:kafka-topics.sh --create --zookeeper h1:2181 --replication-factor1 --partitions 1 --topic test
c1启动flume:flume-ng agent --conf conf --conf-fileconf/flume-conf.properties --name producer -Dflume.root.logger=INFO,console
装有storm客户端的机器提交topology:
storm jar ~/cuirong/kafka-storm-test-0.0.1-SNAPSHOT.jar cuirong.test.KafkaSpoutTestTopology h1:2181 testkafkastorm h1
(h1机器)
附:
flume与kafka整合:
flumeng-kafka-plugin.jar 要拷贝到flume lib下。
创建toppic:
0.8.1以上版本:kafka-topics.sh --create --zookeeperyz-21-143:2181 --replication-factor 1 --partitions 1 --topic test
kafka-console-producer.sh--broker-list xxx:9092 --topic test (此步为测试,前面启动flume时已经启动了producer)
kafka-console-consumer.sh --zookeeper xxx:2181 --topic test --from-beginning
kafka与storm整合:
插件编译打包,连同 kafka_2.9.2-x-beta1.jar、metrics-core-x.jar、scala-library-x.jar 放入storm lib下。
编写topology:
storm jar ~/cuirong/kafka-storm-test-0.0.1-SNAPSHOT.jar cuirong.test.KafkaSpoutTestTopology xxx:2181 test xxx [kafkazk name stormzk]