flume入门笔记

标签(空格分隔): hadoop


学习三问

flume是什么?
flume干什么?
flume怎么用?

flume官网地址

flume是什么

Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.
是一个分布式日志汇总,收集器。(对于可靠性的话后续再研究下)。
架构图如下:
flume入门笔记

flume用来干什么

从是什么可以看出来,人家就是拿来收集日志汇总,我们可以对汇众完的日志做统一的分析,挖掘。

flume怎么用(安装使用)

下载一个 apache-flume…tar.gz 包 解压。(依赖java环境)
然后在conf中配置一下你要的配置。一下是一个简单的案例。
netcat.conf

# 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

启动命令:bin/flume-ng agent -c ./conf -f ./conf/netcat.conf -n a1 -Dflume.root.logger=INFO,console
启动命令这里注意一下,-n(name)必须与配置文件中的代理名字对应 比如这里就是a1上面配置文件要一致。

flume中有什么(角色就是flume运行机制)

source:来源
sniks:下沉目的地
channel:管道
我们需要从来源获取到需要的日志数据,之后可以通过管道连接到sinks,sinks下沉目的地,但是人家有可能是另一个agent的source,所以flume架构你要向做复杂点完全是可以的。
找个例子:比如有3台web服务器,我们分别搞3个flume收集这三台服务器,之后通过avro的source统一收集,再定义hdfs作为sinks。也就是说通过web集群手机日志,下沉到hdfs上。如下图所示:
flume入门笔记

上一篇:非kerberos环境下,flume采集日志到kafka


下一篇:云计算(六)——flume采集日志信息