数据采集工具Flume

Flume实时数据采集工具的使用

Flume的开发已经接近极致,可以看到最近两年也没有什么更新,是一款非常实用的实时数据采集工具,可以满足大数据采集的大多数要求(全量采集还是建议用sqoop,别问为什么,问就是你的全量采集你也可以用Flume,前提是你不怕被打,前前提是你的内存还能腾出地儿给别的任务跑)。
具体的使用请往后看,这款工具真的是不用脑子,有手就行,基本上你要考虑的人家都给你考虑到了,要用什么直接去官网cp过来改改就完事了,有人非要杠,开发到极致了还要改,洗洗睡吧你。

1.功能

1.可以将各种不同的数据源的数据实时采集到各种目标中。

2.特点

1.1实时采集,也可以做离线采集
1.2.采集:文件、端口
发送:HDFS、Hive、Hbase、Kafka
1.3.允许自定义开发
1.4.开发相对简单,所有功能基本已经封装好了,只需要开发一个配置文件。
1.5.虽然不是分布式工具,但可以将Flume部署在多台机器上,一起采集,实现分布式采集。

3.应用

应用于实时文件、网络数据流采集场景。
参考:美团的Flume设计架构

Flume的基本组成

step1:Agent
step2:Source
step3:Channel
step4:Sink
step5:Event

**官网:flume.apache.org**

在这里插入图片描述在这里插入图片描述

Agent:
一个Agent表示一个Flume程序,实现采集数据源的数据,将 数据采集发送到目标地
将WebServer的日志采集以后写入HDFS
任何一个Agent实现数据采集,都必须由三个基本组件构成
Source、Channel、Sink
Source:
负责监听数据源的数据变化,如果数据源产生新的数据,就立即进行采集
负责实现数据采集
将数据源的每一行数据变成一个Event对象,发送给Channel
Channel:
负责接收Source采集到的数据,供Sink来读取数据
采集数据的临时缓存的

Sink:
负责从Channel中读取采集的数据,将数据写入目标地
最终实现数据发送的组件
Event:
数据流传输的最小的封装的单元,将每一行封装为一个Event

    结构
    header:类似于一个Map集合存储,默认为空的,可以选择性在header放KV对,一些属性的配置等
    body:类似于一个字节数组,存放真正的这条数据的内容
    作用:实现每一条数据的封装

Flume的开发规则

step1:开发一个Flume的参数配置文件
需要在配置文件中定义Agent
定义Agent的名称
定义Source:从哪读取数据
定义Channel:将数据缓存在哪
定义Sink:将数据发送到哪

**一个文件可以有多个Agent,具体区分每个Agent通过Agent名称来区分**
**step2:运行flume的agent程序**,运行这个程序所在的文件,指定agent的名称即可
--用法
flume-ng <command> [options]...
--使用
flume-ng agent -c/--conf 指定Flume配置文件目录 --name/-n 指定Agent的名称 --conf-file/-f 指定要运行的文件

Flume开发测试

需求:采集Hive的日志、临时缓存在内存中、将日志写入Flume的日志中并打印在命令行

source:采集一个文件数据

在这里插入图片描述Exec Source:通过执行一条Linux命令来实现文件的动态采集

channel:Flume提供了各种channel用于缓存数据在这里插入图片描述

mem channel:将数据缓存在内存中

sink:Flume提供了很多种sink

在这里插入图片描述

Logger Sink:将数据写入日志中

**

开发实例

**

创建测试目录   cd /export/server/flume-1.6.0-cdh5.14.0-bin
mkdir usercase
复制官方示例   cp conf/flume-conf.properties.template usercase/hive-mem-log.properties
开发配置文件
# The configuration file needs to define the sources, 
# the channels and the sinks.
# Sources, channels and sinks are defined per a1, 

# in this case called 'a1'

#define the agent
a1.sources = s1
a1.channels = c1
a1.sinks = k1

#define the source
a1.sources
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值