环境
Ubuntu18.04
Flume1.9.0
Kafka2.1.1
下载
解压
先找个地方建个文件夹
mkdir flume
解压到文件夹中
tar -zxvf apache-flume-1.9.0-bin.tar.gz -C ~/flume
设置环境变量
编辑profile
sudo vim /etc/profile
直接将我的环境变量贴出来,不赘述了。
使其生效
source /etc/profile
修改Flume启动环境
修改flume-env. sh
如果没有在个文件就把flume-env. sh. template复制以下并重新命名为flume-env. sh
添加JAVA_HOME
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_201
修改配置文件
flume的运行只以来于配置文件,所以我们只需要将流程写入配置文件,开启flume便可以了。
这里做个示范
source为Spooldir(读取文件夹中所有文件)
chanal为memchanal(内存为管道)
sink为Kafka(将数据传给Kafka)
1.新建文件
可以随便命名,一般为source-sink.properties
touch file-kafka.properties
2.编辑
#设置三个组件的名字
agent.sources = fileSource
agent.sinks = kafkaSink
agent.channels = memoryChannel
#设置fileSource的类型,文件夹闻之和字符集
agent.sources.fileSource.type = spooldir
agent.sources.fileSource.spoolDir = /home/czq/tmp/atmosphere
agent.sources.fileSource.inputCharset = GB2312
#设置kafkaSink类型,话题,主机和acks返回
agent.sinks.kafkaSink.type=org.apache.flume.sink.kafka.KafkaSink
agent.sinks.kafkaSink.kafka.topic = test
agent.sinks.kafkaSink.kafka.bootstrap.servers = Ubuntu01:9092
agent.sinks.kafkaSink.kafka.producer.acks = 1
#设置memoryChannel的类型,大小,事务的容量
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 1000
agent.channels.memoryChannel.transactionCapacity = 100
#设置连接关系
agent.sources.fileSource.channels = memoryChannel
agent.sinks.kafkaSink.channel = memoryChannel
可以添加recursiveDirectorySearch = true监事子目录文件
recursiveDirectorySearch = true
需要注意的是:一定不能打错字,一点都不能错,有的地方有s,有的地方没s要注意。比如最后一行sink的channel没有s,而其他channel有s
开启flume
bin/flume-ng agent -n agent -c conf -f conf/file-kafka.properties
-n后面的参数是你的agent的名字,就是你配置文件每一行最开始的那个就是名字。这个是可以自定义的,你也可以不写agent,但你两个地方必须一致。