一,Flume(数据采集)是Cloundera提供的一个高可用,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。
二,Kafka是一个分布式的基于发布/订阅模式的消息队列(先进先出),主要应用于大数据实时处理领域。
消费队列 同步处理,点对点(打电话) 异步处理,订阅/发布(微信消息)
三,使用flume将本地文件(/opt/app/flume_test/test2024.txt)采集到kafka的first主题下
1,创建目录:
mkdir flume_test
cd flume_test
2,创建文件:
touch test2024.txt
如图所示:
3,①配置flume采集文件
cd apache-flume-1.7.0-bin
mkdir flumeagent
cd flumeagent
touch flume-exec-kafka.conf
vi flume-exec-kafka.conf
②配置文件内容:(agent名可以更改)
a4.sources = r4
a4.sinks = k4
a4.channels = c4
# source
a4.sources.r4.type = exec
a4.sources.r4.command = tail -f /opt/app/flume_test/test2024.txt
a4.sources.r4.shell = /bin/bash -c
# sink
a4.sinks.k4.type = org.apache.flume.sink.kafka.KafkaSink
a4.sinks.k4.kafka.bootstrap.servers = hadoop:9092
a4.sinks.k4.kafka.topic = first
a4.sinks.k4.kafka.flumeBatchSize = 20
a4.sinks.k4.kafka.producer.acks = 1
a4.sinks.k4.kafka.producer.linger.ms = 1
# channel
a4.channels.c4.type = memory
a4.channels.c4.capacity = 1000
a4.channels.c4.transactionCapacity = 100
# bind
a4.sources.r4.channels = c4
a4.sinks.k4.channel = c4
4,启动flume
bin/flume-ng agent --conf conf/ --name4 --conf-file flumeagent/flume-exec-kafka.conf
5,①启动kafka
cd kafka_2.11-1.0.0
第一种:bin/kafka-server-start.sh -daemon
第二种:bin/kafka-server-start.sh -daemon config/server.properties
使用jps命令查看(出现kafka和zookeeper节点,启动成功)
②查看kafka现有的主题
bin/kafka-topics.sh --zookeeper hadoop:2181 --list
③创建新的主题first
bin/kafka-topics.sh --zookeeper hadoop:2181 --create --replication-factor 1 --partitions 1 --topic first
④启动kafka消费信息
bin/kafka-console-consumer.sh --bootstrap-server hadoop:9092 --topic first -from-beginning
6,文件内容成功采集到kafka
cd flume_test
echo "123456" >> test2024.txt
在kafka消费信息中查看文件内容