Flume的安装及简单的使用(二)
来源:互联网 发布:淘宝手机收藏链接地址 编辑:程序博客网 时间:2024/06/06 03:29
1.准备工作
在Flume的安装及简单的使用(一) 的基础上系统环境之上添加hadoop-2.7.3
,并创建hadoop伪分布集群并创建。
hadoop伪分布集群的搭建,请参考:http://blog.csdn.net/qq_38799155/article/details/77748831
2.配置 Flume环境变量
在hadoop用户下配置:
$ vi .bashrc
添加如下内容
export FLUME_HOME=/home/hadoop/flumeexport PATH=$PATH:$FLUME_HOME/bin
之后source一下,使其生效
$ source .bashrc
3.修改配置flume-env.sh文件
$ cd /home/hadoop/flume/conf$ cp flume-env.sh.template flume-env.sh$ vi flume-env.sh
添加如下内容
export JAVA_HOME=/usr/java/jdk1.8.0_121export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
如图所示:
验证版本信息
$ flume-ng version
如图所示:
4.Flume部署示例
4.1 Avro
Flume可以通过Avro监听某个端口并捕获传输的数据,具体示例如下:
//创建一个Flume配置文件$ cd /home/hadoop/flume/$ mkdir example$ cp conf/flume-conf.properties.template example/netcat.conf
进入到/home/hadoop/flume/example/
下的netcat.conf
文件进行修改
$ cd /home/hadoop/flume/example/$ vi netcat.conf
修改如下( 配置netcat.conf用于实时获取另一终端输入的数据):
# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.sources.r1.type = netcata1.sources.r1.bind = localhosta1.sources.r1.port = 44444# Describe the sinka1.sinks.k1.type = logger# Use a channel that buffers events in memorya1.channels.c1.type = memorya1.channels.c1.capacity = 1000a1.channels.c1.transactionCapacity = 100# Bind the source and sink to the channela1.sources.r1.channels = c1a1.sinks.k1.channel = c1
运行FlumeAgent,监听本机的44444端口
flume-ng agent -c conf -f netcat.conf -n a1 -Dflume.root.logger=INFO,console
效果如图所示:
打开另一终端,通过telnet登录localhost的44444,输入测试数据
$ telnet localhost 44444
如图所示,证明启动成功
查看flume收集数据情况
4.2 Spool
Spool用于监测配置的目录下新增的文件,并将文件中的数据读取出来。需要注意两点:拷贝到spool目录下的文件不可以再打开编辑、spool目录下不可包含相应的子目录。具体示例如下:
1.创建两个Flume配置文件
$ cd /home/hadoop/flume/$ cp conf/flume-conf.properties.template example/spool1.conf$ cp conf/flume-conf.properties.template example/spool2.conf
2.配置spool1.conf用于监控目录avro_data的文件,将文件内容发送到本地60000端口
$ cd /home/hadoop/flume/example/$ vi spool1.conf
修改内容如下
# Namethe componentslocal1.sources= r1local1.sinks= k1local1.channels= c1# Sourcelocal1.sources.r1.type= spooldirlocal1.sources.r1.spoolDir= /home/hadoop/avro_data# Sinklocal1.sinks.k1.type= avrolocal1.sinks.k1.hostname= localhostlocal1.sinks.k1.port= 60000#Channellocal1.channels.c1.type= memory# Bindthe source and sink to the channellocal1.sources.r1.channels= c1local1.sinks.k1.channel= c1
3.配置spool2.conf用于从本地60000端口获取数据并写入HDFS
$ cd /home/hadoop/flume/example/$ vi spool2.conf
修改内容如下
# Namethe componentsa1.sources= r1a1.sinks= k1a1.channels= c1# Sourcea1.sources.r1.type= avroa1.sources.r1.channels= c1a1.sources.r1.bind= localhosta1.sources.r1.port= 60000# Sinka1.sinks.k1.type= hdfsa1.sinks.k1.hdfs.path= hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeDataa1.sinks.k1.rollInterval= 0a1.sinks.k1.hdfs.writeFormat= Texta1.sinks.k1.hdfs.fileType= DataStream# Channela1.channels.c1.type= memorya1.channels.c1.capacity= 10000# Bind the source and sink to the channela1.sources.r1.channels= c1a1.sinks.k1.channel= c1
4.分别打开两个终端,运行如下命令启动两个Flume Agent
都在/home/hadoop/flume/example/
运行
$ flume-ng agent -c conf -f spool2.conf -n a1$ flume-ng agent -c conf -f spool1.conf -n local1
5.查看本地文件系统中需要监控的avro_data目录内容
在hadoop用户的根目录下创建avro_data文件夹
$ cd /home/hadoop/$ mkdir avro_data$ cd avro_data$ vi avro_data.txt
添加内容如下(内容随便写):
1,first_name,age,address2,James,55,6649 N Blue Gum St3,Art,62,8 W Cerritos Ave #544,Lenna,56,639 Main St5,Donette,2,34 Center St6,YuKi,35,1 State Route 277,Ammy,28,322 New Horizon Blvd8,Abel,26,37275 SSt Rt 17m M9,Leota,52,7 W Jackson Blvd10,Kris,36,228 Runamuck P1 #280811,Kiley,32,25 E 75th St #6912,Simona,32,3 Mcauley Dr13,Sage,25,5 Boston Ave #8814,Mitsue,23,7 Eads St15,Mattile, 12,73 State Road 434 E
之后
$ cd /home/hadoop/avro_data/$ cat avro_data.txt
如图所示:
6.查看写HDFS的Agent,检查是否捕获了数据别写入HDFS
17/09/19 02:37:15 INFO hdfs.BucketWriter: Creating hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.1505759834441.tmp17/09/19 02:37:20 INFO hdfs.BucketWriter: Closing hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.1505759834441.tmp17/09/19 02:37:20 INFO hdfs.BucketWriter: Renaming hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.1505759834441.tmp to hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.150575983444117/09/19 02:37:20 INFO hdfs.BucketWriter: Creating hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.1505759834442.tmp17/09/19 02:37:50 INFO hdfs.BucketWriter: Closing hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.1505759834442.tmp17/09/19 02:37:50 INFO hdfs.BucketWriter: Renaming hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.1505759834442.tmp to hdfs://hadoop:9000/home/hadoop/hadoop-2.7.3/flumeData/FlumeData.1505759834442
7.通过WEB UI查看HDFS中的文件
Flume内置了大量的Source,其中Avro Source、Thrift Source、Spooling Directory Source、Kafka Source具有较好的性能和较广泛的使用场景。下面是Source的一些参考资料:
- Flume的安装及简单的使用(二)
- Flume的安装及简单的使用(一)
- Flume安装及简单使用
- Flume安装及简单使用
- flume安装及简单的配置
- flume的安装和简单使用
- Flume的安装与简单使用
- flume 1.4的安装 及使用示例
- flume的简单使用
- elk安装及使用二(elasticsearch的简单使用及插件的安装)
- flume-ng的简单使用
- flume串联的简单使用
- 日志采集框架Flume的安装及使用
- Flume安装及使用
- flume的安装与使用
- flume的安装与使用
- flume的安装和使用
- flume学习(二):如何找到cm安装的flume的配置文件
- c#--实例选号器--实现打印、序列化方式保存
- 使用OB缓存实现静态化
- tensorflow学习笔记二---k近邻分类器
- ElementaryOS 0.4快速配置工具
- 菊花台
- Flume的安装及简单的使用(二)
- 写一个makefile
- Linux下安装网络软件的步骤
- 3,单例模式
- make (;区别 + 目标变量)
- Linux上安装wine qq的方法
- 解决CentOS 7不能上网,访问Centos7服务器请求超时问题
- Modeling Deformable Objects from a Single Depth Camera
- 假设你的键盘只有以下键: A Ctrl + A Ctrl + C Ctrl + V