水槽架构及核心组件
<代码>(1)源收集负责从什么地方采集数据 (2)渠道记录 (3)沉输出代码>
官方文档
http://flume.apache.org/FlumeUserGuide.html
http://flume.apache.org/FlumeUserGuide.html starting-an-agent
水槽使用思路
使用水槽的关键就是写配置文件
(1)配置源
(2)配置Channerl
(3)配置水槽
(4)把以上三个组件串起来
引用>样例
样例1:从指定网络端口采集数据输出到控制台
代码实现:
<代码> #的例子。配置:一个单节点水槽配置 #名称的组件在这个代理 a1。=r1来源 a1。水槽=k1 a1。渠道=c? #描述/配置源 a1.sources.r1。类型=netcat a1.sources.r1。绑定=localhost a1.sources.r1。端口=44444 #描述沉 a1.sinks.k1。类型=记录器 #使用一个通道在内存中缓冲事件 a1.channels.c1。类型=内存 a1.channels.c1。能力=1000 a1.channels.c1。transactionCapacity=100 #绑定源和汇的通道 a1.sources.r1。渠道=c? a1.sinks.k1。通道c1=代码>启动代理/h4>
http://flume.apache.org/FlumeUserGuide.html starting-an-agent
<代码> bin/flume-ng代理- n美元agent_name配置- f - c conf/flume-conf.properties。模板-Dflume.root.logger=INFO,控制台代码>- n和- name同样含义,为代理名称
- c和相依同样含义,为指定一个配置文件
-Dflume.root。记录器=INFO,控制台在控制台输出执行信息
引用>使用telnet进行测试
<代码> telnet localhost 44444 代码>输出结果分析
<代码>事件:{标题:{}的身体:68 65 6 c 6 c 6 f 0 d你好}代码>事件是水槽数据传输的基本单元
事件=可选的标题+字节数组
样例2:监控一个文件实时采集新增的数据输出到控制台
代理选型
执行源+记忆频道+记录器水槽
执行源文档地址
http://flume.apache.org/FlumeUserGuide.html exec-source 引用>
代码实现
<代码> #名称的组件在这个代理 a1。=r1来源 a1。水槽=k1 a1。渠道=c? #描述/配置源 a1.sources.r1。类型=执行 a1.sources.r1.command=tail - f/var/log/test.log a1.sources.r1。shell=/bin/sh - c #描述沉 a1.sinks.k1。类型=记录器 #使用一个通道在内存中缓冲事件 a1.channels.c1。类型=内存 a1.channels.c1。能力=1000 a1.channels.c1。transactionCapacity=100 #绑定源和汇的通道 a1.sources.r1。渠道=c? a1.sinks.k1。通道c1=代码>样例3:将端服务器日志实时采集到B端服务器
技术选型
<代码>执行源+记忆频道+ avro下沉 avro源+记忆频道+记录器水槽代码>代码实现
一个端服务器
<代码> exec-memory-avro。=exec-source来源 exec-memory-avro。水槽=avro-sink exec-memory-avro。渠道=记忆频道 exec-memory-avro.sources.exec-source。类型=执行 exec-memory-avro.sources.exec-source.command=tail - f/home/hadoop/data/data.log exec-memory-avro.sources.exec-source。shell=/bin/sh - c exec-memory-avro.sinks.avro-sink。类型=avro exec-memory-avro.sinks.avro-sink。主机名=hadoop000 exec-memory-avro.sinks.avro-sink。端口=44444 exec-memory-avro.channels.memory-channel。类型=内存 exec-memory-avro.sources.exec-source。渠道=记忆频道 exec-memory-avro.sinks.avro-sink。频道=记忆频道代码>B端服务器
<代码> avro-memory-logger。=avro-source来源 avro-memory-logger。水槽=logger-sink avro-memory-logger。渠道=记忆频道 avro-memory-logger.sources.avro-source。类型=avro avro-memory-logger.sources.avro-source。绑定=hadoop000 avro-memory-logger.sources.avro-source。端口=44444 avro-memory-logger.sinks.logger-sink。类型=记录器 avro-memory-logger.channels.memory-channel。类型=内存 avro-memory-logger.sources.avro-source。渠道=记忆频道 avro-memory-logger.sinks.logger-sink。频道=记忆频道代码>水槽架构及使用例子