flume安装部署手册new.docx
《flume安装部署手册new.docx》由会员分享,可在线阅读,更多相关《flume安装部署手册new.docx(13页珍藏版)》请在冰点文库上搜索。
flume安装部署手册new
Flume-NG安装部署说明
保密文件
不得外传
目录
1.前言5
1.1.适用范围5
1.2.专业术语5
1.3.前提和假设5
1.4.注意事项5
1.5.参考文档5
2.ApacheFlume介绍6
2.1.数据流模型6
2.2.ApacheFlume支持的其它数据流模型6
2.2.1.多代理流6
2.2.2.合并流7
2.2.3.多通路流7
3.部署说明8
3.1.先决条件8
3.1.1.操作系统平台8
3.1.2.所需软件8
3.2.环境准备8
3.2.1.账号分配8
3.2.2.目录分配8
3.2.3.环境变量设置8
3.3.安装步骤8
3.3.1.下载安装包8
3.3.2.解压安装包8
3.3.3.配置说明9
4.日常维护10
4.1.启动ApacheFlumeAgent10
4.2.启动ApacheFlumeClient11
4.3.停止ApacheFlume13
4.4.ApacheFlume命令13
5.其它14
1.前言
Flume开始由Cloudera公司开发,2011年Cloudera公司将Flume贡献给开源社区,现在ApacheFlume是ApacheSoftwareFoundation的一个顶级项目。
目前Flume有两个可用的Release版本:
0.9x和1.x。
0.9x版本称为Flume-OG由Cloudera公司开发和维护,1.x版本称为Flume-NG由ApacheSoftwareFoundation开发和维护。
本文档只对ApacheFlume1.2.0进行介绍说明。
1.1.适用范围
本手册说明了ApacheFlume的安装、配置、日常维护、及常见问题的处理方法。
1.2.专业术语
术语
解释
avro
基于二进制的高性能的通讯中间件.提供了数据序列化的功能和RPC服务。
agent
一个JVM进程,其中运行了FlumeNG组件。
event
在FlumeNG中传输的单个数据单元。
source
FlumeNG中接收数据源的地方。
sink
在flumeNG中数据流动的终点。
channel
source和sink之间的数据连接导管。
1.3.前提和假设
阅读本手册前,您需要对linux操作系统和java编程语言的基础知识比较了解。
1.4.注意事项
不要在手册描述的生产环境进行学习类型的操作,否则将引发生产故障。
1.5.参考文档
http:
//flume.apache.org/FlumeUserGuide.html
https:
//cwiki.apache.org/FLUME/flume-ng.html
2.ApacheFlume介绍
ApacheFlume是一个分布式部署的、可靠的、高效率的日志采集系统,其通过一个简单灵活的框架实现了海量日志的采集、聚合和统一存储。
2.1.数据流模型
FlumeAgent是一个JVM进程,其中包含包括三个组件:
Source、Channel、Sink。
FlumeSource从外部数据源获得数据(events)如:
WebServer,外部数据源使用目前公认格式将数据(events)传送给FlumeSource如:
Avro的FlumeSource可以接受AvroClinet传送来的数据。
当数据到达FlumeSource后,FlumeSource将数据存储在一个或多个Channel中,Channel存储数据直到数据被Sink所处理。
2.2.ApacheFlume支持的其它数据流模型
2.2.1.多代理流
2.2.2.合并流
2.2.3.多通路流
3.部署说明
3.1.先决条件
3.1.1.操作系统平台
GNU/Linux2.6.18-308.el5xen或以上版本
3.1.2.所需软件
JRE:
Java(TM)SERuntimeEnvironment(build1.6.0_32-b05)或以上版本
Flume:
AapcheFlume1.2.0
3.2.环境准备
3.2.1.账号分配
本手册主要说明如何配合HDFS使用,所以请使用为Haoop集群所分配的账号操作Flume,以免对HDFS写入时出现权限问题。
如不涉及HDFS的写入,请单独分配账号进行操作。
3.2.2.目录分配
由于使用Haoop集群的账号,为了方便管理和操作起见请在Haoop用户目录下建立一个独立目录存放Haoop集群用户所使用到的应用。
如:
/home/hadoop/app/flume。
3.2.3.环境变量设置
JAVA_HOME,CLASS_PATH
3.3.安装步骤
3.3.1.下载安装包
到ApacheFlume官网下载ApacheFlume1.2.0的安装包,并将其上传至安装主机,存放在/home/hadoop/app目录下。
ApacheFlume的官方下载地址如下:
http:
//flume.apache.org/download.html
3.3.2.解压安装包
执行命令对Flume安装包进行解压
[hadoop@cassdb~]$cd/home/hadoop/app
[hadoop@cassdbapp]$tar-xzvfapache-flume-1.2.0-bin.tar.gz
解压完Flume目录结构如下:
3.3.3.配置说明
本手册只对简单数据流及Avroclient进行说明,ApacheFlume的其它配置方法请参见http:
//flume.apache.org/FlumeUserGuide.html。
Step1在Flume的conf目录下新建一个配置文件,并命名为flume-avro.conf
[hadoop@cassdbconf]$touchflume-avro.conf
Step2编辑配置文件
使用文本编辑器对flume-avro.conf文件进行编辑,并输入以下内容:
agent1.sources=avro_source
agent1.sinks=hdfs_sink
agent1.channels=mem_channel
agent1.sources.avro_source.type=avro
agent1.sources.avro_source.bind=0.0.0.0
agent1.sources.avro_source.port=4141
agent1.sources.avro_source.interceptors=timestamp
agent1.sources.avro_source.interceptors.timstamp.type=org.apache.flume.interceptor.TimestampInterceptor$Builder
agent1.sinks.hdfs_sink.type=hdfs
agent1.sinks.hdfs_sink.hdfs.path=hdfs:
//10.32.147.241/flume/weblog/%y-%m-%d
agent1.sinks.hdfs_sink.hdfs.filePrefix=test
agent1.sinks.hdfs_sink.hdfs.rollSize=65000000
agent1.sinks.hdfs_sink.hdfs.rollInterval=0
agent1.sinks.hdfs_sink.hdfs.rollCount=0
agent1.sinks.hdfs_sink.hdfs.fileType=DataStream
agent1.sinks.hdfs-sinks.writeFormat=Text
agent1.channels.mem_channel.type=memory
agent1.channels.mem_channel.capacity=1000
agent1.channels.mem_channel.transactionCapactiy=100
agent1.channels.mem_channel.keep-alive=30
agent1.sources.avro_source.channels=mem_channel
agent1.sinks.hdfs_sink.channel=mem_channel
上面的配置文件定义了一个FlumeAgent,source是avro,sink是hdfs,channel是memory。
avro的RPCserver启动在本地的4141端口。
hdfs的输出目录为hdfs:
//10.32.147.241/flume/weblog,并按天产生下一级目录,文件名前缀是test,文件到达64M时换一个文件存储。
4.日常维护
4.1.启动ApacheFlumeAgent
进入安装路径的bin目录
[hadoop@cassdb~]$cd/home/hadoop/app/apache-flume-1.2.0/bin
执行启动命令
[hadoop@cassdbbin]$./flume-ngagent--conf-file../conf/flume-avro.conf--nameagent1-Dflume.root.logger=INFO,console
如Flume正常启动,会有如下日志信息产生:
4.2.启动ApacheFlumeClient
ApacheFlumeClient可以运行在任何安装有ApacheFlume环境的主机上,只要和运行ApacheFlumeAgent的主机网络上相通。
运行命令如下:
flume-ngavro-client-H"$avro_host"-p"$avro_port"-filename"$filename"
我们在测试环境中针对ApacheFlumeClient的启停编写了shell脚本,该脚本会将运行目录下所有的文件传输到ApacheFlumeAgent。
启动脚本如下:
#!
/bin/bash
local_file_dir=/home/hadoop/mr_data/hw
local_bak_dir=/home/hadoop/mr_data/back_up/hw
avro_host=10.32.147.241
avro_port=4141
status_file=/home/hadoop/apache-flume-1.2.0/conf/status_file
if[!
-d"$local_file_dir"];then
echo"$local_file_dirnotfound"
exit1
fi
if[!
-d"$local_bak_dir"];then
echo"$local_bak_dirnotfound"
exit2
fi
if[!
-f"$status_file"];then
touch"$status_file"
echo$(date)>"$status_file"
fi
echo"changecurrectdirto$local_file_dir"
cd"$local_file_dir"
if[0-ne$?
];then
echo"can'tchangedirto$local_file_dir"
exit3
fi
while[-f$status_file]
do
forfilenamein$(ls-lrt|awk'{print$9}')
do
echo"filename"
if["$filename"="$status_file"];then
continue
fi
if[[-n"$filename"&&-f"$filename"]];then
echo"uploadfile:
$filename"
flume-ngavro-client-H"$avro_host"-p"$avro_port"-filename"$filename"
echo"mvfile:
$filename"
mv"$filename""$local_bak_dir"
fi
done
sleep10
done
停止脚本如下:
#!
/bin/bash
status_file=status_file
echo"stopingflume-ng......"
if[-f"$status_file"];then
rm-f"$status_file"
if[0-eq$?
];then
echo"rm$status_filesuccessed."
else
echo"rm$status_filefailed."
fi
else
echo"can'tfind$status_file"
fi
4.3.停止ApacheFlume
ApacheFlume并没有提供停止的命令,所以要停止ApacheFlume需要kill进程号
[hadoop@cassdb20120917]$ps-ef|grepflume
[hadoop@cassdb20120917]$kill-9进程号
4.4.ApacheFlume命令
Usage:
./flume-ng[options]...
commands:
helpdisplaythishelptext
agentrunaFlumeagent
avro-clientrunanavroFlumeclient
versionshowFlumeversioninfo
globaloptions:
--conf,-cuseconfigsindirectory
--classpath,-Cappendtotheclasspath
--dryrun,-ddonotactuallystartFlume,justprintthecommand
-Dproperty=valuesetsaJDKsystempropertyvalue
agentoptions:
--conf-file,-fspecifyaconfigfile(required)
--name,-nthenameofthisagent(required)
--help,-hdisplayhelptext
avro-clientoptions:
--host,-Hhostnametowhicheventswillbesent(required)
--port,-pportoftheavrosource(required)
--filename,-Ftextfiletostreamtoavrosource[default:
stdinput]
--headerFile,-RheaderFilecontainingheadersaskey/valuepairsoneachnewline
--help,-hdisplayhelptext
Notethatifdirectoryisspecified,thenitisalwaysincludedfirst
intheclasspath.
5.其它
本手册只对ApacheFlume的简单数据流进行了配置(这种配置也是我们目前测试系统中使用的),ApacheFlume还支持很多其它的配置方法,其它配置方法的描述请参见:
http:
//flume.apache.org/FlumeUserGuide.html