Flume对接Kafka的实例

来源:互联网 发布:thinkphp oa系统源码 编辑:程序博客网 时间:2024/05/16 10:25
Kafka组件特点
  kafka实际上是一个消息发布订阅系统。Producer向某个Topic发布消息,而Consumer订阅某个Topic的消息。一旦有新的关于某个Topic的消息,Broker会传递给订阅它的所有Consumer。
  建议采用Flume作为数据的生产者,这样可以不用编程就实现数据源的引入,并采用Kafka Sink作为数据的消费者,这样可以得到较高的吞吐量和可靠性。如果对数据的可靠性要求高的话,可以采用Kafka Channel来作为Flume的Channel使用。
Flume对接Kafka

  Flume作为消息的生产者,将生产的消息数据(日志数据、业务请求数据等)通过Kafka Sink发布到Kafka中。


Flume对接Kafka对接示例

  假设现有Flume实时读取/data1/logs/component_role.log的数据并导入到Kafka的mytopic主题中。


  环境预设为:
  Zookeeper  的地址为   zdh100:2181  zdh101:2181  zdh102:2181

  Kafka  broker的地址为 zdh100:9092  zdh101:9092   zdh102:9093


  配置Flume agent,如下修改Flume配置:
  gent1.sources = logsrc
  agent1.channels = memcnl
  agent1.sinks = kafkasink
  #source  section
  agent1.sources.logsrc.type = exec
  agent1.sources.logsrc.command = tail -F /data1/logs/component_role.log
  agent1.sources.logsrc.shell = /bin/sh -c
  agent1.sources.logsrc.batchSize = 50
  agent1.sources.logsrc.channels = memcnl
  #  Each sink's type must be defined
  agent1.sinks.kafkasink.type = org.apache.flume.sink.kafka.KafkaSink
  agent1.sinks.kafkasink.brokerList=zdh100:9092, zdh101:9092,zdh102:9092
  agent1.sinks.kafkasink.topic=mytopic
  agent1.sinks.kafkasink.requiredAcks = 1
  agent1.sinks.kafkasink.batchSize = 20
  agent1.sinks.kafkasink.channel = memcnl
  #  Each channel's type is defined.
  agent1.channels.memcnl.type = memory

  agent1.channels.memcnl.capacity = 1000


  启动该Flume节点:
  /home/mr/flume/bin/flume-ng agent -c

  /home/mr/flume/conf -f /home/mr/flume/conf/flume-conf.properties -n agent1  -Dflume.monitoring.type=http -Dflume.monitoring.port=10100


  动态追加日志数据,执行命令向 /data1/logs/component_role.log 添加数据:
  echo  "测试代码" >>  /data1/logs/component_role.log

  echo  "检测Flume+Kafka数据管道通畅" >>  /data1/logs/component_role.log



  验证Kafka数据接收结果,执行命令检查Kafka收到的数据是否正确,应该可以呈现刚才追加的数据:

  /home/mr/kafka/bin/kafka-console-consumer.sh  --zookeeper zdh100:2181 --topic mytopic --from-beginning


                                                                                                                                                     ——————————【本文由“涂老师”发布,2017年6月9日】

原创粉丝点击