欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-14 12:23:20
...

目录

Flume是什么

Flume基本架构

Event

Agent

Source

Channel

Sink

Flume的安装

测试环境


Flume是什么

Flume是Cloudera公司发布的开源的日志收集工具
分布式、可靠和高可用的海量日志采集、聚合和传输的日志收集系统
系统灵活性高:数据源可定制、可扩展;数据存储系统可定制、可扩展
中间件:屏蔽了数据源和数据存储系统的异构性

Flume基本架构

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

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

 

Event

Event是Flume数据传输的基本单元,Flume以Event的形式将数据从数据源传送到最终的目的地。
Event由可选的header和载有数据的byte array构成,Header是容纳了kv字符串对的无序集合,key在集合里唯一。
 

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

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
Flume学习笔记:Flume的安装与基础应用

 需求:监控文件夹/flumeagent,将新增加的文件进行采集并打印在console上
写配置文件
Flume学习笔记:Flume的安装与基础应用

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

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

会有相关提示
Flume学习笔记:Flume的安装与基础应用 然后往文件夹里添加文件
Flume学习笔记:Flume的安装与基础应用
Flume里也会采集到对应的文件
Flume学习笔记:Flume的安装与基础应用

进入文件夹可以看到文件被打上了Completed的标签,下次就不会重复采集了
Flume学习笔记:Flume的安装与基础应用

 

相关标签: Flume