您的位置:首页 > 大数据 > Hadoop

flume 采集数据到hdfs

2015-10-09 21:57 603 查看
前言:在两台机器上做flume 采集数据实验:hadoop05上安装flume 1.5.0版本,hadoop07上安装hadoop2.2.0版本

一、安装

前提:flume是依赖jdk,所以需要安装jdk,这里就不多说,jdk 安装目录/usr/local/jdk1.6.0_45

下载安装文件:apache-flume-1.5.0-bin.tar.gz,上传到linux 目录:/usr/local/

解压文件tar -zvxf apache-flume-1.5.0-bin.tar.gz 得到apache-flume-1.5.0-bin ,以下称为FLUME_HOME

二、修改配置文件

cd apache-flume-1.5.0-bin/conf 下

mv flume-env.sh.template flume-env.sh

vim flume-env.sh 添加jdk 配置:JAVA_HOME=/usr/local/jdk1.6.0_45 保存退出

三、建立配置文件,这个配置文件是flume :source、channel、sink三大组件的配置,取名为example.conf ,内容如下:

#定义agent名, source、channel、sink的名称

example.sources = r1

example.channels = c1

example.sinks = k1

#具体定义source

example.sources.r1.type = spooldir

example.sources.r1.spoolDir = /home/hadoop/logs

#具体定义channel

example.channels.c1.type = memory

example.channels.c1.capacity = 10000

example.channels.c1.transactionCapacity = 100

#定义拦截器,为消息添加时间戳

example.sources.r1.interceptors = i1

example.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder

#具体定义sink

example.sinks.k1.type = hdfs

example.sinks.k1.hdfs.path = hdfs://hadoop07:9000/flume/%Y%m%d

example.sinks.k1.hdfs.filePrefix = events-

example.sinks.k1.hdfs.fileType = DataStream

#不按照条数生成文件

example.sinks.k1.hdfs.rollCount = 0

#HDFS上的文件达到128M时生成一个文件

example.sinks.k1.hdfs.rollSize = 134217728

#HDFS上的文件达到60秒生成一个文件

example.sinks.k1.hdfs.rollInterval = 60

#组装source、channel、sink

example.sources.r1.channels = c1

example.sinks.k1.channel = c1

jiang

四、拷贝需要hadoop 的jar包,因为是收集数据到hdfs,需要调用到hdfs 客户端接口,所以需要以下几个jar

在hadoop 解压之后的相对路径:(这里是使用hadoop2.2.0版本)

--hadoop-2.2.0/share/hadoop

--common/hadoop-common-2.2.0.jar

--common/lib/common-configuration-1.6.jar

--common/lib/hadoop-auth-2.2.0.jar

--hdfs/hadoop-hdfs-2.2.0.jar

到${FLUME_HOME}/lib下

五、通知flume 知道hadoop的信息

要让flume 知道hadoop的配置,所以需要拷贝hadoop 的两个核心配置文件:core-site.xml 和hdfs-site.xml到

${FLUME_HOME}/conf下

六、启动hadoop

所有的配置都已经准备好, 启动hadoop07 机器上的hadoop ,根据example.conf 中的配置而定,我这里用的是hadoop07,为了防止错误,建立我们本机的监听目录:

/home/hadoop/logs,

七、启动flume

所用的前提已经准备好,此时最后一步,启动flume:

${FLUME_HOME}/bin/flume-ng agent -n example -c conf -f conf/exmple.conf -Dflume.root.logger=INFO,console

擦数说明:agent -n example 代理对象

-c conf 配置文件的地址目录

-f conf/exmple.conf 指制定配置文件

-Dflume.root.logger=INFO,console 日志级别为INFO ,打印在控制台上

八、校验

将拷贝文件 cp /data/flume_test.txt /home/hadoop/logs 下

flume 会将其采取,到hdfs 中查看是否有多了一个flume 文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: