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

Flume概述及其单节点安装部署

程序员文章站 2022-03-03 09:49:59
文章目录概述概念:核心(执行流程):运行机制:应用场景:安装部署(以node01节点为例)概述概念:Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。核心(执行流程):Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前, 会先缓存数据(channel),待数据真正到达目的地(sink)后,flume 在删除自己缓存的数据。运行机制:...

概述

概念:

Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。

核心(执行流程):

Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前, 会先缓存数据(channel),待数据真正到达目的地(sink)后,flume 在删除自己缓存的数据。

运行机制:

Flume 系统中核心的角色是 agent,agent 本身是一个 Java 进程,一般运行在日志收集节点。

Flume概述及其单节点安装部署
每一个 agent 相当于一个数据传递员,内部有三个组件:

Source:采集源,用于跟数据源对接,以获取数据;
Sink:下沉地,采集数据的传送目的,用于往下一级 agent 传递数据或者往最终存储系统传递数据;
Channel:agent 内部的数据传输通道,用于从 source 将数据传递到 sink;

在整个数据的传输的过程中,流动的是 event,它是 Flume 内部数据传输的
最基本单元。event 将传输的数据进行封装。如果是文本文件,通常是一行记录, event 也是事务的基本单位。event 从 source,流向 channel,再到 sink,本身为一个字节数组,并可携带 headers(头信息)信息。event 代表着一个数据的最小完整单元,从外部数据源来,向外部的目的地去。

一个完整的 event 包括:event headers、event body、event 信息,其中event 信息就是 flume 收集到的日记记录。

应用场景:

当前 Flume 有两个版本。Flume 0.9X 版本的统称 Flume OG( original generation),Flume1.X 版本的统称 Flume NG(next generation)。由于 Flume NG 经过核心组件、核心配置以及代码架构重构,与 Flume OG 有很大不同,使用时请注意区分。改动的另一原因是将 Flume 纳入 apache 旗下,Cloudera Flume 改名为 Apache Flume。

安装部署(以node01节点为例)

  1. 上传安装包到数据源所在的节点上(放至/export/soft目录下)
  2. 解压
tar -zxvf apache-flume-1.8.0-bin.tar.gz -C ../servers
  1. 进入 flume 的目录,修改 conf 下的 flume-env.sh
cd /export/servers/apache-flume-1.8.0-bin/conf
cp flume-env.sh.template flume-env.sh
vi flume-env.sh

在文件末尾添加:
export JAVA_HOME=/export/servers/jdk1.8.0_65

验证

  1. 先在 flume软件包 的 conf 目录下新建一个文件
进入flume软件包目录下:
/export/servers/apache-flume-1.8.0-bin

创建文件并修改:
vi	netcat-logger.conf

添加以下内容:
#定义这个 agent 中各组件的名字
a1.sources =r1 
a1.sinks =k1
a1.channels=c1

#描述和配置 source 组件:r1 
a1.sources.r1.type = netcat 
a1.sources.r1.bind = node01
a1.sources.r1.port = 44444
#描述和配置 sink 组件:k1 
a1.sinks.k1.type = logger 

#描述和配置 channel 组件,此处使用是内存缓存的方式
#使用一个通道将事件缓存在内存
a1.channels.c1.type = memory
#设置储存在通道(管道)中的最大数量
a1.channels.c1.capacity =1000
#事务通道将从源获取或提供给接收器的最大事件数
a1.channels.c1.transactionCapacity = 100

#描述和配置 source   channel	sink 之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
  1. 启动 agent 去采集数据
进入flume软件包:
cd /export/servers/apache-flume-1.8.0-bin
启动:
bin/flume-ng agent  -c ./conf  -f ./conf/netcat-logger.conf  -n a1 -Dflume.root.logger=INFO,console

启动成功:
Flume概述及其单节点安装部署

  1. 测试
    先要往 agent 采集监听的端口上发送数据,让 agent 有数据可采。随便在一个能跟 agent 节点联网的机器上,

以node02节点为例:

在node02节点上安装相应yum包:
yum -y install telnet

与node01的44444端口通信:
telnet	node01	44444

在node02节点上模拟发送数据:
Flume概述及其单节点安装部署

在node01节点上查看监控到的数据:

Flume概述及其单节点安装部署

本文地址:https://blog.csdn.net/zh2475855601/article/details/110505521