Flume笔记一之简介部署


原创  2016年11月06日 20:12:47



  • 214


简介

         Flume是一种分布式,高可靠的数据收集工具,它可以从各种类型的数据源采集汇总数据到各种类型的目的地。flume本身并不产生数据它只是数据的搬运工。相比sqoop从数据库到hdfs的数据导入导出,flume可以监控端口,监听某一个文件的变化,也可以从数据库中获取数据并上传到hdfs中。

         Flume的组成分为source接收,channel通道,sink汇总,这三个部分组成一个agent,每个agent就是一个flume服务。下图就是flume官网中的截图。

flume 从文件最新处采集_flume 从文件最新处采集

部署实例

1:下载

         访问官网flume.apache.org下载安装包,注意选择下载binary,source是源码。



flume 从文件最新处采集_JAVA_02


flume 从文件最新处采集_flume 从文件最新处采集_03


2:解压缩,目录结构

         将安装包拷贝到linux中然后解压缩tar-zvxf apache-flume-1.7.0-bin.tar.gz,

解压后flume的主要目录结构为:

bin存放可执行文件

config存放配置文件

docs存放文档

lib存放各种架包。

 

3:修改flume-env.sh文件,配置环境变量

         Flume是java写的所以需要配置环境变量,在config目录下有个flume-env.sh.template文件,我先执行拷贝命令复制此文件cp flume-env.sh.template flume-env.sh。在flume-env.sh文件中可以修改java_home。

         打开此文件光标移动到JAVA_HOME所在行输入yyp复制本行然后修改JAVA_HOME,保存文件退出。注意which  java命令可以查看jdk路径。

   

export JAVA_HOME=/usr/local/jdk1.7.0_79

4:实例

         在flume的config目录下可以随便命名一个*.conf文件这里我创建一个shb01.conf文件,在这个文件中对flume进行配置。

         下面的例子是监听一个端口,把发往此端口的数据以日志的形式打印出来。

 

创建shb01.conf文件,文件内容如下

#每个agent需要一个名字,本例中agent的名字叫a1
a1.sources=r1
a1.channels=c1
a1.sinks=k1
 
#配置数据源
a1.sources.r1.type=netcat  #type配置数据源 ,netcat监听端口
a1.sources.r1.bink=0.0.0.0 #0.0.0.0表示只要能访问此服务器就可以向44444端口发数据,也可以为localhost
a1.sources.r1.port=44444   #被监听的端口
 
#配置通道
a1.channels.c1.type=memory   #memory表示channel类型为内存
a1.channels.c1.capacity=1000 #channel数据最大容量
a1.channels.c1.transactioncapacity=100 #事务,一次性提交数据量不能超过100
 
a1.sinks.k1.type=logger  #以log方式输出,并不上传到hdfs
 
#链接
a1.sources.r1.channels=c1
a1.sinks

.k1.channel=c1

 

5:启动Agent

bin/flume-ng agent --conf conf/ --conf-fileconf/shb01.conf --name a1 -Dflume.monitoring.type=http-Dflume.monitoring.port=34343 -Dflume.root.logger=INFO,console &

6:telnet

执行telent  localhost  44444,然后输入hello可以在控制台中监听到。另外telnet退出是ctrl+]回车进入telnet界面后再输入quit退出。



7:可以在浏览器中查看agent服务

http://192.168.79.131:34343/