Flume学习笔记:Flume的安装与基础应用

  • Post author:
  • Post category:其他



目录


Flume是什么


Flume基本架构


Event


Agent


Source


Channel


Sink


Flume的安装


测试环境


Flume是什么

Flume是Cloudera公司发布的开源的日志收集工具

分布式、可靠和高可用的海量日志采集、聚合和传输的日志收集系统

系统灵活性高:数据源可定制、可扩展;数据存储系统可定制、可扩展

中间件:屏蔽了数据源和数据存储系统的异构性

Flume基本架构

Event

Event是Flume数据传输的基本单元,Flume以Event的形式将数据从数据源传送到最终的目的地。

Event由可选的header和载有数据的byte array构成,Header是容纳了kv字符串对的无序集合,key在集合里唯一。

Agent

一个Agent包括了Source、Channel和Sink,Agent是Flume流的基础部分。

Flume为这些组件提供了配置、生命周期管理、监控支持。

Agent必须部署在采集的机器上。

Source

Source负责接收Event或通过特殊机制产生Event,并将Event批量的放到一个或多个Channel

包含Event驱动(即数据源将数据推到Source)和轮询(Source向数据源读数据)两种类型

Source必须至少和一个Channel关联

Source的不同类型:

与系统集成的Source:Syslog,Netcat,监测目录池

自动生成Event的Source:Exec

用于Agent和Agent之间通信的IPC Source:Avro、Thrift

Channel

Channel位于Source和Sink之间,用于缓存从Source传进来的Event

Channel成功缓存Event后,会将Event发送到Sink

不同的Channel所提供的持久化水平是不同的

Memory Channel:volatile(不稳定的)

File Channel:基于WAL实现

JDBC Channel:基于嵌入式Database实现

Channel可以和任意数量的Source、Sink工作

Sink

Sink负责将Event传输到下一个Source或者最终目的地,成功后该Event将从Channel中移除

不同类型的silk

存储event到最终目的地终端sink,比如 HDFS,HBase

自动消耗的sink 比如 null sink

用于agent间通信的IPC:sink:Avro

必须作用于一个确切的channel

Interceptor:作用于Source,用于拦截、修改或者放弃Event。

Channel Selector:允许Source基于预设的标准,从所有Channel中,选择一个或者多个Channel

Sink Processor:多个Sink可以构成一个Sink Group,Sink Processor可以通过组中所有Sink实现负载均衡;也可以在一个Sink失败的时候转移到另一个

Flume的安装


https://www.cnblogs.com/haozhengfei/p/2192231596ceb2ac4c22294dbd25a1ca.html


这篇文章里讲述了五种情况下Flume的安装,在学习的过程中测试环境里只安装单个Flume。

测试环境

hive-1.1.0-cdh5.14.0

hbase-1.2.0-cdh5.14.0

hadoop-2.6.0-cdh5.14.0

zookeeper-3.4.5-cdh5.14.0

jdk1.8.0_171

apache-flume-1.6.0-cdh5.14.0-bin

解压tar包后,将flume-env.sh-template改名为flume-env.sh,并更改JAVA_HOME

需求:监控文件夹/flumeagent,将新增加的文件进行采集并打印在console上

写配置文件

指定agent的名字为a1,然后指定对应source、channel、sink的名字,再对他们进行配置

执行命令

flume-ng agent --conf $FLUME_HOME/conf/ --conf-file /agent.conf --name a1 -Dflume.root.logger=INFO,console

会有相关提示


然后往文件夹里添加文件



Flume里也会采集到对应的文件

进入文件夹可以看到文件被打上了Completed的标签,下次就不会重复采集了



版权声明:本文为lrxcmwy2原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。