多个agent串联

采集需求:比如业务系统使用log4j生成的日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到hdfs,使用agent串联

根据需求,首先定义以下3大要素

第一台flume agent

l  采集源,即source——监控文件内容更新 :        exec  ‘tail -F file’

l  下沉目标,即sink——数据的发送者,实现序列化  :  avro sink

l  Source和sink之间的传递通道——channel,可用file channel 也可以用 内存channel

第二台flume agent

l  采集源,即source——接受数据。并实现反序列化 : avro source

l  下沉目标,即sink——HDFS文件系统 :  HDFS sink

l  Source和sink之间的传递通道——channel,可用file channel 也可以用 内存channel

配置文件编写:

Flume-agent1:tail-avro-avro-logger.conf

#tail-avro-avro-logger.conf

# Name the components on this agent

a1.sources = r1

a1.sinks = k1

a1.channels = c1

# Describe/configure the source

a1.sources.r1.type = exec

a1.sources.r1.command = tail -F

/home/hadoop/bigdatasoftware/datas/access.log

a1.sources.r1.channels = c1

# Describe the sink

##sink端的avro是一个数据发送者

a1.sinks.k1.type = avro

a1.sinks.k1.hostname = hadoop-001

a1.sinks.k1.port = 41414

a1.sinks.k1.batch-size = 10

# 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-agent2: avro-hdfs.conf

a1.sources = r1

a1.sinks =s1

a1.channels = c1

##source中的avro组件是一个接收者服务

a1.sources.r1.type = avro

a1.sources.r1.bind = 0.0.0.0

a1.sources.r1.port = 41414

a1.sinks.s1.type=hdfs

a1.sinks.s1.hdfs.path=hdfs://hadoop-001:9000/logs/flume/

a1.sinks.s1.hdfs.filePrefix = access_log

a1.sinks.s1.hdfs.batchSize= 100

a1.sinks.s1.hdfs.fileType = DataStream

a1.sinks.s1.hdfs.writeFormat =Text

a1.sinks.s1.hdfs.rollSize = 10240

a1.sinks.s1.hdfs.rollCount = 1000

a1.sinks.s1.hdfs.rollInterval = 10

a1.sinks.s1.hdfs.round = true

a1.sinks.s1.hdfs.roundValue = 10

a1.sinks.s1.hdfs.roundUnit = minute

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

a1.sources.r1.channels = c1

a1.sinks.s1.channel = c1

输入执行flume指令:

第一个终端:


 ./bin/flume-ng agent -c conf -f /home/hadoop/bigdatasoftware/flume-1.5.0/conf/avro-hdfs.conf -n a1 -Dflume.root.logger=INFO,console


第二个终端:


./bin/flume-ng agent -c conf -f /home/hadoop/bigdatasoftware/flume-1.5.0/conf/tail-avro-avro-logger.conf -n a1 -Dflume.root.logger=INFO,console


第三个终端

在/home/hadoop/bigdatasoftware/datas/access.log文件中添加数据

查看hdfs

cat一下

最新文章

  1. oracle DDL(数据定义语言)基本语句
  2. HDU 1005 Number Sequence(AC代码)
  3. URAL 1233 Amusing Numbers 好题
  4. 没做过编译器就是被人欺——从一道变态的i++题猜编译器的行为(表达式从左往右扫描,同一变量相互影响)
  5. HDOJ 1098 Ignatius's puzzle
  6. 学习笔记 之--AJAX核心对象 XMLHttpRequest
  7. Struts2的通配符配置方式
  8. poj1797 Heavy Transportation Dijkstra算法的简单应用
  9. sql一些常用的经典语句,最后是select as的用法
  10. Django error信息邮件通知功能配置部署
  11. JAVA 列表输入学生的信息
  12. 形象地理解Cookie和Session
  13. sqli-labs(六)
  14. Python3.5+PyQt5多线程+itchat实现微信防撤回桌面版代码
  15. nodejs 修改端口号 process.env.PORT(window环境下)
  16. phpstom pojie
  17. 0_Simple__simpleCooperativeGroups
  18. lucene总结——(十七)
  19. MySQL安装的N种方式
  20. IOI 98 (POJ 1179)Polygon(区间DP)

热门文章

  1. Python 实例方法
  2. jenkins + nodejs + git 自动化部署前端
  3. Ubuntu Core 网络配置
  4. 创建一个版本库,把文件夹用Git管理起来
  5. Ubuntu16.04通过GPT挂载硬盘
  6. JavaBasic_08
  7. Unity 3D光源-Point Light点光源详解/灯泡、模拟灯光效果教程
  8. java 华容道 迷弟版(向 xd-女神 吴嘉欣致敬)
  9. HDU2027:统计元音
  10. HDU 1425 sort C语言实现快速排序