【博学谷学习记录】超强总结,用心分享|Flume基本介绍与数据采集

一、Flume基本介绍

1.1 Flume基本介绍

Flume目前是Apache旗下的一款顶级开源项目,最初是由cloudera公司开发的,后期贡献给了Apache,Flume是一款专门用于数据采集的工具,主要的目的将数据从一端传输到另一端的操作。
​Flume也是使用Java语言编写的,Flume一般部署在数据采集节点。
在Flume中提供多种数据源的组件和多种目的地组件,主要的目的是为了能够适应更多的数据采集场景。
​Flume老版本(Flume 0.8x)版本之前,称为Flume OG,在0.8版本以后,更改为
Flume NG,同时整个架构也发生变化,整体操作也是不同的,目前主要采用Flume NG版本,OG版本一般见不到。
使用Flume核心就是学习如何配置Flume的采集脚本

1.2 Flume运行机制

整个Flume启动后, 就是一个agent实例对象, 而一个Agent实例对象一般由三大组件组成:

  • 1- Source 组件:【数据源】主要用于对接数据源,从数据源中采集数据,Flume提供多种Source组件。
  • 2- Sink组件:【下沉地(目的地)】主要用于将数据源采集过来数据通过Sink下沉具体的目的地中,Flume提供多种Sink组件。
  • 3- Channel组件:【管道】主要是用于起到缓存的作用,从Source将数据写入到Channel,Sink从Channel中获取数据,然后进行下沉操作,Flume也提供多种Channel组件。
    ​在Agent实例内部,数据传递是一个个event对象方式来传输的,event对象就是数据内容,默认只是对数据本身包裹,event处了可以保存本身数据以外,还可以附带一些其他信息。
    在这里插入图片描述

1.3 各类常见组件

(1)常见的Source组件
在这里插入图片描述

(2)常见的Sink组件

在这里插入图片描述

(3)常见Channel组件
在这里插入图片描述

二、Flume数据采集

2.1 编写采集配置文件

cd /export/server/flume/conf/
vim init_netcatSource_loggerSink.conf

输入 i 进入插入模式 添加以下内容:
#1- 配置三大组件的名称
a1.sources = r1
a1.channels = c1
a1.sinks = k1

#2- 配置三大组件详细信息
#2.1 source组件
a1.sources.r1.type = netcat
a1.sources.r1.bind = 192.168.88.161
a1.sources.r1.port = 44444

#2.2 channel组件
a1.channels.c1.type = memory
a1.channels.c1.capacity = 100
a1.channels.c1.transactionCapacity = 100

#2.3 sink组件
a1.sinks.k1.type = logger

# 3- 配置sink和source连接channel配置
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

2.2 启动执行: 开始采集

cd /export/server/flume/bin
./flume-ng agent -n a1 -c ../conf -f ../conf/init_netcatSource_loggerSink.conf -Dflume.root.logger=INFO,console

-n : 为agent起一个名字, 此名字必须和采集配置文件中定义的名称保持一致
-c : 指定Flume配置文件在那个目录下
-f : 指定采集文件的路径
-D-Dflume.root.logger=INFO,console : 打印日志行为 (固定内容)

在这里插入图片描述

2.3 模拟向node1的44444端口号写入数据

在任意的一个节点上, 通过 telnet命令 连接node1 的 44444端口号, 然后向其发送数据, 观察node1的flume是否可以采集到数据, 如果可以采集到, 那么就说明没有任何问题, Flume整体都是正常。

操作:
telnet node1 44444
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐