模拟两个agent之间传递消息的场景

说明:

1.在hadoop1机器上有一个flume agent,通过exec监听tail命令输出的结果。
2.新增的结果通过avro sink的方式下层到hadoop2:4141的avro source端。
3.在hadoop2机器上有一个flume agent,通过avro source来接收下沉过来的数据。

编写hadoop1上的通信配置文件

在hadoop1上的flume通信控制的文件tail-avro.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/tuzq/software/flumedata/test.log
a1.sources.r1.channels = c1# Describe the sink
##sink端的avro是一个数据发送者
a1.sinks = k1
##type设置成avro来设置发消息
a1.sinks.k1.type = avro
a1.sinks.k1.channel = c1
##下沉到hadoop2这台机器
a1.sinks.k1.hostname = hadoop2
##下沉到mini2中的4141
a1.sinks.k1.port = 4141
a1.sinks.k1.batch-size = 2# 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

编写hadoop2上的通信配置文件

在hadoop2上的flume通信控制的文件avro-logger.conf的内容如下:

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1# Describe/configure the source
##source中的avro组件是一个接收者服务
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

执行命令,开始测试

进入hadoop1,模拟test.log文件

[root@hadoop1 flumedata]# cd /home/tuzq/software/flumedata
[root@hadoop1 flumedata]# while true
> do
> date >> test.log
> sleep 2
> done

tail命令查看一下test.log

[root@hadoop1 flumedata]# cd /home/tuzq/software/flumedata
[root@hadoop1 flumedata]# tail -f test.log
2017年 06月 14日 星期三 10:21:23 CST
2017年 06月 14日 星期三 10:21:25 CST
2017年 06月 14日 星期三 10:21:27 CST
2017年 06月 14日 星期三 10:21:29 CST
2017年 06月 14日 星期三 10:21:31 CST
2017年 06月 14日 星期三 10:21:33 CST
2017年 06月 14日 星期三 10:21:35 CST
2017年 06月 14日 星期三 10:21:37 CST
2017年 06月 14日 星期三 10:21:39 CST
2017年 06月 14日 星期三 10:21:41 CST
2017年 06月 14日 星期三 10:21:43 CST

启动hadoop2上的flume agent

由于hadoop1上的agent配置文件中配置下沉的位置是hadoop2:4141,所以需要先启动hadoop2上的flume agent
启动命令是:

[root@hadoop2 apache-flume-1.6.0-bin]# pwd
/home/tuzq/software/apache-flume-1.6.0-bin
[root@hadoop2 apache-flume-1.6.0-bin]# ls
agentconf  bin  CHANGELOG  conf  DEVNOTES  docs  lib  LICENSE  NOTICE  README  RELEASE-NOTES  tools
[root@hadoop2 apache-flume-1.6.0-bin]# cd agentconf/
[root@hadoop2 agentconf]# ls
avro-logger.conf
[root@hadoop2 agentconf]#
[root@hadoop2 apache-flume-1.6.0-bin]# bin/flume-ng agent -c conf -f agentconf/avro-logger.conf -n a1 -Dflume.root.logger=INFO,console

启动效果图如下:

启动hadoop1上的flume agent

[root@hadoop1 agentconf]# bin/flume-ng agent -c conf -f agentconf/tail-avro.conf -n a1 -Dflume.root.logger=INFO,console

启动信息:

查看hadoop2上的运行效果

通过上图发现只要test.log中有日志文件变化,在hadoop2上的agent就会有响应结果

Flume案例:模拟两个agent之间传递消息的场景相关推荐

  1. Matlab App Designer 【04】使用公共函数在两个App之间传递数据

    使用公共函数在两个App之间传递数据 一.两个App之间传递数据的关键所在 1.在主App中建立公共函数 2.副App需要输入参数 3.一个非常简单的官网案例 二.一个非常简单的例子 1.LPL战队 ...

  2. [html] 在两个iframe之间传递参数的方法有哪些?

    [html] 在两个iframe之间传递参数的方法有哪些? 通过postMessage与父级通过,父级传递消息通过websocket通信如果是同一个域名下可用stroage,监听storageChan ...

  3. 【转】 android之如何在两个activity之间传递handler_利用broadcast广播机制

    原文:http://blog.csdn.net/jason0539/article/details/18075293 这算是如何在两个activity之间传递handler的解决方案二了,解决方案一见 ...

  4. 用WM_COPYDATA消息来实现两个进程之间传递数据

    文着重讲述了如果用WM_COPYDATA消息来实现两个进程之间传递数据. 进程之间通讯的几种方法: 在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯.常用的方法有   1.使用内存映 ...

  5. java两个web项目之间如何传值,两个项目之间传递参数有关问题 - 大神进

    两个项目之间传递参数问题 --- 大神进 情况 1.两个ssh项目 oms  与 GiftERP 2.调用的是GiftERP的一个Goods表,需要将表数据返回给oms项目 3.首先我oms的页面有一 ...

  6. [html] 在两个iframe之间传递参数的方法有哪些

    [html] 在两个iframe之间传递参数的方法有哪些 通过postMessage与父级通过,父级传递消息通过websocket通信如果是同一个域名下可用stroage,监听storageChang ...

  7. C++:实现模拟两个玩家之间决斗的 N 个实例(附完整源码)

    C++:实现模拟两个玩家之间决斗的 N 个实例 # include <cstdlib> # include <iostream> # include <ctime> ...

  8. 最近发现系统rabbitmq丢消息比较严重,于是想了些方案来查找原因,给将消息发送方式添加确认机制。 我们在本地模拟了wms发送打标消息的场景. 1. 有事务 2. 先发点对点队列, 再发订

    最近发现系统rabbitmq丢消息比较严重,于是想了些方案来查找原因,给将消息发送方式添加确认机制. 我们在本地模拟了wms发送打标消息的场景. 1. 有事务 2. 先发点对点队列, 再发订阅队列 3 ...

  9. android fragment传递数据,Android 两个Fragment之间传递数据实例详解

    Android 两个Fragment之间如何传递数据 FragmentA启动FragmentB,做一些选择操作后,返回FragmentA,需要把FragmentB里面选择的数据传回来.有什么办法? F ...

最新文章

  1. 如何优雅的实现 Spring Boot 接口参数加密解密?
  2. HDU1693 Eat The Trees(插头dp)
  3. LayaAir 图集动画2—动画运用
  4. SRT公网点对点传输及搭建SRT流媒体服务器
  5. java ssh框架 运行_SSH框架的简单示例(执行流程)
  6. Powerdesigner概念模型并将概念模型转换成物理模型
  7. 一下科技何一:移动视频风口,内容创业者如何飞升?
  8. vue3 + vite +ts 引入静态图片
  9. 2015年系统架构师考试题详解
  10. 汇编语言中xor指令_汇编各类指令用法及含义分析 - 全文
  11. java运算符优先级
  12. P1567_统计天数
  13. 神经网络实现手写数字识别
  14. SQL_Server 2008R2数据库安装教程
  15. 太空射击第15课: 道具
  16. 洛谷 P1569 [USACO11FEB]属牛的抗议Generic Cow Prote…
  17. brpc介绍、编译与使用
  18. redis6种数据淘汰策略
  19. 自学软件测试,第一份外包工作8K,到现在大厂月薪30K*16薪
  20. 2020年6月编程语言排行榜:C语言蝉联榜单第一

热门文章

  1. Python 基础详解-列表的反转与排序!跬步千里
  2. VTK:vtkBooleanOperationPolyDataFilter用法实战
  3. JavaScript实现数除以二divideByTwo算法(附完整源码)
  4. boost::type_erasure::any_cast相关的测试程序
  5. boost::quick_exit相关的测试程序
  6. boost::ratio_greater相关的测试程序
  7. boost::math::daubechies_scaling用法的测试程序
  8. Boost:程序选项program options实例
  9. VTK:PolyData之PolyDataToImageData
  10. VTK:绘图之StackedPlot