1.1 安装环境
软件 | 版本 |
操作系统 | Red Hat Enterprise Linux Server release 6.2 (Santiago) x86_64 GNU |
Hadoop | Hadoop 2.2.0(安装步骤见Hadoop安装手册) |
JDK | java version "1.7.0_51" 64-Bit (安装步骤见Hadoop安装手册) |
Flume | apache-flume-1.4.0-bin.tar.gz |
1.2 安装步骤
概述:如果sink目标是hdfs,请确保hadoop正确安装,并且hadoop的环境变量正确配置,否则flume在写hdfs的时候会报错。
1.2.1 下载flume
下载地址:http://flume.apache.org/download.html
下载版本:apache-flume-1.4.0-bin.tar.gz
1.2.2 创建flume安装目录
mkdir ~/flume
1.2.3 在flume安装目录解压flume
tar –zxvf apache-flume-1.4.0-bin.tar.gz
解压后得到文件夹apache-flume-1.4.0-bin
1.2.4 配置环境变量,修改/etc/profile文件
以root权限修改/etc/profile文件
第一步:vi /etc/profile
第二步:在文件尾部添加如下记录:
export FLUME_HOME=/home/hadoop/flume/apache-flume-1.4.0-bin
export FLUME_LOG_DIR=$FLUME_HOME/log
export PATH=$PATH:$FLUME_HOME/bin
第三步:执行 source /etc/profile 以使环境变量生效
1.2.5 删除flume安装目录下不兼容的jar包
rm guava-10.0.1.jar
rm protobuf-java-2.4.1.jar
注释:1、由于flume与hadoop2的兼容问题,在正确配置了hadoop的环境变量的情况下,可以直接删除这两个jar包。
2、可以将到hadoop的安装路径下的share目录下将对象的这两个jar包的最新版本拷贝过来覆盖掉也可
至此hadoop安装配置完成
1.3 系统测试
1.3.1 写一个flume配置文件
第一步:进入配置文件所在目录
cd $FLUME_HOME/conf
第二步:新建配置文件
touch test.conf
第三步:编辑配置文件
vi test.conf
将如下内容添加到配置文件中并保存退出(本测试环境在249主机)
# test.conf: A single-node Flume configuration
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = syslogtcp
#配置相应的ip地址和端口号
a1.sources.r1.bind = 192.168.2.249
a1.sources.r1.port = 5140
# Describe the sink
#a1.sinks.k1.type = logger
a1.sinks.k1.type = hdfs
a1.sinks.k1.channel = c1
#配置hdfs的目录路径
a1.sinks.k1.hdfs.path = hdfs://192.168.2.239:9000/flume/input1/
a1.sinks.k1.hdfs.filePrefix = events-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
# Use a channel which buffers events in memory
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
1.3.2 启动基于flume
第一步:进入flume安装目录
cd $FLUME_HOME
第二步:执行命令
bin/flume-ng agent --conf conf --conf-file conf/test.conf --name a1 -Dflume.root.logger=INFO,console
当在控制台看见如下打印信息(无ERROR)时表示正确启动:
[INFO - org.apache.flume.source.SyslogTcpSource.start(SyslogTcpSource.java:110)] Syslog TCP Source starting...
1.3.3 telnet连接发送测试数据
第一步:telnet连接flume
telnet 192.169.2.249 5140
当连接成功是界面如下:
第二步:发送测试数据
直接在控制太打印字符串,以换行结束一行输入
例如下图:
1.3.4 查看flume日志
在刚才启动flume的控制台如果出现如下信息则表明flume正常接收数据并写hdfs
1.3.5 查看hdfs上是否有文件生成
第一步:进入hadoop家目录
cd $HADOOP_HOME
第二步:执行
bin/hadoop fs -ls hdfs://192.168.2.239:9000/flume/input1/
1.4 FAQ
1.5 参考资料
(一)、flume官方文档:http://flume.apache.org/FlumeUserGuide.html#json-reporting
(二)、flume配置sink写Hadoop2.2:
http://www.tuicool.com/articles/AZr6zi
http://www.sjsjw.com/kf_cloud/article/202_8843_24755.asp