ICode9

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

Flume面试题

2021-07-20 23:03:53  阅读:209  来源: 互联网

标签:Flume flume 面试题 Source 丢失 数据 Channel


1 Flum的应用场景?

线上数据存储在磁盘或通过socket传输给另外一个系统,很难推动线上应用和服务去修改接口,向kafka里面写数据,Flume是主要用来线上数据的传输。

2 Flum丢包问题

单机upd的flume source配置,100M/s数据量,10w qps flume就开始大量丢包,因此,很多公司在搭建自己的系统时,直接抛弃了flume,自己研发传输系统,但也会参考source-channel-sink.

一些公司在Flume工作过程中,会对业务日志进行监控,如果数据丢失在1%左右是没有问题的,当数据丢失在5%就会出现问题。

Flume:Flume是管道流方式,提供了很多默认实现,让用户通过参数部署,及扩展API

KafKa:Kafka是一个可持久化的分布式消息队列

Kafka是一个通用的系统,它允许多个生产者和多个消费者共享多个主题,相比之下Flum是一种专用的工具,被用来往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全性。如果数据被多个系统消费,使用Kafka,如果数据设计给Hadoop使用,则使用Flume。

Flume可以使用拦截器处理数据。这些对数据屏蔽或过量是很有用的。Kafka需要外部的流处理才能做到。

Kafka和flume是高可靠系统,可以通过配置实现数据的0丢失。但是flume不支持副本,一但某个Flume agent节点挂掉之后,即使使用了高可靠的管道传输,这些数据也会丢失,直到你恢复你的磁盘。如果需要可靠的管道传输,可以使用kafka.

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

使用Flume Kafka插件,插件自定义了flume和sink,数据从channel取出,通过kafka的Produce写入kafka中。

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

1)Flume的channel分为很多种,可以将数据写入到文件。

2)防止非首个agent宕机的方法数可以做集群或者主备。

尚硅谷

4.1你是如何实现Flum数据传输的监控的

使用第三方框架Ganglia实时监控Flume.

4.2 Flume的Source,Sink,Channel的作用?你们Source是什么类型?

1作用

1)Source可以用来收集数据,可以处理各种格式,日志数据

2)Channel组件对采集的数据进行缓存,可以存放在Memory或File中。

3)Sink组件是用于把数据发送到目的地的组件,目的地包括Hdfs,Hbase,avro,thrift,Hbase.

4.3 Flume的Channel Selectors(拦截器,监控器)

官方文档上Chann Selectors 有两种类型:Replicating Channel Selector 和Multiplexing,

这两种Selector的区别是Replicating会将source 过来的事件发送给所有的Channel,而Multiplexing可以选择该发往哪些Channel.

4.4 Flume参数调优

Source :batchsize可以影响Source运送envent到Channel的条数,适当的调节这个参数,可以提高Source运送到channel 的event性能。

2 Channel

type选择memory时Channel的性能最好,但是如果Flume如果意外挂掉可能丢失数据,这是type可以选择File,但性能比Memory差。

使用Channel时配置DataDir配置多个不同盘下的目录可以提高性能。

Capacity决定channel可容纳最大envent的条数。transactionCapacity决定Source往Channel写数据的最大的条数,其也决定sink往Channel读取数据的条数。

transanctionCapacity需要大于Source和Sink的batchSize参数。

3.Sink

增加sink,能提高数据消费的效率。但是也不是越多越好,多了话,也会造成系统资源的浪费。

bachsize决定sink读取Channel的envent的条数大小,适当增加batchsize可以跳高sink从channel搬运数据的大小。

4.5 Flume的事务机制

Flume有两个事务机制:这两个事务机制分别负责Source 到Channel,Channel到sink。

4.6 Flume采集数据会丢失吗?

根据Flume的架构原理,Flume是不可能丢失数据的,其内部有完善的事务机制,Source到Channel是事务性的,Channel到Sink是事务性的,因此不会丢失。唯一丢失的Channel的type是使用memory会丢失数据。或agent宕机导致数据丢失,或者Cahnnel存储的数据已满,导致Source不在写入,未写入的数据丢失。

标签:Flume,flume,面试题,Source,丢失,数据,Channel
来源: https://blog.csdn.net/qq_35686293/article/details/118936208

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

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

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

ICode9版权所有