1.什么是flume
Cloudera 开发的框架,实时收集数据
Flume学习的核心: agent的设计
官方文档,http://flume.apache.org/FlumeUserGuide.html
2.flume环境的搭建
下载地址: http://archive.cloudera.com/cdh5/ --- 选择对应版本
常规的解压安装操作
1)配置环境变量
export FLUME_HOME=/usr/cdh5/flume-1.5.0-cdh5.3.6-bin
export PATH=$PATH:$FLUME_HOME/bin
2)配置flume-env.sh文件
export JAVA_HOME=/usr/java/jdk1.7.0_79
(不需要配置hadoop,只需依赖jdk就行了)
3.flume入门程序
flume与其它框架对接的话,通过配置flume-env.sh文件,以及在lib中添加对应的jar包!
bin/flume-ng help: 借组help来查看命令参数
1)my.conf文件的编写:
a1.sources = r1
a1.sinks = k1
a1.channels = c1
#描述/配置源
a1.sources.r1.type = netcat
a1.sources.r1.bind = s0
a1.sources.r1.port = 44444
#使用缓冲内存中事件的通道
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
#描述sink
a1.sinks.k1.type = logger
#将信源和信宿绑定到信道
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2)flume目录启动命令:
bin/flume-ng agent -c conf -f conf/my.conf -n a1 -Dflume.root.logger=INFO,console
3)安装telnet, 另个终端进行telnet s0 44444,输入数据
4.主要知识点与操作点
Event:Flume数据传输的基本单元
Source 、Channel 、Sink 、Flow、Agent
1)hdfs sinks
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://s0/flume/webdata/
复制hadoop的四个jar包到flume的lib中、以及复制hadoop中的core-site.xml、hdfs-site.xml到flume的conf中
运行:bin/flume-ng agent -c /usr/cdh5/flume-1.5.0-cdh5.3.6/conf -n a1 -f /usr/cdh5/flume-1.5.0- cdh5.3.6/conf/my.conf -Dflume.root.logger=DEBUG,console
2)flume文件监控
a)监控一个文件 (exec source)
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /var/log/secure
b)监控一个目录(Spooling Directory Source),相对于监控文件即使重启也不会丢失数据
a1.sources.r1.type = spooldir
a1.sources.r1.channels = c1
a1.sources.r1.spoolDir = /var/log/apache/flumeSpool
a1.sources.r1.fileHeader = true
3).flume集群搭建 (每台机器都搭建flume,利用avro sink)
参见如下连接:
https://www.cnblogs.com/haozhengfei/p/2192231596ceb2ac4c22294dbd25a1ca.html
5.问题点
1)错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty?
-----》 /etc/profile中flume的路径配错了!(害我搞了好久,原来是我把flume的名称改了导致的)
2)startx 报 xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory) ---- 普通用户启动不了桌面程序
-------》 chmod u+s /usr/bin/Xorg,以程序所有者的身份运行
3)Exception in thread "main" java.lang.UnsatisfiedLinkError:
org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V
---》 归根结底是hadoop的运行问题,这个问题不解决导致所有与hadoop运行有关的程序都报这个错!(已解决!导入的hadoop源码编译包不对)
如若解决不了,得花点时间去重新搭建集群环境咯?
-----------------------------------------------------------------
由于NativeCrc32.nativeComputeChunkedSumsByteArray问题,flume的my.conf文件、监控操作、集群搭建都没能
好好操作练习!!!!有待加强深入练习。。。。。