七.Spark Streaming之Flume整合kafka实现实时数据采集

一.引言

在这里插入图片描述
    实现架构就是avro sink发送到avro source接收,然后发送到kafka sink作为生产者,另外创建一个消费者进行消费即可,但是一个前提就是机器一监控的是data.log文件的日志内容。

二.Kafka配置及启动

host.name=hadoop000
log.dirs=/root/data/tmp/kafka-logs
zookeeper.connect=hadoop000:2181

解释上面配置:
标注主机,日志文件存储路径,注册中心

详细的配置参考链接

启动kafka:

kafka-server-start.sh $KAFKA_HOME/config/server.properties

三.Flume配置及启动

1). 机器一的配置,在Flume的conf目录下创建一个名为exec-memory-avro.conf的配置文件,然后加入以下配置:

exec-memory-avro.sources = exec-source
exec-memory-avro.sinks = avro-sink
exec-memory-avro.channels = memory-channel


exec-memory-avro.sources.exec-source.type = exec
exec-memory-avro.sources.exec-source.command = tail -F /root/data/data.log   配置监控文件
exec-memory-avro.sources.exec-source.shell = /bin/sh -c

exec-memory-avro.sinks.avro-sink.type = avro
exec-memory-avro.sinks.avro-sink.hostname = 47.100.176.47
exec-memory-avro.sinks.avro-sink.port = 55555

exec-memory-avro.channels.memory-channel.type = memory

exec-memory-avro.sources.exec-source.channels = memory-channel
exec-memory-avro.sinks.avro-sink.channel = memory-channel

2).机器二的配置,在Flume目录下创建一个名为avro-memory-kafka.conf的配置文件,然后加入以下配置:

avro-memory-kafka.sources = avro-source
avro-memory-kafka.sinks = kafka-sink
avro-memory-kafka.channels = memory-channel

avro-memory-kafka.sources.avro-source.type = avro
avro-memory-kafka.sources.avro-source.bind = hadoop000
avro-memory-kafka.sources.avro-source.port = 55555

下面是关于kafkaSink的配置和broker的地址,节点等,
batchSize是有几条数据控制台更新一次
avro-memory-kafka.sinks.kafka-sink.type = org.apache.flume.sink.kafka.KafkaSink
avro-memory-kafka.sinks.kafka-sink.brokerList = hadoop000:9092
avro-memory-kafka.sinks.kafka-sink.topic = hello_topic
avro-memory-kafka.sinks.kafka-sink.batchSize = 5
avro-memory-kafka.sinks.kafka-sink.requiredAcks = 1

avro-memory-kafka.channels.memory-channel.type = memory

avro-memory-kafka.sources.avro-source.channels = memory-channel
avro-memory-kafka.sinks.kafka-sink.channel = memory-channel

3).两台机器的启动:
首先要启动机器二,随时准备接收机器一的日志信息:

flume-ng agent --name avro-memory-kafka --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/avro-memory-kafka.conf -Dflume.root.logger=INFO,console

启动成功的标志:
在这里插入图片描述
然后启动机器一:

flume-ng agent --name exec-memory-avro --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/exec-memory-avro.conf -Dflume.root.logger=INFO,console

启动成功的标志:
在这里插入图片描述

四.启动消费者和测试
1).启动消费者:

kafka-console-consumer.sh --zookeeper hadoop000:2181 --topic hello_topic

2). 测试:
向Flume监控的data.log文件中写入数据,之后查看kafka是否能消费到:
在这里插入图片描述
查看消费者是否消费到了(控制台是否打印):
在这里插入图片描述
可以看到消费者的控制台已经打印了在data.log中输入的数据。

五.总结

    上面完成了想data.log中输入数据被Flume收集到,然后发送到kafkaSink,然后kafkaSink作为生产者把收集到的数据供消费者消费,然后启动消费者去消费那个节点,这时就会在控制台上打印出向data.log中输入的数据。Flume和kafka掌握之后可以开始真正的学习Spark Streaming了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值