17个Flume面试题。希望能够帮到你

1、什么是Flume?

答:Flume是Cloudera公司的一款高性能、高可用的分布式日志收集系统,现在已经被Apache收购。

2、Flume特点?

答:可靠性、可扩展性、可管理性、功能可扩展性、、

3、flume组成,Put事物,Task事务?

答:Flume组成,Put事物,Task事务
a. Taildir Source:断点续传、多目录
b. File Channel:数据存储在磁盘中,宕机数据可以保存。传输速率慢,适合对数据传输可靠性要求高的场景,例如:金融行业
c. Memory Channel:数据存储在内存中,宕机数据容易丢失。传输效率快,适合对数据传输可靠性要求不高的场景,例如:日志数据
d. Kafka Channel:减少Flume的Sink阶段,提高了传输效率
Source到Channel是Put事务
Channel到Sink是Task事务

5、Flume拦截器?

答:1.拦截器注意事项:
项目中定义了ETL拦截器和区分类型拦截器
采用两个拦截器的优缺点:
优点:模块化开发和可移植性
缺点:性能会低一些
2.自定义拦截器:
a.实现Interceptor
b.重写四个方法:
initialize 初始化
public Event intercept(Event event)处理单个Event
public Listintercept(Listevents)处理多个event方法,在这个方法中调用Event intercept(Event event)
close 方法
c.静态内部类,实现interceptor.Builder
3.Flume Channel选择器:
17个Flume面试题。希望能够帮到你_第1张图片

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

答:不会,Channel存储可以存储在File中,数据传输自身有事物

7、Flume内存?

答:开发中在flume-env.sh中设置JVM heap为4G或更高,部署在单独的服务器上(4核8线程16G内存)
—Xmx与—Xms最好设置一致,减少内存抖动带来的性能影响,如果不一致容易导致频繁fullgc。

8、FlumeChannel优化?

答:通过配置多个dataDirs指向多个路径,每个路径对应不同的硬盘,增大Flume吞吐量
checkpointDir和backupCheckpointDir也尽量配置在不同的硬盘对应的目录中,保证checkpoint坏掉后,可以快速使用backupCheckpointDir恢复数据

9、HDFS Sink小文件影响和处理?

答:影响:
1.元数据层:每个小文件都有一个元数据,这些信息都保存早Namenode内存中。小文件过多会占用Namenode服务器大量的内存,影响Namenode性能和使用寿命
2.计算层面:默认情况下MR会对小文件启用一个MR任务计算,非常影响计算性能,勇士也影响磁盘寻址时间
处理:
配置 hdfs.rollIntervar=3600,hdfs.roollSize=134217728,hdfs.rollCount=0,hdfsroundValue=10,hdfs.roundUnit=second几个参数作用,效果:
1.tmp文件达到128M时会滚动生成正式文件
2.tmp文件创建超过10秒时会滚动生成正式文件

10、数据怎么采集到 Kafka,实现方式?

答:使用官方提供的 flumeKafka 插件,插件的实现方式是自定义了 flume 的 sink,将数据从channle 中取出,通过 kafka 的producer 写入到 kafka 中,可以自定义分区等。

11、flume 管道内存,flume 宕机了数据丢失怎么解决?

答:(1)Flume 的 channel 分为很多种,可以将数据写入到文件。
(2)防止非首个 agent 宕机的方法数可以做集群或者主备

12、flume 和 kafka 采集日志区别,采集日志时中间停了,怎么记录之前的日志?

答:(1)Flume 采集日志是通过流的方式直接将日志收集到存储层,而 kafka 是将缓存在 kafka集群,待后期可以采集到存储层。
(2)Flume 采集中间停了,可以采用文件的方式记录之前的日志,而 kafka 是采用 offset 的方式记录之前的日志。

13、、flume 有哪些组件,flume 的 source、channel、sink 具体是做什么的?

答:(1)source:用于采集数据,Source 是产生数据流的地方,同时 Source 会将产生的数据流传输到 Channel,这个有点类似于 Java IO 部分的 Channel。
(2)channel:用于桥接 Sources 和 Sinks,类似于一个队列。
(3)sink:从 Channel 收集数据,将数据写到目标源(可以是下一个 Source,也可以是 HDFS或者 HBase)。

14、为什么使用Flume?17个Flume面试题。希望能够帮到你_第2张图片
15、FlumeAgent内部原理?

17个Flume面试题。希望能够帮到你_第3张图片

16、Flume Event?

答:它是数据流的基本单元,由一个装载数据的字节数组(byte payload)和一系列可选的字符串属性来组成(可选头部)

17、Flume的事务机制

答:Flume的事务机制(类似数据库的事务机制):Flume使用两个独立的事务分别负责从Soucrce到Channel,以及从Channel到Sink的事件传递。比如spooling directory source 为文件的每一行创建一个事件,一旦事务中所有的事件全部传递到Channel且提交成功,那么Soucrce就将该文件标记为完成。同理,事务以类似的方式处理从Channel到Sink的传递过程,如果因为某种原因使得事件无法记录,那么事务将会回滚。且所有的事件都会保持到Channel中,等待重新传递。

你可能感兴趣的:(Flume)