整合kafka与flume,Flume读取Kafka数据写入Hdfs(forty-nine day)

整合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.

你可能感兴趣的:(向大数据进军~每天记)