Flume初识(含安装部署)

Posted on 2020-03-26 17:09  MissRong  阅读(144)  评论(0)    收藏  举报

大数据技术之Flume

一、Flume简介

1.Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集(实时)、聚集、移动的服务,Flume只能在Unix环境(搭建在Linux当中的)下运行。

2.Flume基于流式架构,容错性强,也很灵活简单。

3.Flume、Kafka用来实时进行数据收集Spark、Flink用来实时处理数据impala用来实时查询

 

Source常见类型:spooling directory,exec,syslog,avro,netcat

Put事务流程

Doput:将批量数据写入临时缓冲区putlist

Docommit:检查channel内存队列是否足够合并

DoRollback:channel内存队列空间不足,回滚数据

 

Channel是位于Sourcesink之间的缓冲区

Flume自带两种Channel:Memory ChannelFile Channel.

Memory Channel 是基于内存缓存,在不需要关心数据丢失的情境下使用

File Channel 是Flume的持久化Channel 系统宕机不会丢失数据,慢

 

Take事务

Dotake先将数据取到临时缓冲区takelist

Docommit;如果数据全部发送成功,则清除临时缓冲区takelist

dorollBack:数据发送过程中如果出现异常,rollBack将临时缓冲区takelist中的书据归还给channel内存队列.

 

Sink源

HDFS,Kafka,logger,avro,File,自定义

二、Flume角色

 

2.1、Source

用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel,这个有点类似于Java IO部分的Channel。

2.2、Channel

用于桥接Sources和Sinks,类似于一个队列

2.3、Sink

从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者HBase)。

2.4、Event

传输单元,Flume数据传输的基本单元,以事件的形式将数据从源头送至目的地。

三、Flume传输过程

source监控某个文件或数据流,数据源产生新的数据,拿到该数据后,将数据封装在一个Event中,并put到channel后commit提交,channel队列先进先出,sink去channel队列中拉取数据,然后写入到HDFS中。

四、Flume部署

4.1、官网下载Flume压缩包

1)到apache官网下载flume包:搜apache.org

2)下载apache-flume-1.8.0-bin.tar.gz

3)下载到Windows中之后,拖拽此压缩包到Xshell即可完成上传-传到当前目录了。

4)关于Xshell中通过拖拽Windows上的文件进行下载的方法说明:

如果想通过拖拽来安装,需要安装rz、sz的命令包

可先查找命令所在的包文件:yum search sz

安装包:yum -y install lrzsz

4.2、Flume环境配置

1)解压、移动flume包到自定义的位置-方便找

[root@bigdata111 ~]# ls

anaconda-ks.cfg apache-flume-1.8.0-bin.tar.gz

[root@bigdata111 ~]# mv apache-flume-1.8.0-bin.tar.gz /opt/software/

再解压:

[root@bigdata111 software]# tar -zxvf apache-flume-1.8.0-bin.tar.gz -C /opt/module/

修改名字:

[root@bigdata111 module]# mv apache-flume-1.8.0-bin/ flume-1.8.0

2)修改flume配置文件

(1)修改官方配置文件的名字:

进入conf目录下面:

[root@bigdata111 conf]# mv flume-env.sh.template flume-env.sh

(2)修改该配置文件-flume-env.sh

将原来前面的注释符号 # 删掉,将JDK的位置告诉它

export JAVA_HOME=/opt/module/jdk1.8.0_144

4.3、配置环境变量

Linux的配置文件内:vi /etc/profile

加上环境变量:

#FLUME_HOME

export FLUME_HOME=/opt/module/flume-1.8.0/

export PATH=$PATH:$FLUME_HOME/bin

保存之后退出

接下来验证:

[root@bigdata111 conf]# source /etc/profile

[root@bigdata111 conf]# flume-ng(如果这个tab之后能自动补全就配置成功了)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3