Flume学习4_CentOS6.5下,Flume安装及配置详细教程-存疑版

来源:互联网 发布:耳机测试软件 编辑:程序博客网 时间:2024/05/16 08:43

CentOS6.5下,Flume安装及配置详细教程

 

下载地址:

http://mirror.bit.edu.cn/apache/flume/1.5.0.1/apache-flume-1.5.0.1-bin.tar.gz

 

安装:

cd /usr/local

打开local目录

wget http://mirror.bit.edu.cn/apache/flume/1.5.0.1/apache-flume-1.5.0.1-bin.tar.gz

使用wget命令,安装软件(适合知道下载链接时)

tar xvzf apache-flume-1.5.0.1-bin.tar.gz

解压

mv apache-flume-1.5.0.1-bin flume

改成一个简单的名字

cd flume

打开flume

 

修改 flume-env.sh 配置文件:

cd /usr/local/flume

打开flume目录

cp conf/flume-env.sh.template conf/flume-env.sh

复制一个,作为模板

 vim conf/flume-env.sh

编辑,目的是加上JAVA_HOME,编辑的结果如下所示:

JAVA_HOME=/usr/local/java/jdk1.7.0_51

/usr/local/flume/bin/flume-ng version

检验

 

显示如下信息:

[root@Master flume]# /usr/local/flume/bin/flume-ng version

Flume 1.5.0.1

Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git

Revision: ceda6aa1126a01370641caf729d8b1dd6d80aa61

Compiled by hshreedharan on Tue Jun 10 15:12:04 PDT 2014

From source with checksum 9500a0fd0084429fe7b0ecf18132be2b

[root@Master flume]# 

表示成功

 

 

通过一些实际的配置实例,来了解Flume的使用:

 

案例一:

Avro Source+Memory Channel+Logger Sink:

 

使用apache-flume-1.5.0.1自带的例子,使用Avro Source接收外部数据源,Logger作为sink,即通过Avro RPC调用,将数据缓存在channel中,然后通过Logger打印出调用发送的数据。

 

配置Agent,修改配置文件conf/flume-conf.properties,内容如下:

cd /usr/local/flume/conf

打开文件所在目录

vim flume-conf.properties

编辑文件

 

内容编辑为:

# Define a memory channel called ch1 on agent1

agent1.channels.ch1.type = memory

 

# Define an Avro source called avro-source1 on agent1 and tell it

# to bind to 0.0.0.0:41414. Connect it to channel ch1.

agent1.sources.avro-source1.channels = ch1

agent1.sources.avro-source1.type = avro

agent1.sources.avro-source1.bind = 0.0.0.0

agent1.sources.avro-source1.port = 41414

 

# Define a logger sink that simply logs all events it receives

# and connect it to the other end of the same channel.

agent1.sinks.log-sink1.channel = ch1

agent1.sinks.log-sink1.type = logger

 

# Finally, now that we've defined all of our components, tell

# agent1 which ones we want to activate.

agent1.channels = ch1

agent1.channels.ch1.capacity = 1000

agent1.sources = avro-source1

agent1.sinks = log-sink1

 

启动Agent进程:

cd /usr/local/flume

打开flume目录

bin/flume-ng agent -c ./conf/ -f conf/flume-conf.properties -Dflume.root.logger=DEBUG,console -n agent1

 

报错:

Failed to bind to :/0.0.0.0:41414

 

启动Avro Client,发送数据:

cd /usr/local/flume

打开flume目录

bin/flume-ng avro-client -c ./conf/ -H 0.0.0.0 -p 41414 -F /usr/local/programs/logs/sync.log -Dflume.root.logger=DEBUG,console

 

报错:

2015-09-13 23:04:20,532 (main) [ERROR - org.apache.flume.client.avro.AvroCLIClient.main(AvroCLIClient.java:77)] Unable to send data to Flume. Exception follows.

java.io.FileNotFoundException: /usr/local/programs/logs/sync.log (No such file or directory)


这个文件不存在,需要自己再配置!

 

案例二:

案例:Avro

cd /usr/local/flume

打开flume目录

vim conf/avro.conf

编辑文件

加入以下内容:

 

a1.sources = r1

a1.sinks = k1

a1.channels = c1

  

# Describe/configure the source

a1.sources.r1.type = avro

a1.sources.r1.channels = c1

a1.sources.r1.bind = 0.0.0.0

a1.sources.r1.port = 4141

  

# Describe the sink

a1.sinks.k1.type = logger

  

# Use a channel which buffers events in memory

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

  

# Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

 

启动flume agent a1:

/usr/local/flume/bin/flume-ng agent -c . -f /usr/local/flume/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console

 

创建指定文件:

echo "hello world" > /usr/local/flume/log.00

 

使用avro-client发送文件:

/usr/local/flume/bin/flume-ng avro-client -c . -H m1 -p 4141 -F /usr/local/flume/log.00

 

报错:

15/09/14 05:45:54 WARN api.NettyAvroRpcClient: Using default maxIOWorkers

15/09/14 05:45:55 ERROR avro.AvroCLIClient: Unable to open connection to Flume. Exception follows.

org.apache.flume.FlumeException: NettyAvroRpcClient { host: m1, port: 4141 }: RPC connection error


 

Avro Source+Memory Channel+HDFS Sink:

 

Spooling Directory Source+Memory Channel+HDFS Sink:

 

Exec Source+Memory Channel+File Roll Sink:

 

这三个的步骤也是:

配置Agent,启动Agent进程,(启动Avro Client),具体配置信息不进行列举。


0 0