zoukankan      html  css  js  c++  java
  • Flume采集文件数据到Kafka

    采集文件call.log的数据到kafka,并从kafka消费者控制台获取数据。

    flume+kafka是目前大数据很经典的日志采集工具。文件数据通过flume采集,通过kafka进行订阅发布并缓存,很适合充当消息中间件。

    准备工作

    启动zookeeper,kafka集群

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

    在kafka创建ct主题,并设置分区数量,副本数量,这些信息都会保存在zookeeper上。

    ./bin/kafka-topics.sh --zookeeper master:2181 --create --topic ct --partitions 3 --replication-factor 2
    

    启动kafka控制台消费者,在这个进程可以看到采集的数据。

    ./bin/kafka-console-consumer.sh --zookeeper master:2181 --topic ct --from-beginning
    

    启动flume,其中flume-kafka.conf配置文件在下方。

    ./bin/flume-ng agent --conf ./conf/ --name a1 --conf-file ./flume-kafka.conf
    

    flume-kafka.conf

    # define
    a1.sources = r1
    a1.sinks = k1
    a1.channels = c1
    
    # source
    a1.sources.r1.type = exec
    a1.sources.r1.command = tail -F -c +0 /usr/local/data/call.log
    a1.sources.r1.shell = /bin/bash -c
    
    # sink
    a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
    a1.sinks.k1.kafka.bootstrap.servers = master:9092,slave1:9092,slave2:9092
    a1.sinks.k1.kafka.topic = ct
    a1.sinks.k1.kafka.flumeBatchSize = 20
    a1.sinks.k1.kafka.producer.acks = 1
    a1.sinks.k1.kafka.producer.linger.ms = 1
    
    # channel
    a1.channels.c1.type = memory
    a1.channels.c1.capacity = 1000
    a1.channels.c1.transactionCapacity = 100
    
    # bind
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1
    
    

    小结

    • 可以发现kafka的运行,都要通过zookeeper,可以很好理解zookeeper在kafka集群中充当的角色。
    • 运行后,文件call.log的数据都会发送给kafka,无论是哪个节点,通过kafka创建消费者,获取主题topic都会得到数据。
    • flume的sink有直接的kafka源,两者可以很简易的结合
  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/12685174.html
Copyright © 2011-2022 走看看