Flume 组件安装配置
下载和解压 Flume
- 实验环境可能需要回至第四,五,六章(hadoop和hive),否则后面传输数据可能报错(猜测)!
- 可 以 从 官 网 下 载 Flume 组 件 安 装 包 , 下 载 地 址 如 下 URL 链 接 所 示:https://archive.apache.org/dist/flume/1.6.0/
使用 root用户解压 Flume安装包到“/usr/local/src”路径,并修改解压后文件夹名为 flume
[root@master ~]#tar zxvf /opt/software/apache-flume-1.6.0-bin.tar.gz -C /usr/local/src
[root@master ~]#cd /usr/local/src/
[root@master ~]#mv apache-flume-1.6.0-bin/ flume #修改 Flume安装路径文件夹名称
[root@master ~]#chown -R hadoop:hadoop flume/ #修改文件夹归属用户和归属组为 hadoop用户和 hadoop组
Flume 组件部署
步骤一:使用 root 用户设置 Flume 环境变量,并使环境变量对所有用户生效
[root@master ~]#vi /etc/profile #编辑系统环境变量配置文件
# set flume environment
export FLUME_HOME=/usr/local/src/flume #Flume安装路径
export PATH=$PATH:$FLUME_HOME/bin #添加系统 PATH环境变量
步骤二:修改 Flume 相应配置文件
#首先,切换到 hadoop用户,并切换当前工作目录到 Flume的配置文件夹。
[root@master ~]#su - hadoop
[hadoop@master ~]$source /etc/profile
[hadoop@master ~]$cd /usr/local/src/flume/conf
#拷贝 flume-env.sh.template文件并重命名为 flume-env.sh
[hadoop@master ~]$cp flume-env.sh.template flume-env.sh
步骤三:修改并配置 flume-env.sh 文件
#删除 JAVA_HOME变量前的注释,修改为 JDK的安装路径
[hadoop@master ~]$ vi /usr/local/src/flume/conf/flume-env.sh
#修改 JAVA_HOME参数值为 jdk安装路径
export JAVA_HOME=/usr/local/src/jdk
#使用 flume-ng version 命令验证安装是否成功,若能够正常查询 Flume组件版本为1.6.0,则表示安装成功
[hadoop@master ~]$ flume-ng version
Flume 1.6.0 #查询到 Flume版本为 1.6.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 2561a23240a71ba20bf288c7c2cda88f443c2080
Compiled by hshreedharan on Mon May 11 11:15:44 PDT 2015
From source with checksum b29e416802ce9ece3269d34233baf43f
#如果报error并出现版本号则可能是环境文件冲突
vim /usr/local/src/hbase/conf/hbase-env.sh
修改:
使用 Flume 发送和接受信息
通过 Flume将 Web服务器中数据传输到 HDFS中
步骤一:在 Flume 安装目录中创建 simple-hdfs-flume.conf 文件
[hadoop@master ~]$ cd /usr/local/src/flume/
[hadoop@master ~]$ vi /usr/local/src/flume/simple-hdfs-flume.conf
#写入:
a1.sources=r1
a1.sinks=k1
a1.channels=c1
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/usr/local/src/hadoop/logs/
a1.sources.r1.fileHeader=true
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=hdfs://master:9000/tmp/flume
a1.sinks.k1.hdfs.rollsize=1048760
a1.sinks.k1.hdfs.rollCount=0
a1.sinks.k1.hdfs.rollInterval=900
a1.sinks.k1.hdfs.useLocalTimeStamp=true
a1.channels.c1.type=file
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
#测试下是否能访问master:9000
步骤二:使用 flume-ng agent 命令加载 simple-hdfs-flume.conf 配置信息,启动 flume 传输数据
[hadoop@master flume] $ flume-ng agent --conf-file simple-hdfs-flume.conf --name a1
#如果一直在输出则表面成功,否则报错
#ctrl+c 退出 flume 传输
#ctrl+z
步骤三:查看 Flume 传输到 HDFS 的文件,若能查看到 HDFS 上/tmp/flume 目录有传输的数据文件,则表示数据传输成功
[hadoop@master flume] $ hdfs dfs -ls /tmp/flume #查看HDFS文件系统/tmp/f1ume目录下文件
-rw-r--r-- 2 hadoop super group 1325 2022-04-29 17:13 /tmp/flume/FlumeData.1559747635008
-rw-r--r-- 2 hadoop super group 1344 2022-04-29 17:13 /tmp/flume/F1umeData.1559747635009
-rw-r--r-- 2 hadoop super qroup 1442 2022-04-29 17:13 /tmp/flume/FlumeData.1559747635010