Flume笔记一之简介部署

Flume笔记一之简介部署

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

简介

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

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

Flume笔记一之简介部署

部署实例

1:下载

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

Flume笔记一之简介部署

Flume笔记一之简介部署


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/


简介

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

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

Flume笔记一之简介部署

部署实例

1:下载

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

Flume笔记一之简介部署

Flume笔记一之简介部署


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/