设为首页 收藏本站
查看: 1259|回复: 0

[经验分享] 《Flume 1.6.0 User Guide》基础入门

[复制链接]

尚未签到

发表于 2015-11-27 17:55:31 | 显示全部楼层 |阅读模式
一、简介

Apache Flume是一个用于“从不同数据源节点(source)收集数据,保存到单一目的节点(sink)”的分布式框架。



二、体系结构

2.1、简单数据流

在一个简单数据流中包含3个部分:source节点,channel通道,sink节点。这样的一个简单的数据流被称为hop。

source节点从外部数据源(比如Web Server)获取数据,然后将其存入channel通道中;sink节点从channel通道中读取删除数据,然后将其存入外部存储区(比如HDFS)中。

其中,source节点往channel通道存入数据和sink节点从channel通道读取删除数据是异步进行的。

Flume Agent是一个Java进程,它提供source节点,channel通道,sink节点运行所需要的资源,即source节点,channel通道,sink节点所对应的Java片段在该进程中运行。

在有些语境中,hop和Flume Agent是等价的。

图示如下:
DSC0000.jpg


  2.2、复杂数据流

2.2.1、多hop

多个hop相连接,前一个hop的sink节点与下一个hop的source节点相连

2.2.2、数据分发

source节点的数据被分成多个部分,分别被分发给不同的channel通道

2.3、可靠传输

在Apache Flume中,采用事务机制,数据的传输是可靠的



三、运行

3.1、配置文件

要使得Apache Flume运行,首先得得到一个本地的配置文件。其中包括1个或多个hop(Flume Agent)的参数配置,其中还包括hop中source节点,channel通道,sink节点的参数配置以及它们之间的连接关系。

一个配置文件例子如下:

# example.conf: A single-node Flume configuration

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# 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

  其中定义了一个Flume Agent实例(名称为a1),a1中有source节点实例(r1),channel通道实例(c1)和sink节点实例(k1)。r1节点从netcat命令获取数据,r1节点与c1通道绑定;k1节点与c1通道绑定,k1节点将数据传递给日志处理框架。

3.2、开始运行
  执行“bin/flume-ng agent -n a1 -f config.properties -Dflume.root.logger=INFO,console”命令,开始运行"a1"这个Flume Agent。
  其中"-n"选项的值表示Flume Agent的实例名称,"-f"选项的值表示配置文件的路径。

此时本机44444端口上的数据会通过该Agent被传递给日志处理框架,由于“-Dflume.root.logger=INFO,console”的设置,日志处理框架直接在控制台打印数据。

我们可通过telnet命令在44444端口上产生数据。

具体步骤如下:

1)执行“telnet localhost 44444”,即通过44444端口远程登录本机

2)输入消息,该消息被传递给本机的44444端口
  3)Flume Agent从44444端口上获取数据,将其传递给日志处理框架,这里是直接在控制台中打印
  


  参考文献:
  [1]https://flume.apache.org/releases/content/1.6.0/FlumeUserGuide.pdf

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-144298-1-1.html 上篇帖子: 日志系统之扩展Flume-LineDeserializer 下篇帖子: Flume-ng-1.3.0 spooling source的方式增加了对目录的递归检测的支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表