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. Kafka剖析(一):Kafka背景及架构介绍
  2. java perm 查看_高级 Java 必须掌握:JVM 分析工具和查看命令,超详细
  3. iPhone 15有望配备潜望式摄像头 供应商已宣布投资建厂
  4. 下拉刷新和UITableView的section headerView冲突的原因分析与解决方案
  5. ffmpeg处理RTMP流媒体的命令大全
  6. html清除两端浮动,HTML中如何实现浮动与清除浮动
  7. 宝塔控制面板配置Nginx 安全证书
  8. 《Effective C#》读书笔记——条目25:用事件模式实现通知使用C#表达设计
  9. 2020-09-10
  10. 下载Cisco Packet Tracer 模拟器 含汉化教程
  11. Conky--linux自定义桌面监控
  12. 三通道HART / Modbus网关HTM-631
  13. 【生信技能树】GEO数据库挖掘 P5
  14. VS2015基于对话框的MFC倒计时器
  15. 利用腾讯云函数做蓝奏云解析API
  16. 访问者模式Visitor
  17. 匿名函数 和 拉姆达表达式
  18. nrm install 安装与使用
  19. 计算机取证(Windows)FTK+X-Way取证复制
  20. 计算机系统在英语中的运用,在应用系统中探究计算机屏幕英语句法规律.doc

热门文章

  1. 缓存使用问题: 穿透 雪崩 击穿
  2. 去大厂前端面试流程,从笔试到CTO再到HR
  3. 使用Qt编写CUDA程序
  4. CSDN设置插入代码的背景色为黑色 csdn更改背景色、主题
  5. css设置表单背景颜色为透明色
  6. 那些独立游戏中的境界(1):以水彩之名
  7. JAVA中OOA、OOD、OOP概念
  8. 教你如何从Spring官网上查找SpringIOC框架中的beans的配置头文件
  9. Boost库学习笔记(一)安装与配置
  10. Mybatis-Plus一个字段匹配两个字段值