贵州做网站公司
贵州做网站公司~专业!靠谱!
10年网站模板开发经验,熟悉国内外开源网站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等网站程序,可为您提供网站建设,网站克隆,仿站,网页设计,网站制作,网站推广优化等服务。我们专注高端营销型网站,企业官网,集团官网,自适应网站,手机网站,网络营销,网站优化,网站服务器环境搭建以及托管运维等。为客户提供一站式网站解决方案!!!

flume(Flume是什么)

来源:网络转载 时间:2024-05-02 11:01:51

  Flume是Cloudera提供的一个高可用的、高可靠的开源分布式海量日志收集系统,日志数据可以经过Flume流向需要存储终端目的地。这里的日志是一个统称,泛指文件、操作记录等许多数据。

一、Flume基础知识

1、数据流模型

  Flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。

  Flume传输的数据的基本单位是Event,如果是文本文件,通常是一行记录,这也是事务的基本单位。Event从Source,流向Channel,再到Sink,本身为一个byte数组,并可携带headers信息。Event代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去。

2、核心组件

  Flume运行的核心是Agent。它是一个完整的数据收集工具,含有三个核心组件,分别是source、channel、sink。通过这些组件,Event可以从一个地方流向另一个地方,如图1-1所示,也可以多级agent任一链接组合,如图1-2所示。

图1-1 flume数据流模型

图1-2 多级agent连接模型

  1)Source:专用于收集日志,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义等。

   ▶exec source:以运行 Linux 命令的方式,持续的输出最新的数据,如 tail -F 文件名 指令,在这种方式下,取的文件名必须是指定的。 ExecSource 可以实现对日志的实时收集,但是存在Flume不运行或者指令执行出错时,将无法收集到日志数据,无法保证日志数据的完整性;

   ▶Spool Source:监测配置的目录下新增的文件,并将文件中的数据读取出来。需要注意两点:拷贝到 spool 目录下的文件不可以再打开编辑;spool 目录下不可包含相应的子目录;

  2)Channel:专用于临时存储数据,可以存放在memory、jdbc、file、自定义等。其存储的数据只有在sink发送成功之后才会被删除。

   ▶Memory Channel:可以实现高速的吞吐,但是无法保证数据的完整性。Memory Channel 是一个不稳定的隧道,其原因是由于它在内存中存储所有事件。如果 java 进程死掉,任何存储在内存的事件将会丢失。另外,内存的空间也受到RAM大小的限制,与File Channel有差别;

   ▶File Channel:保证数据的完整性与一致性。在具体配置FileChannel时,建议FileChannel设置的目录和程序日志文件保存的目录设成不同的磁盘,以便提高效率。File Channel是一个持久化的隧道(channel),它持久化所有的事件,并将其存储到磁盘中。因此,即使 Java 虚拟机当掉,或者操作系统崩溃或重启,再或者事件没有在管道中成功地传递到下一个代理(agent),这一切都不会造成数据丢失。

  3)Sink:专用于把数据发送到目的地件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定义等。

3、可靠性

  Flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。

  Flume使用事务性的方式保证传送Event整个过程的可靠性。Sink必须在Event被存入Channel 后,或者已经被传达到下一站agent里,又或者,已经被存入外部数据目的地之后,才能把Event从Channel中remove掉。这样数据流里的event无论是在一个agent里还是多个agent之间流转,都能保证可靠,因为以上的事务保证了event会被成功存储起来。而Channel的多种实现在可恢复性上有不同的保证。也保证了event不同程度的可靠性。比如Flume支持在本地保存一份文件channel作为备份,而memory channel将event存在内存queue里,速度快,但丢失的话无法恢复。

二、Flume安装与使用

1、安装

  官网(http://flume.apache.org/download.html)下载flume版本(本实验:apache-flume-1.5.2-bin.tar.gz),解压到/usr/local目录下,进入flume-xx/conf目录中,执行命令:mv flume-env.sh.properties flume-env.sh,然后配置flume-env.sh中的JAVA_HOME路径。

2、一个示例

  本示例Source来自Spooling Directory,Sink流向HDFS。监控/root/logs文件目录下的文件,一旦有新文件,就立刻将文件内容通过agent流向HDFS的hdfs://cluster1/flume/%Y%m%d文件中(此处如果找不到cluster1,需要将hadoop的配置文件core-site.xml和hdfs-site.xml拷贝至flume的conf目录中)。

  flume目录下新建test目录,新建文件example,内容如下:

#定义agent名,source、channel、sink的名称agent1.sources=source1agent1.channels=channel1agent1.sinks=sink1#具体定义sourceagent1.sources.source1.type=spooldiragent1.sources.source1.spoolDir=/home/logsagent1.sources.source1.fileHeader=false#定义拦截器,为消息添加时间戳agent1.sources.source1.interceptors=i1agent1.sources.source1.interceptors.i1.type=org.apache.flume.interceptor.TimestampInterceptor$Builder#具体定义channel#也可以将channel数据放在内存(但是内存容易丢失)中,如#agent1.channels.c1.type=memory#agent1.channels.c1.capacity=10000#agent1.channels.c1.transactionCapacity=100#此处配置为文件中agent1.channels.channel1.type=file#备份路径agent1.channels.channel1.checkpointDir=/root/flume_bak#数据保存路径agent1.channels.channel1.dataDirs=/root/flume_tmp#具体定义sinkagent1.sinks.sink1.type=hdfsagent1.sinks.sink1.hdfs.path=hdfs://cluster1/flume/%Y%m%dagent1.sinks.sink1.hdfs.fileType=DataStream#存储到HDFS文件名的前缀,格式为20140116-文件名..agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d#不按照条数生成文件agent1.sinks.sink1.hdfs.rollCount=0#HDFS上的文件达到128M时生成一个文件agent1.sinks.sink1.hdfs.rollSize=134217728#HDFS上的文件每60秒去检测agent1.sinks.sink1.hdfs.rollInterval=60#组装source、channel、sinkagent1.sources.source1.channels=channel1agent1.sinks.sink1.channel=channel1

  运行该示例,进入/usr/local/flume目录,执行命令:bin/flume-ng agent -n agent1 -c conf -f test/example -Dflume.root.logger=DEBUG,console

  其中-n指定agent名称,-c指定配置文件目录,-f指定配置文件,-Dflume.root.logger=DEBUG,console设置日志等级为输出到控制台。

感谢你能够认真阅读完这篇文章,希望小编分享的“Flume是什么”这篇文章对大家有帮助,同时也希望大家多多支持本站,关注本站行业资讯频道,更多相关知识等着你来学习!

标签:flume-

抖音(Tiktok)是由北京字节跳动科技有限公司(ByteDance)孵化的音乐创意短视频社交网站。它于2016年9月20日上线,主要面向全年龄段的用户,尤其是...

飞极速为您提供高清在线电影、电视剧大全、动画片,综艺等,飞极速在线更新及时,播放速度快,给您带来最好的观影体验!飞极速在线,免费提供日本新番动漫、最新电影和最新...

《南华早报》(英语:South China Morning Post, SCMP)和星期日出版的《星期日南华早报》(英语:Sunday Morning Post...

利率是指一定时期内利息额与借贷资金额(本金)的比率。利率是决定企业资金成本高低的主要因素,同时也是企业筹资、投资的决定性因素,对金融环境的研究必须注意利率现状及其变动趋势。那么有效年利率怎么理解?实际利率和有效利率一样吗?有效年利率(Effective Annual Percentage Rate)指在按照给定的计息期利率和每年复利次数计算利息时,能够产生相同结果的每年复利一次的年利率。在按照给定...

金融危机的根源是什么?一、泡沫经济的形成。泡沫经济逐渐膨胀到一定程度时就会破裂,资金链断裂相继引起一系列的连锁反应,而种种连锁反应对金融领域、实体经济、企业和民众造成一系列的恶性影响。据调查分析,1994-2001 年的 7 年间,美国房价不过上升了 53.1%的比例,而 2001-2007年间,美国的房价却上升了 63.4%的比例,信用的极度扩张后,最后带来的一定是极度的收缩,特别是房地产行业,...

(相关资料图)生活中,很多人都不知道核酸分子杂交主要步骤_核酸分子杂交主要步骤有,其实非常简单,下面就是小编搜索到的核酸分子杂交主要步骤_核酸分子杂交主要步骤有相关的一些知识,我们一起来学习下吧!1、核酸分子杂交的主要步骤是什么?相信还是有很多朋友感兴趣的。让我们一起来看看吧。2、探针的制备:那么我们的探针就是根据碱基配对的原理,可以与待测核酸分子结合的核酸片段。3、接下来是杂交:预杂交是必要的,...

TOP