目录
Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume的运行需要Java的环境支持,因此需要在Window操作系统中安装JDK。
环境的安装与配置
1.配置Java路径:在我的电脑中右键选择属性-高级系统设置-环境变量(高级),在用户系统和环境系统中新建变量,变量名为JAVA_HOME,变量值为C:\Program Files (x86)\Java\jdk1.8.0_201(java中jdk所在路径)
2.检验JAVA:打开cmd窗口,检测Java安装路径:where java、查看java的版本:java -version
3.安装Flume:将apache-flume-1.9.0-bin.tar.gz文件保存到C盘根目录下,并将该文件重命名为flume
4.检验Flume:打开cmd窗口,输入:cd c:/flume/bin切换到路径下,检查是否成功安装:flume-ng version
出现以下代码表示安装成功:
5.安装telnet:打开控制面板-程序-启动或关闭Window功能,勾选“Telnet Client”
6.检验telnet:打开cmd窗口,输入:cd c:/flume/bin切换到路径下,检查是否成功安装:where telnet
采集telnet数据并显示到屏幕
1.参数配置:在C:\flume\conf的路径下建立一个名为example.conf的文件,内容如下:
# 设置Agent上的各个组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 配置Source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# 配置Sink
a1.sinks.k1.type = logger
# 配置Channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 把Source和Sink绑定到Channel上
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2.命令行启动:打开cmd窗口,输入:cd c:/flume,切换路径到flume目录下,输入:.\bin\flume-ng agent --conf .\conf --conf-file .\conf\example.conf --name a1 -property flume.root.logger=INFO,console启动
3.查看情况:另外打开一个cmd窗口,输入:telnet localhost 44444,启动客户端,在该页面在输入内容会在上一个窗口显示(刚进去可能不能输入内容,先按回车后再输入内容)
采集telnet数据并保存到文件中
1.建立文件夹:在C盘根目录下创建一个名为“data”的文件夹
2.参数配置:在C:\flume\conf的路径下建立一个名为exampledir.conf的文件,内容如下:
#配置Agent上的各个组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 配置source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# 配置sink
a1.sinks.k1.type = file_roll
a1.sinks.k1.sink.directory =C:/data#文件输出路径
a1.sinks.k1.sink.rollInterval = 0
a1.sinks.k1.sink.file.name.timeFormat = yyyyMMddHH
# 配置 channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 绑定source,channel,sink
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
3.命令行启动:打开cmd窗口,输入:cd c:/flume,切换路径到flume目录下,输入:.\bin\flume-ng agent --conf .\conf --conf-file .\conf\exampledir.conf --name a1 -property flume.root.logger=INFO,console启动
4.查看情况:另外打开一个cmd窗口,输入:telnet localhost 44444,启动客户端,在该页面在输入内容(刚进去可能不能输入内容,先按回车后再输入内容),等一分钟之后,会发现c:/data中会出现文件
Flume和Kafka的组合使用
1.配置Flume文件:在C:\flume\conf的路径下建立一个名为kafka.conf的文件,内容如下:
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# sink
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = topic_test
a1.sinks.k1.kafka.bootstrap.servers = localhost:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1
a1.sinks.k1.kafka.producer.compression.type = snappy
# channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2.启动zookeeper:打开cmd命令窗口,用cd c:/kafka命令切换到kafka文件路径下,输入:bin\windows\zookeeper-server-start.bat config\zookeeper.Properties
3.启动Kafka服务:另外打开一个cmd命令窗口,用cd c:/kafka命令切换到kafka文件路径下,输入:bin\windows\kafka-server-start.bat config\server.properties
4.创建主题:打开cmd窗口,用cd c:/kafka命令切换到kafka文件路径下,输入:bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_test,会有警告,但是仍然会创建
5.启动Flume:打开cmd窗口,输入:cd c:/flume,切换路径到flume目录下,输入:.\bin\flume-ng agent --conf .\conf --conf-file .\conf\kafka.conf --name a1 -property flume.root.logger=INFO,console启动服务器
6.启动telnet:另外打开一个cmd窗口,输入:telnet localhost 44444,启动客户端,在该页面在输入内容(刚进去可能不能输入内容,先按回车后再输入内容)
7.查看结果:打开一个cmd窗口,用cd c:/kafka命令切换到kafka文件路径下,输入:.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic topic_test --from-beginning,在该窗口可以看到telnet窗口输入的内容