代码驿站
- 一、简单理解
- 作用
- 基本构成
- 二、Flume的安装及使用
- 安装及配置
- 写properties文件
- 启动flume
- 三、启动之后
一、简单理解
作用
- Flume提供一种分布式的,可靠地,对大量数据的日志进行高效处理,聚集,移动的服务。flume只能在Unix的环境下运行。
- Flume基于流式框架,容错性强,也灵活简单。
- Flume,Kafka用来进行数据收集的,Spart,Storm用来实时处理数据,impala用来实时查询。
基本构成
- Source 用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel。
- Channel 用于桥接Sources和Sinks,类似于一个队列。
- Sink 从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者HBase)。
- Event 传输单元,Flume数据传输的基本单元,以事件的形式将数据从源头送至目的地。
二、Flume的安装及使用
本篇文章默认安装好了hadoop集群。前提是启动hdfs。
flume安装包的官方网址,直接下载即可。(apache-flume-1.9.0-bin.tar.gz)
http://flume.apache.org/download.html
本人是利用Xftp将压缩包传入虚拟机。
安装及配置
- tar -zxvf [安装包名] 解压。
- 配置profile(别忘了source)
#flume
export FLUME_HOME=/opt/flume/flume.bin##这里我是把压缩好的文件夹改了一下名字
export PATH=$PATH:$FLUME_HOME/bin
验证成功与否是 flume-ng version
出现版本号即可
- 进入安装好的目录进入conf下,如果你的集群是HA(高可用)那么必须把core-site.xml 和 hdfs-site.xml放入此目录下。
- 然后你会发现properties文件 那是例子。 你可以直接复制一个去改参数,也可以直接vi 复制下面代码。
写properties文件
vi fzy_hdfs (后面启动时要用到此文件名称)
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = spooldir
#下面这一行就是需要监听本地的文件夹路径!!!!!!!
a1.sources.r1.spoolDir = /home/fzy_flume/fzy_test
a1.sources.r1.fileHeader = true
# Describe the sink
a1.sinks.k1.type = hdfs
#下面这一行就是你的hdfs的路径 它可以自动创建没有的目录
#注意master:后面的端口号是你在core-site.xml设置的fs.defaultFS
a1.sinks.k1.hdfs.path = hdfs://master:8020/flume/upload/%Y%m%d/%H
a1.sinks.k1.hdfs.filePrefix = upload-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 1
a1.sinks.k1.hdfs.roundUnit = hour
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.hdfs.batchSize = 1000
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.rollInterval = 600
a1.sinks.k1.hdfs.rollSize = 134217700
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.minBlockReplicas = 1
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
上面代码里有三行注释必须要看。
启动flume
flume-ng agent --conf conf --conf-file fzy_hdfs --name a1
再强调一遍 fzy_hdfs是刚才一堆代码的文件名称
三、启动之后
- 如果你的界面是xshell你需要再点连接,重新连接一个你的master(相当于一共打开了两个终端)
- 去你配置文件里写的监控文件夹。随便创建文件写点东西,你就会发现第一个终端有变化。
- hadoop dfs -ls / 查看一下有没有flume文件夹,里面是否有你刚刚写的新文件即可
上个图康一康吧~