Flume多source,多sink组合框架搭建
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组合框架搭建相关推荐
- 三十九、Flume自定义Source、Sink
上篇文章咱们基于Flume举了几个例子,包括它的扇入扇出等等.这篇文章我们主要来看一下怎样通过自定义Source和Sink来实现Flume的数据采集.关注专栏<破茧成蝶--大数据篇>,查看 ...
- 大数据——Flume组件Source、Channel和Sink具体使用
Flume组件Source.Channel和Sink使用说明 Flume Sources Avro Source 配置范例 Thrift Source 配置范例 Exec Source 配置范例 JM ...
- [ETL] Flume 理论与demo(Taildir Source Hdfs Sink)
一.Flume简介 1. Flume概述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据: ...
- Flume的开发之 自定义 source 自定义 sink 自定义拦截器
一:开发相关 加入 jar 包依赖: <dependency> <groupId>org.apache.flume</groupId> <artifactId ...
- [转载]SSH框架搭建详细图文教程
什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...
- React-Native 之 GD (一)目录结构与第三方框架使用与主题框架搭建
1.APP效果图 2.工程环境配置 IOS: 将压缩包内的 Images.xcassets 文件夹直接替换掉我们iOS工程中的 Images.xcassets 文件夹. 这时候我们可以看到所有图片资源 ...
- 基于GitBook框架搭建技术文档平台
源宝导读:为了向用户更好的传递ERP开放平台的价值与技术知识,我们基于GitBook框架搭建了一个文档中心站点,本文将介绍此站点的设计与实现过程. 一.项目架构图 因为文档会涉及到很多的产品线,所以目 ...
- ssm框架搭建连接mysql_从零开始搭建SSM框架(Spring + Spring MVC + Mybatis)
最近在回顾和总结一些技术,想到了把之前比较火的 SSM 框架重新搭建出来,作为一个小结,同时也希望本文章写出来能对大家有一些帮助和启发,因本人水平有限,难免可能会有一些不对之处,欢迎各位大神拍砖指教, ...
- hexo评论_【前端简历加分】hexo框架搭建个人博客站点,手把手教学
最近,粉丝们在金九银十期间也是不断的面试,有比较多的毕业生说我在这个期间出多一些面试题,上几期都是倾向于面试文章,这期出一次简历加分项操作,使用hexo框架搭建个人博客. 作为应届毕业生或者1-3年工 ...
最新文章
- dubbo内置哪几种服务容器_dubbo启动服务之容器(Container)
- c语言文本按行分配数组元素,【转】C语言中动态分配数组
- 区块链加密算法小探(一)
- linux nginx jsp,将nginx注册成linux的服务(service)
- java short s=s 1_Java 面试题 short s = 1; s = s + 1; 与 s += 1; 背后的秘密
- python打开文件夹中的tiff_浅谈python下tiff图像的读取和保存方法
- pandas将某列复制到另一个表_使用pandas将列从一个数据帧复制到另一个数据帧的最快方法?...
- idea 使用神坑之索引篇(自定义不创建索引文件夹)
- ASP.NET生成Excel并下载
- word 如何快速比较两个文档的区别
- 初识emqx消息服务器
- 【机器视觉】机器人及视觉检测系统在螺丝检测包装生产线上的应用
- 微信Web工具可以打开网页,用微信客户端就打不开了
- 用户画像(一):我对用户画像的理解
- 阿里百川淘宝联盟私域会员对接
- 工业窑炉烟气SCR脱硝改造
- java url地址不变_页面跳转后,浏览器地址栏地址保持不变
- 公司发的电脑无法登录OneNote账户
- IoT黑板报0210:Google 发布 Android Things 开发者第二预览版
- android软件开发是什么?
热门文章
- 2020百度之星程序设计大赛(初赛一)Dec
- 如何开启php socket,PHP socket的配置及实例
- 女神节,解密阿里女程序员们的代码诗!
- 某次元app分析案例【附代码】
- Xorg设置显示器最佳分辨率的方法
- css 为什么会有缝隙,调整浏览器的显示比例不同,缝隙的位置也不一样,有的比例又没有缝隙,但按照我的宽高计算应该没有缝隙啊
- android 打印机服务,Android系统打印服务插件printservice开发
- 程序员用C++代码实现高清播放器,支持DVD视频,附源码
- Windows驱动通过inf文件生成cat文件步骤
- 基于Quartues ii和Modelsim的FIR滤波器仿真