Flume多source,多sink组合框架搭建

文章目录

  • Flume多source,多sink组合框架搭建
  • 一、实验目的
  • 二、实验原理
  • 三、实验环境
  • 四、实验内容
  • 五、实验步骤
  • 总结

一、实验目的

1.了解Flume数据传输原理

2.了解Flume的配置文件

3.了解Flume采集与投递数据的框架搭建

二、实验原理

Flume运行的核心是Agent。它是一个完整的数据收集工具,含有三个核心组件,分别是Source、Channel、Sink。通过这些组件,Event可以从一个地方流向另一个地方。

Source可以接收外部源发送过来的数据。不同的Source可以接受不同的数据格式。

Channel是一个存储地,接收Source的输出,直到有Sink消费掉Channel中的数据。

Sink消费Channel中的数据,将数据推送给外部源或者其他Source。当Sink写入失败后,可以自动重启,不会造成数据丢失,因此很可靠。

在实际生产环境中,Flume允许多个Agent连在一起,形成前后相连的多级跳。Flume有多种组合方式。比如多个Source收集不同格式的数据输出到同一个Sink中,或者一个Source收集的数据输出到多个Sink中去。

现在有三台机器,分别是:Hadoop1,Hadoop2,Hadoop3,以Hadoop1为日志汇总

Hadoop1汇总的同时往多个目标进行输出。

三、实验环境

Linux Ubuntu 16.04

jdk-7u75-linux-x64

hadoop-2.6.0-cdh5.4.5

flume-ng-1.5.0-cdh5.4.5

四、实验内容


1.使用nc命令产生Syslog日志,发送到6868端口。

2.创建两个Channel,Channel1和Channel2,用于暂存Syslog日志。

3.创建两个Sink,Sink1_To_HDFS是将数据传入到HDFS文件系统/myflume/syslog_mem_hdfsandlogger中,Sink2_To_Logger是将数据以logger的形式,发送到console界面上。

五、实验步骤

1.首先检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。

cd /apps/hadoop/sbin
./start-all.sh

2.切换目录到/apps/flume/conf目录下,创建Flume的配置文件。

cd /apps/flume/conf
touch syslog_mem_hdfsandlogger.conf

3.使用vim打开syslog_mem_hdfsandlogger.conf文件。

vim syslog_mem_hdfsandlogger.conf

定义各个组件

#定义各个组件
agent1.sources  = src
agent1.channels = ch1 ch2
agent1.sinks    = des1 des2

配置Flume的Source为syslogtcp,并监听6868端口。

#配置source
agent1.sources.src.type = syslogtcp
agent1.sources.src.bind = localhost
agent1.sources.src.port = 6868

配置两个Channel,都设置为memory。

#配置channel
agent1.channels.ch1.type = memory
agent1.channels.ch2.type = memory

配置hdfs sink,将数据发送到HDFS上。

#配置hdfs sink
agent1.sinks.des1.type = hdfs
agent1.sinks.des1.hdfs.path = hdfs://localhost:9000/myflume4/syslog_mem_hdfsandlogger/
agent1.sinks.des1.hdfs.useLocalTimeStamp = true
#设置flume临时文件的前缀为 . 或 _ 在hive加载时,会忽略此文件。
agent1.sinks.des1.hdfs.inUsePrefix=_
#设置flume写入文件的前缀是什么
agent1.sinks.des1.hdfs.filePrefix = q7
agent1.sinks.des1.hdfs.fileType = DataStream
agent1.sinks.des1.hdfs.writeFormat = Text
#hdfs创建多久会新建一个文件,0为不基于时间判断,单位为秒
agent1.sinks.des1.hdfs.rollInterval = 20
#hdfs写入的文件达到多大时,创建新文件 0为不基于空间大小,单位B
agent1.sinks.des1.hdfs.rollSize = 10
#hdfs有多少条消息记录时,创建文件,0为不基于条数判断
agent1.sinks.des1.hdfs.rollCount = 5
#hdfs空闲多久就新建一个文件,单位秒
agent1.sinks.des1.hdfs.idleTimeout = 20

配置logger sink。

#配置logger sink
agent1.sinks.des2.type = logger

把上面设置的组件关联起来。

##下面是把上面设置的组件关联起来(把点用线连起来)
agent1.sources.src.channels = ch1 ch2
agent1.sinks.des1.channel   = ch1
agent1.sinks.des2.channel   = ch2

4.启动Flume,执行收集工作。

切换目录到/apps/flume目录下,启动flume-ng的配置。

cd /apps/flume
flume-ng agent -c /conf -f /apps/flume/conf/syslog_mem_hdfsandlogger.conf -n agent1 -Dflume.root.logger=DEBUG,console

新打开一个窗口,执行nc命令,向6868端口发送消息。

echo "hello can you hear me?" | nc localhost 6868

5.查看执行效果

可以看到,执行flume-ng配置的界面输出效果为:

从上面可以看到sink.LoggerSink,也就是发送给logger的输出。

再来查看HDFS上的输出。

hadoop fs -ls -R /
hadoop fs -cat /myflume4/syslog_mem_hdfsandlogger/*

总结

以上就是今天要讲的内容,本文简单介绍了Flume运行的核心是Agent。它是一个完整的数据收集工具,含有三个核心组件,分别是Source、Channel、Sink。通过这些组件,Event可以从一个地方流向另一个地方。

Flume多source,多sink组合框架搭建相关推荐

  1. 三十九、Flume自定义Source、Sink

    上篇文章咱们基于Flume举了几个例子,包括它的扇入扇出等等.这篇文章我们主要来看一下怎样通过自定义Source和Sink来实现Flume的数据采集.关注专栏<破茧成蝶--大数据篇>,查看 ...

  2. 大数据——Flume组件Source、Channel和Sink具体使用

    Flume组件Source.Channel和Sink使用说明 Flume Sources Avro Source 配置范例 Thrift Source 配置范例 Exec Source 配置范例 JM ...

  3. [ETL] Flume 理论与demo(Taildir Source Hdfs Sink)

    一.Flume简介 1. Flume概述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据: ...

  4. Flume的开发之 自定义 source 自定义 sink 自定义拦截器

    一:开发相关 加入 jar 包依赖: <dependency> <groupId>org.apache.flume</groupId> <artifactId ...

  5. [转载]SSH框架搭建详细图文教程

    什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...

  6. React-Native 之 GD (一)目录结构与第三方框架使用与主题框架搭建

    1.APP效果图 2.工程环境配置 IOS: 将压缩包内的 Images.xcassets 文件夹直接替换掉我们iOS工程中的 Images.xcassets 文件夹. 这时候我们可以看到所有图片资源 ...

  7. 基于GitBook框架搭建技术文档平台

    源宝导读:为了向用户更好的传递ERP开放平台的价值与技术知识,我们基于GitBook框架搭建了一个文档中心站点,本文将介绍此站点的设计与实现过程. 一.项目架构图 因为文档会涉及到很多的产品线,所以目 ...

  8. ssm框架搭建连接mysql_从零开始搭建SSM框架(Spring + Spring MVC + Mybatis)

    最近在回顾和总结一些技术,想到了把之前比较火的 SSM 框架重新搭建出来,作为一个小结,同时也希望本文章写出来能对大家有一些帮助和启发,因本人水平有限,难免可能会有一些不对之处,欢迎各位大神拍砖指教, ...

  9. hexo评论_【前端简历加分】hexo框架搭建个人博客站点,手把手教学

    最近,粉丝们在金九银十期间也是不断的面试,有比较多的毕业生说我在这个期间出多一些面试题,上几期都是倾向于面试文章,这期出一次简历加分项操作,使用hexo框架搭建个人博客. 作为应届毕业生或者1-3年工 ...

最新文章

  1. dubbo内置哪几种服务容器_dubbo启动服务之容器(Container)
  2. c语言文本按行分配数组元素,【转】C语言中动态分配数组
  3. 区块链加密算法小探(一)
  4. linux nginx jsp,将nginx注册成linux的服务(service)
  5. java short s=s 1_Java 面试题 short s = 1; s = s + 1; 与 s += 1; 背后的秘密
  6. python打开文件夹中的tiff_浅谈python下tiff图像的读取和保存方法
  7. pandas将某列复制到另一个表_使用pandas将列从一个数据帧复制到另一个数据帧的最快方法?...
  8. idea 使用神坑之索引篇(自定义不创建索引文件夹)
  9. ASP.NET生成Excel并下载
  10. word 如何快速比较两个文档的区别
  11. 初识emqx消息服务器
  12. 【机器视觉】机器人及视觉检测系统在螺丝检测包装生产线上的应用
  13. 微信Web工具可以打开网页,用微信客户端就打不开了
  14. 用户画像(一):我对用户画像的理解
  15. 阿里百川淘宝联盟私域会员对接
  16. 工业窑炉烟气SCR脱硝改造
  17. java url地址不变_页面跳转后,浏览器地址栏地址保持不变
  18. 公司发的电脑无法登录OneNote账户
  19. IoT黑板报0210:Google 发布 Android Things 开发者第二预览版
  20. android软件开发是什么?

热门文章

  1. 2020百度之星程序设计大赛(初赛一)Dec
  2. 如何开启php socket,PHP socket的配置及实例
  3. 女神节,解密阿里女程序员们的代码诗!
  4. 某次元app分析案例【附代码】
  5. Xorg设置显示器最佳分辨率的方法
  6. css 为什么会有缝隙,调整浏览器的显示比例不同,缝隙的位置也不一样,有的比例又没有缝隙,但按照我的宽高计算应该没有缝隙啊
  7. android 打印机服务,Android系统打印服务插件printservice开发
  8. 程序员用C++代码实现高清播放器,支持DVD视频,附源码
  9. Windows驱动通过inf文件生成cat文件步骤
  10. 基于Quartues ii和Modelsim的FIR滤波器仿真