环境检查
#首先确认自己的Linux是Centos版本,运行命令
cat /etc/centos-release
结果:CentOS Linux release 7.9.2009 (Core)
安装
Flume本身是由Java开发的,所以需要服务器上安装好JDK1.8(注意区分Linux还是Windows系统的JDk)。
进入软件预安装目录,下载Flume的安装包
# 进入预安装目录 cd /opt/presoftware/ # 下载或者上传Flume
绿色软件,解压即安装
tar -xvf apache-flume-1.11.0-bin.tar.gz -C /opt/software/
重命名
cd /opt/software/ mv apache-flume-1.11.0-bin/ flume-1.11.0
配置环境变量
# 编辑文件 vim /etc/profile.d/flumehome.sh # 在文件中添加 export FLUME_HOME=/opt/software/flume-1.11.0 export PATH=$PATH:$FLUME_HOME/bin # 保存退出,生效 source /etc/profile.d/flumehome.sh # 测试 flume-ng version
如果是官网下载的Flume安装包,那么需要注意连接池的jar包和Hadoop jar包是否冲突
# 查看Flume的连接池jar包 ls /opt/software/flume-1.11.0/lib/guava* # 如果guava的版本是11.0.2版本,和Hadoop3.2.4的guava版本不一样 rm -rf /opt/software/flume-1.11.0/lib/guava-11.0.2.jar # 复制Hadoop的jar过来 cp /opt/software/hadoop-3.2.4/share/hadoop/common/lib/guava-27.0-jre.jar /opt/software/flume-1.11.0/lib/
控制台打印
需要注意的是,从Flume1.10.0版本开始,Flume将log4j 1.x替换为了log4j 2.x,因此导致输出数据的时候,默认是将数据写到
flume.log
文件中,但是学习过程中,希望数据能够直观展现(打印到控制台上),所以需要修改配置编辑文件
vim /opt/software/flume-1.11.0/conf/log4j2.xml
在文件中添加
<Loggers> <Logger name="org.apache.flume.lifecycle" level="info"/> <Logger name="org.jboss" level="WARN"/> <Logger name="org.apache.avro.ipc.netty.NettyTransceiver" level="WARN"/> <Logger name="org.apache.hadoop" level="INFO"/> <Logger name="org.apache.hadoop.hive" level="ERROR"/> <Root level="INFO"> #添加这一行配置,让日志输出在控制台 <AppenderRef ref="Console" /> <AppenderRef ref="LogFile" /> </Root> </Loggers>
软件源码编译
一些官网和github上给的是源码,需要自己根据自己的操作系统手动编译为软件,较为复杂。