Flume理论理解和命令(面试必问)

来源:互联网 发布:淘宝拍图用什么相机 编辑:程序博客网 时间:2024/05/16 05:05

Flume介绍:

Flume是Appache提供的高可用,可靠的分布式的海量日志采集,传输系统
功能:可以上传到HDFS中来,或者其他的
两个版本:
og:属于Flume0.9版本之前
ng:属于Flume1.0版本之前

og与ng的区别:

og是单线程  主从结构,原本由zookeeper管理
ng是双线程    已经取消master管理机制和zookeeper管理机制,变成了纯粹的传输工具

Flume 主要是由agent组成的,
一个agent包含组件有:source(接收采集传递过来的数据),channel(),sink  
图示:单agent结构

多agent链式结构:




常用的Source:
Avro Source可以以流的方式传递数据
Kafka Source
Netcat Source
配置格式:


Channel:
是内存,source将数据放到channel,sink从channel拿数据
Flume常用channel有:
Memory Channel
JDBC Channel
Kafka Channel
File Channel
Sink下沉:
主要是定义数据写出的方式,一般情况sink从channel中获取数据,写入到file、hdfs或者网路中

案例:一个读,一个写
配置文件解析
bind:表指定的ip  一般写0.0.0.0或者localhost  
port:端口号
capacity:1000  表示字节大小
transactionCapacity=100  指定事务的大小
sink=logger  表示日志,:控制台
 
首先根~目录创建个conf 文件夹

cd conf,把test.conf文件拖进去文件夹
test.conf 文件配置如下:

a1.sources=r1
a1.channels=c1
a1.sinks=k1


a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=4444
a1.sources.r1.channels=c1


a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100


a1.sinks.k1.type=logger
a1.sinks.k1.channel=c1
---------------------------------------------------------------------------------------------------------------

conf是指定配置文件,在哪个文件夹
--conf-file:指定你具体的配置文件
--name 表示指定的agent名字


前提已经配置好环境变量
启动flume命令打印在控制台:
flume-ng agent --conf ./conf/ --conf-file ./conf/test.conf --name a1 -Dflume.root.logger=INFO,console? 



点击enter
出现Source starting
root权限 安装远程登录:yum install telnet
具体过程:
建立好连接后,输入 beicai,回车后,消息——》flume(flumeSource收到消息)————》channel(传递event)————》sink——》console(控制台)
event:一个消息,就是一个事件,包含header和body
后面表示二进制数字

 

刚开始写的,不太会传图片,传的图片都不能显示,原来需要上传才可以






0 0