相关知识
Flume是Cloudera公司的一款高性能、高可用的分布式日志收集系统。
Flume的核心是把数据从数据源收集过来再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,再删除缓存的数据。
Flume传输数据的基本单位是event,如果是文本文件,通常是一行记录,这也是事务的基本单位。
Flume运行的核心是Agent。它是一个完整的数据收集工具,含有三个核心组件,分别是Source、Channel、Sink。
1.Source组件是专门用于收集日志的,可以处理各种类型各种格式的日志数据,包括Avro、Thrift、Exec、Jms、Spooling directory、Netcat、Sequence Generator、Syslog、HTTP、Legacy、自定义。
2.Source组件把数据收集来以后,临时存放在Channel中。
3.Channel组件是在Agent中专门用于临时存储数据的,Source收集的数据将临时储蓄于此,可以存放在Memory、Jdbc、File、自定义。
4.Channel中的数据只有在Sink发送成功之后才会被删除。
5.Sink组件是用于把Channel中数据发送到目的地的组件,目的地包括HDFS、Logger、Avro、Thrift、Ipc、File、Null、HBase、Solr、自定义。
在整个数据传输过程中,流动的是event。事务保证是在event级别。
任务内容
在已安装好的Hadoop环境基础上,安装并配置Flume。
任务步骤
1.首先在Linux本地,新建/data/flume1目录,用于存放所需文件。
mkdir -p /data/flume1
2.切换到/data/flume1目录,使用wget命令,下载Hive所需安装包flume-ng-1.5.0-cdh5.4.5.tar.gz。
cd /data/flume1
wget '路径名'/flume-ng-1.5.0-cdh5.4.5.tar.gz
将/data/flume1目录下的Flume的压缩包,解压缩到/apps目录下。
tar -xzvf /data/flume1/flume-ng-1.5.0-cdh5.4.5.tar.gz -C /apps
并将解压缩后的目录apache-flume-1.5.0-cdh5.4.5-bin重命名为flume。
cd /apps
mv /apps/apache-flume-1.5.0-cdh5.4.5-bin/ /apps/flume
3.修改环境变量。使用vim打开用户环境变量。
sudo vim ~/.bashrc
将以下内容,追加到用户环境变量中。
#flume config
export FLUME_HOME=/apps/flume
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$FLUME_HOME/bin:$PATH
执行source,使用户环境变量生效。
source ~/.bashrc
4.配置Flume。切换到/apps/flume/conf目录,并将配置文件flume-env.sh.template重命名为flume-env.sh。
cd /apps/flume/conf
mv /apps/flume/conf/flume-env.sh.template /apps/flume/conf/flume-env.sh
使用vim打开flume-env.sh文件。
vim flume-env.sh
并将jdk的路径添加到flume-env.sh文件中。
export JAVA_HOME=/apps/java
5.执行以下命令,测试Flume的安装是否正常。
flume-ng version
输出内容如下:
至此Flume安装完毕 !