整合kafka与flume
读kafka中topic的消息发到hdfs,flume配置:
注意:
我不确定是不是必须要写成zookeeper的leader,我写成本机zookeeper的时候报一个错误,大概就是没找到zookooper,我换成leader的域名slave3就好了
所以agent.sources.kafkaSource.zookeeperConnect=slave3:2181,这个需要自己试一下
其他的就是topic和hdfs的地址需要改一下,应该就可以了。
agent.sources = kafkaSource
agent.channels = memoryChannel
agent.sinks = hdfsSink
# The channel can be defined as follows.
agent.sources.kafkaSource.channels = memoryChannel
agent.sources.kafkaSource.type=org.apache.flume.source.kafka.KafkaSource
agent.sources.kafkaSource.zookeeperConnect=slave3:2181
agent.sources.kafkaSource.topic=zjx
#agent.sources.kafkaSource.groupId=flume
agent.sources.kafkaSource.kafka.consumer.timeout.ms=100
agent.channels.memoryChannel.type=memory
agent.channels.memoryChannel.capacity=1000
agent.channels.memoryChannel.transactionCapacity=100
# the sink of hdfs
agent.sinks.hdfsSink.type=hdfs
agent.sinks.hdfsSink.channel = memoryChannel
agent.sinks.hdfsSink.hdfs.path=hdfs://slave3:9000/zjx/rizhi_kafka/%y-%m-%d/%H-%M
agent.sinks.hdfsSink.hdfs.writeFormat=Text
agent.sinks.hdfsSink.hdfs.fileType=DataStream
首先起hdfs,这个前面有说过,
然后就是起kafka
kafka-server-start.sh config/server.properties
kafka-server-start.sh config/server.properties & //这个是运行在后台的命令,ctrl+c以后kafka也不会退出
创建topic
./kafka-topics.sh --zookeeper b12node1:2181 --create --partitions 2 --replication-factor 1 --topic zjx
观察是否有注册到zookeeper上
./zkCli.sh -server b12node1:2181
也可以在kafka直接用命令查看topic
./kafka-topics.sh --list --zookeeper b12node1:2181
输入以下命令可以写入消息(生产者)
./kafka-console-producer.sh --broker-list b12node1:9092 --topic zjx
输入以下命令查看消息(消费者)
./kafka-console-consumer.sh --zookeeper b12node1:2181 --topic zjx --from-beginning
启动flume
bin/flume-ng agent -c conf/ -f dir-hdfs.properties -n ag1 -Dflume.root.logger=INFO,console
这个是后台运行的命令
nohup bin/flume-ng agent -c conf/ -f dir-hdfs.properties -n ag1 1>/dev/null 2>&1 &
然后在hdfs上查看文件,END.