ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Flume面试知识总结

2021-07-16 23:03:02  阅读:145  来源: 互联网

标签:Flume 总结 拦截器 event kafka 面试 Event channel


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

1)taildir source

(1)断点续传、多目录

    (2)哪个flume版本产生的?Apache1.7、CDH1.6

(3)没有断点续传功能时怎么做的? 自定义

(4)taildir挂了怎么办?

     不会丢数:断点续传

     重复数据:

(5)怎么处理重复数据?

     不处理:生产环境通常不处理,因为会影响传输效率

     处理

         自身:在taildirsource里面增加自定义事务

         找兄弟:下一级处理(hive dwd sparkstreaming flink布隆)、去重手段(groupby、开窗取窗口第一条、redis)

(6)taildir source 是否支持递归遍历文件夹读取文件?

     不支持。  自定义  递归遍历文件夹 +读取文件

2)file channel /memory channel/kafka channel  

(1)file channel

          数据存储于磁盘,优势:可靠性高;劣势:传输速度低

          默认容量:100万event

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

(2)memory channel

          数据存储于内存,优势:传输速度快;劣势:可靠性差

          默认容量:100个event

(3)kafka channel

          数据存储于Kafka,基于磁盘;

          优势:可靠性高;

          传输速度快 kafka channel》memory channel+kafka sink  原因省去了sink阶段

(4)kafka channel哪个版本产生的?

          flume1.6 版本产生=》并没有火;因为有bug

          topic-start 数据内容

          topic-event 数据内容    ture  和false 很遗憾,都不起作用。

          增加了额外清洗的工作量。

          flume1.7解决了这个问题,开始火了。

(5)生产环境如何选择

          如果下一级是kafka,优先选择kafka channel

          如果是金融、对钱要求准确的公司,选择file channel

          如果就是普通的日志,通常可以选择memory channel

          每天丢几百万数据   pb级   亿万富翁,掉1块钱会捡?

3)HDFS sink    

     (1)时间(1小时-2小时) or 大小128m、event个数(0禁止)

具体参数:hdfs.rollInterval=3600,hdfs.rollSize=134217728,hdfs.rollCount =0

4)事务

Source到Channel是Put事务

Channel到Sink是Take事务

2、Flume拦截器

1)拦截器注意事项

项目中自定义了:ETL拦截器。

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

2)自定义拦截器步骤

(1)实现 Interceptor

(2)重写四个方法

  • initialize 初始化
  • public Event intercept(Event event) 处理单个Event
  • public List<Event> intercept(List<Event> events) 处理多个Event,在这个方法中调用Event intercept(Event event)
  • close 方法

(3)静态内部类,实现Interceptor.Builder

3)拦截器可以不用吗?

     可以不用;需要在下一级hive的dwd层和sparksteaming里面处理

     优势:只处理一次,轻度处理;劣势:影响性能,不适合做实时推荐这种对实时要求比较高的场景。

3、Flume Channel选择器

 

 

 4、Flume监控器

1)采用Ganglia监控器,监控到flume尝试提交的次数远远大于最终成功的次数,说明flume运行比较差。

2)解决办法?

(1)自身:增加内存flume-env.sh   4-6g

-Xmx与-Xms最好设置一致,减少内存抖动带来的性能影响,如果设置不一致容易导致频繁fullgc。

(2)找朋友:增加服务器台数

搞活动 618  =》增加服务器=》用完在退出

日志服务器配置:8-16g内存、磁盘8T

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

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

如果是MemoryChannel有可能丢。

标签:Flume,总结,拦截器,event,kafka,面试,Event,channel
来源: https://www.cnblogs.com/lipinbigdata/p/15022170.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有