写点什么

Flume 知识点总结

发布于: 2021 年 05 月 23 日
Flume知识点总结

1 Flume 组成,Put 事务,Take 事务

1) flume 组成,Put 事务,Take 事务

Taildir Source:断点续传、多目录。Flume1.6 以前需要自己自定义 Source 记录每次读取文件位置,实现断点续传。

File Channel:数据存储在磁盘,宕机数据可以保存。但是传输速率慢。适合对数据传输可靠性要求高的场景,比如,金融行业。

Memory Channel:数据存储在内存中,宕机数据丢失。传输速率快。适合对数据传输可靠性要求不高的场景,比如,普通的日志数据。

Kafka Channel:减少了 Flume 的 Sink 阶段,提高了传输效率。           

Source 到 Channel 是 Put 事务

Channel 到 Sink 是 Take 事务

2 Flume 拦截器

1) 拦截器注意事项

项目中自定义了:ETL 拦截器和区分类型拦截器。

采用两个拦截器的优缺点:优点,模块化开发和可移植性;缺点,性能会低一些

2) 自定义拦截器步骤

a. 实现 Interceptor

b. 重写四个方法

n initialize 初始化

n public Event intercept(Event event) 处理单个 Event

n public List<Event> intercept(List<Event> events) 处理多个 Event,在这个方法中调用 Event intercept(Event event)

n close 方法

c. 静态内部类,实现 Interceptor.Builder

3 Flume Channel 选择器



4 Flume 监控器

Ganglia 监控

加州伯克利大学千禧计划的其中一个开源项目.是一个集群汇总监控用的的软件,和 Cacti 不同,cacti 是详细监控集群中每台服务器的运行状态,而 Ganglia 是将集群中的服务器数据进行汇总然后监控。有时通过 cacti 或者 zabbix(监控软件)看不出来的集群总体负载问题,却能够在 Ganglia 中体现。被监控的主机(即 client)安装 ganglia-gmond 并启动该进程。服务器端需要安装 gmetad 和 web 程序。大致大构图如下:

 


 参考链接:https://www.cnblogs.com/yinzhengjie/p/9798739.html

 

5 Flume 采集数据会丢失吗?(防止数据丢失的机制)

不会,Channel 存储可以存储在 File 中,数据传输自身有事务。

6 Flume 内存

开发中在 flume-env.sh 中设置 JVM heap 为 4G 或更高,部署在单独的服务器上(4 核 8 线程 16G 内存)

-Xmx(设定程序运行期间最大可占用的内存大小)与-Xms(设定程序启动时占用内存大小)最好设置一致,减少内存抖动带来的性能影响,如果设置不一致容易导致频繁 fullgc。

7 FileChannel 优化

通过配置 dataDirs 指向多个路径,每个路径对应不同的硬盘,增大 Flume 吞吐量。

官方说明如下:

Comma separated list of directories for storing log files. Using multiple directories on separate disks can improve file channel peformance

checkpointDir 和 backupCheckpointDir 也尽量配置在不同硬盘对应的目录中,保证 checkpoint 坏掉后,可以快速使用 backupCheckpointDir 恢复数据

发布于: 2021 年 05 月 23 日阅读数: 8
用户头像

还未添加个人签名 2021.03.07 加入

还未添加个人简介

评论

发布
暂无评论
Flume知识点总结