Advertisement

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

阅读量:

目录

Flume是什么

Flume基本架构

Event

Agent

Source

Channel

Sink

Flume的安装

测试环境


Flume是什么

该开源日志收集工具由Cloudera公司发布,并以其强大的功能著称。该系统的日志采集、聚合与传输具备分布式架构特征,并且具有高度的可靠性与可用性。系统的灵活性体现在其对数据源及数据存储系统的支持上,均具备高度的定制化与扩展能力。作为中间件角色,该系统成功屏蔽了前后端不同架构组件之间的不兼容性。

Flume基本架构

Event

Event是由Flume系统中处理的核心单元,在其架构中被定义为关键的数据传递载体。
每个事件(event)都包含一个可选headers字段以及一个承载着一组原始data的数据块(data block)。
而Header则存储了一个无序集合中的kv键值对(key-value pairs),其中每个key都是唯一的.

Agent

一个Agent由Source、Channel以及Sink三个部分构成,并作为Flume流的基础架构存在。Flume为这些组件提供了配置管理、生命周期调控以及监控功能支持。每个Agent必须部署于采集设备上。

Source

主要负责接收或生成Events,并将它们以批量形式放入一个或多个Channel。
涵盖两种驱动方式:一种是基于事件的数据源直接将其发送至System Source;另一种是System Source从数据源持续获取信息。
每个System Source都必须与至少一个Target Channel相关联。
通过系统集成的方式提供三种类型的System Sources:Syslog、Netcat以及基于目录池的监控。
独立于其他系统的自动事件生成型System Sources为Exec系列工具。
专为Agent之间的交互设计的一类Inter-Process Communication (IPC) System Sources包括Avro和Thrift协议。

Channel

介于Source和Sink之间作为信息传递的通道,在其传输路径上实时存储来自Source端发来的Event数据

Sink

Sink负责处理将Event发送到下一个Source或最终目的地,在Event处理完成后会从Channel中移除它。 事件会被存储在终端sink中(例如HDFS或HBase)。 自动消耗的空闲sink(例如null sink)通常不会进行任何操作。 专门用于agent间通信的IPC类型通常会使用特定的机制(如Avro),其中涉及使用" Sink: Avro"的形式。 每个系统必须针对特定的channel进行配置以确保正常运行。

Interceptor 负责处理 Source 发送过来的事件,并对其实施拦截、修改或放弃。
Channel Selector 负责根据预设的标准从可用的 Channels 中选择一个或多个。
当多个 Sink 组成一个 Sink Group 时, 每个 Sink Processor 可以通过组内所有 Sink 实现负载均衡。
如果某个 Sink 失败, 则该 Processor 可以自动转移到其他可用的 Sink。

Flume的安装

该文章详细介绍了五种安装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

解压完成后,在命令行中执行mv flume-env.sh-template flume-env.sh指令,并修改环境变量JAVA_HOME。

对指定目录flumeagent进行实时跟踪,并对新增文件进行采集记录到控制台界面;然后配置相关参数完成任务

将agent的名称设置为a1。接着为对应的source、channel和sink分配名称。并对这些组件进行参数设置。

复制代码
    flume-ng agent --conf $FLUME_HOME/conf/ --conf-file /agent.conf --name a1 -Dflume.root.logger=INFO,console
    
    AI写代码

会有相关提示

然后往文件夹里添加文件

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

点击进入文件夹后可以看到该文件被标记为已完成状态,无需再次采集。

全部评论 (0)

还没有任何评论哟~