flume学习(一)——安装和一个简单的netcat程序

flume学习(一)——安装和一个简单的netcat程序

本文主要参考:
http://flume.apache.org/FlumeUserGuide.html#configuring-individual-components

首先介绍一下flume的主要作用
flume学习(一)——安装和一个简单的netcat程序_第1张图片
apache flume 是一个分布式,可靠的,可用的系统,主要用于高效的数据收集,从不同源中移动大量日志数据到中央存储仓库中。

apache flume不是严格的只能收集日志数据。但是数据源是自定义的,flume能够用于传递大量的事件数据,包括但不限于网络传输的数据,社交媒体产生的数据,email信息和更多可能的数据源。

总结说来,flume(斜槽)的作用就是把数据高效稳定的传输到中央存储仓库中(例如:hdfs)。
flume的组成
flume学习(一)——安装和一个简单的netcat程序_第2张图片
flume的事件由两部分组成,分别是含有byte的数据流——payload和可选的(可以有也可以没有的)字符串属性集合组成。flume代理是一个jvm进程。它通过决定事件从外部的源到哪一个目的地来管理组件(它来管理数据的流向,从哪里到哪里)。
flume的agent由三部分组成:source、channel、sink
需要介绍的概念是 fan-in fan-out
fan-in和fan-out可以理解为散入和散出。都是针对source和channel来说的。其中fan-in(散入)是指从多个source进入一个channel中,fan-out(散出)是指从一个source进入多个channel中。
下面下载并安装flume
1、到官网上下载最新的flume。
2、tar开到执行的目录 tar -zxvf flume-x.x.x.x
3、添加环境变量,修改/etc/profile 中的内容,添加/home/flume/bin到path中


4、复制flume-env.sh.template 和flume-conf.properties.template文件
cp flume-env.sh.template flume-env.sh
cp flume-conf.properties.template flume-conf.properties
这样flume的安装就可以了,现在尝试运行一个netcat的例子
5、修改flume-conf.properties文件
# 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
6、启动名字为a1的agent。
flume-ng agent -n a1 -c conf -f /home/flume/conf/flume-conf.properties -Dflume.root.logger=INFO,console

flume学习(一)——安装和一个简单的netcat程序_第3张图片

7、测试能否正常监听:
nc localhost 444444
然后输入内容,查看flume中a1的情况。
flume学习(一)——安装和一个简单的netcat程序_第4张图片

现在,基本的flume代理就已经能够正常的运行了。

你可能感兴趣的:(nc,flume,linux)