Data Collection with Apache Flume(一)

首先介绍一下Flume是个神马东东。Flume可以实现从多种数据源获取数据,然后传递到不同的目标路径。通常是利用Flume传送logs到不同的地方,例如从web server收集logs文件然后传送到hadoop cluster进行分析之类的。Flume配置灵活简单,可以实现不同情况的日志传送,确实是一款不错的工具。

OK,接下来先看看怎么安装配置Flume。大家可以从http://flume.apache.org获取Flume的最新二进制版本。下载好后,解压,然后将flume的bin目录加到PATH中(这里默认系统已经安装好了java,并且已经将java的bin目录添加到PATH中)。最后进入flume目录中找到conf目录,将里面的flume-env.sh.template复制成flume-env.sh,然后往里面添加JAVA_HOME即可。至此就安装好了。

下面先解释一下Flume里面的几个重要角色,然后我们配置几个agent玩玩。

Flume里面有四个重要的角色,分别是source,channel,sink,event。Source负责收集数据并创建一个event,然后将event传递到指定的channel,接着event通过channel到达sink,sink负责将event的输出传递到指定的目标位置。简而言之,就是source→channel→sink→destination,其中传送的是event。

OK,先来看看一个简单agent。这个agent我们用来接收网络数据并写到flume的日志中。配置代码如下:

agent1.sources = netsource//指定source类型为netsource
agent1.sinks = logsink//指定sink类型为logsink
agent1.channels = memorychannel//指定channel类型为memorychannel,就是将数据读到内存中,然后传送

agent1.sources.netsource.type = netcat //netsource类型为netcat
agent1.sources.netsource.bind = localhost//绑定本机
agent1.sources.netsource.port = 3000//监听端口为本机的3000
agent1.sinks.logsink.type = logger//logsink的类型为logger

agent1.channels.memorychannel.type = memory //指定类型是memory
agent1.channels.memorychannel.capacity = 1000//指定数据缓存大小
agent1.channels.memorychannel.transactionCapacity = 100

agent1.sources.netsource.channels = memorychannel//指定source传送的channel
agent1.sinks.logsink.channel = memorychannel//指定sink的接收channel

将上面代码命名为agent1.conf并保持在flume的工作目录即可(我比较懒,没有新建,就直接使用下载后解压的flume目录了)。

接下来启动这个agent!在终端中输入:flume-ng agent --conf conf --conf-file agent1.conf --name agent1 (--conf 指定conf目录,--conf-file指定配置文件名,--name指定agent名字)。

然后打开另一个终端窗口,使用curl工具从本地的3000端口输入一些数据,在到flume的日志文件中查看。即可看到数据已经已日志的格式保存到日志文件中。

到这里,我们已经完成了一个简单的抓取数据的过程。可是我们发现要进入目录读取比较麻烦,那我们干脆将数据写出到console吧。

只需要在启动命令后面加上参数-Dflume.root.logger=INFO,console即可。

好了,我们来看看结果。可以看到,我们每次输入,内容都会在另一个终端同步显示。

OK,这次就到这里。下一次再实现其他的agent!!谢谢大家的阅读。本人水平有限,如有纰漏,请不吝指正!不胜感激!

时间: 2024-10-10 15:10:40

Data Collection with Apache Flume(一)的相关文章

Data Collection with Apache Flume(二)

今天继续讨论几个agent的配置. 第一个agent是从终端捕获特定命令执行的输出结果,并将文件输出到特定目录.先看一下配置的代码: agent2.sources = execsource //指定为从命令获取输出的source agent2.sinks = filesink //输出到文件的sink agent2.channels = filechannel //输出到文件的channel agent2.sources.execsource.type = exec //类型 agent2.so

Data Collection with Apache Flume(三)

最后提及两个agent.首先第一个是使用一个avro souce和一个avro sink向另一个agent传递event,然后再写入特定目录. 先看看配置代码. agent6.sources = avrosource //定义avrosource,可以使用avro client在网络上向其传送数据 agent6.sinks = avrosink agent6.channels = memorychannel agent6.sources.avrosource.type = avro agent6

Apache Flume 安装文档、日志收集

简介: 官网 http://flume.apache.org 文档 https://flume.apache.org/FlumeUserGuide.html hadoop 生态系统中,flume 的职责是收集数据,一般用作收集各种日志数据. Source -> Channel -> Sink 这是一个基本的工作流程. Source 定义了数据从哪里来,Channel 是一个数据暂存的位置 ( disk / mem ),Sink 定义将数据流向哪里! 一.flume 安装 shell >

Flafka: Apache Flume Meets Apache Kafka for Event Processing

The new integration between Flume and Kafka offers sub-second-latency event processing without the need for dedicated infrastructure. In this previous post you learned some Apache Kafka basics and explored a scenario for using Kafka in an online appl

org.apache.flume.conf.ConfigurationException: Channel c1 not in active set.

1 错误详细信息 WARN conf.FlumeConfiguration: Could not configure sink k1 due to: Channel c1 not in active set. org.apache.flume.conf.ConfigurationException: Channel c1 not in active set. at org.apache.flume.conf.FlumeConfiguration$AgentConfiguration.valida

sharepoint 2013 开启 Usage and Health Data Collection

Usage and Health Data Collection Monitoring the status of your farm's health is a critical aspect of SharePoint administration. This service application collects the various logging information stored in SharePoint and writes it to the logging databa

那些年踏过的Apache Flume之路

Flume作为日志采集系统,有着独特的应用和优势,那么Flume在实际的应用和实践中到底是怎样的呢?让我们一起踏上Flume之路. 1.  什么是Apache Flume (1)Apache Flume简单来讲是高性能.分布式的日志采集系统,和sqoop同属于数据采集系统组件,但是sqoop用来采集关系型数据库数据,而Flume用来采集流动型数据. (2)Flume名字来源于原始的近乎实时的日志数据采集工具,现在被广泛用于任何流事件数据的采集,它支持从很多数据源聚合数据到HDFS. (3)Flu

使用Apache Flume抓取数据(1)

使用Apache Flume抓取数据,怎么来抓取呢?不过,在了解这个问题之前,我们必须明确ApacheFlume是什么? 一.什么是Apache Flume Apache Flume是用于数据采集的高性能系统 ,名字来源于原始的近乎实时的日志数据采集工具,现在广泛用于任何流事件数据的采集,支持从很多数据源聚合数据到HDFS. 最初由Cloudera开发 ,在2011年贡献给了Apache基金会 ,在2012年变成了Apache的顶级项目,Flume OG升级换代成了Flume NG. Flume

Apache Flume 1.6.0 发布,日志服务器

Apache Flume 1.6.0 发布,此版本现已提供下载: http://flume.apache.org/download.html 更新日志和文档: http://flume.apache.org/releases/1.6.0.html Flume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务. 相关链接 Apache Flume 的详细介绍:请点这里 Apache Flume 的下载地址:请点这里