搭建 Flume 1.7.0 环境
我使用了4台虚拟机来搭建相对应的节点,具体情况如下:
master | slave1 | slave2 | slave3 | |
---|---|---|---|---|
NameNode | √ | |||
SecondaryNameNode | √ | |||
DataNode | √ | √ | √ | |
ResourceManage | √ | |||
NodeManage | √ | √ | √ | |
Flume | √ | √ | √ | √ |
软件版本:
- Hadoop 2.7.2
- Flume 1.7.0
另注:我的所有软件都安装在 /usr/wang/ 目录下。
安装
1.解压
tar -zxvf apache-flume-1.7.0-bin.tar.gz
2.重命名并建立软链
mv apache-flume-1.7.0-bin flume-1.7.0
ln -s flume-1.7.0 flume
3.配置环境变量
sudo vim /etc/profile
# FLUME ENVIROMENT
export FLUME_HOME=/usr/wang/flume
export PATH=$FLUME_HOME/bin:$PATH
source /etc/profile
4.修改配置文件 flume-env.sh
cp flume-env.sh.template flume-env.sh
vim flume-env.sh
修改 JAVA_HOME:
# Enviroment variables can be set here.
# export JAVA_HOME=/usr/wang/jdk
拷贝 Hadoop 的包到 Flume 的目录下
后期如果使用Flume将收集到的数据 Sink 到 HDFS 中,则需要依赖 Hadoop 相关的 Jar 包:
- commons-configuration-1.6.jar
- commons-io-2.4.jar
- hadoop-auth-2.7.3.jar
- hadoop-common-2.7.3.jar
- hadoop-hdfs-2.7.3.jar
- htrace-core-3.1.0-incubating.jar
在这里我使用的是在 Flume 的 lib/ 下建立软链的方式:
ln -s /usr/wang/hadoop/share/hadoop/common/lib/commons-configuration-1.6.jar /usr/wang/flume/lib/commons-configuration-1.6.jar
ln -s /usr/wang/hadoop/share/hadoop/common/lib/commons-io-2.4.jar /usr/wang/flume/lib/commons-io-2.4.jar
ln -s /usr/wang/hadoop/share/hadoop/common/lib/hadoop-auth-2.7.3.jar /usr/wang/flume/lib/hadoop-auth-2.7.3.jar
ln -s /usr/wang/hadoop/share/hadoop/common/hadoop-common-2.7.3.jar /usr/wang/flume/lib/hadoop-common-2.7.3.jar
ln -s /usr/wang/hadoop/share/hadoop/hdfs/hadoop-hdfs-2.7.3.jar /usr/wang/flume/lib/hadoop-hdfs-2.7.3.jar
ln -s /usr/wang/hadoop/share/hadoop/common/lib/htrace-core-3.1.0-incubating.jar /usr/wang/flume/lib/htrace-core-3.1.0-incubating.jar
分发配置完成的 Flume 到其它节点
rsync -rvl flume-1.7.0 spark@slave1:/usr/wang/
rsync -rvl flume-1.7.0 spark@slave2:/usr/wang/
rsync -rvl flume-1.7.0 spark@slave3:/usr/wang/
Flume 的使用
案例一:Flume 监听端口,在控制台输出端口数据
案例二:Flume 监听日志文件,并将文件上传至 HDFS
案例三:Flume 监听本地目录,并将目录下文件上传至 HDFS
案例四:Flume 监听本地文件,并将文件分别写至 HDFS 和本地文件夹中