前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【最全的大数据面试系列】Flume面试题大全

【最全的大数据面试系列】Flume面试题大全

作者头像
大数据小禅
发布2021-12-21 14:53:49
9720
发布2021-12-21 14:53:49
举报
文章被收录于专栏:YO大数据

作者 :“大数据小禅” 专栏简介 :本专栏主要分享收集的大数据相关的面试题,涉及到Hadoop,Spark,Flink,Zookeeper,Flume,Kafka,Hive,Hbase等大数据相关技术 个人主页 :大数据小禅

面试题目录

1.Flume 使用场景

线上数据一般主要是落地(存储到磁盘)或者通过 socket 传输给另外一个系统,这种情况下,你很难推动线上应用或服务去修改接口,实现直接向 kafka里写数据,这时候你可能就需要 flume 这样的系统帮你去做传输。

2.Flume丢包问题

单机 upd 的 flume source 的配置,100+M/s 数据量,10w qps flume 就开始大量丢包,因此很多公司在搭建系统时,抛弃了 Flume,自己研发传输系统,但是往往会参考 Flume 的 Source-Channel-Sink 模式。一些公司在 Flume 工作过程中,会对业务日志进行监控,例如 Flume agent中有多少条日志,Flume 到 Kafka 后有多少条日志等等,如果数据丢失保持在1%左右是没有问题的,当数据丢失达到 5%左右时就必须采取相应措施。

3.Flume与Kafka的选取

采集层主要可以使用 Flume、Kafka 两种技术。Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展 API。

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

Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题 Topics。相比之下,Flume 是一个专用工具被设计为旨在往 HDFS,HBase 发送数据。它对 HDFS 有特殊的优化,并且集成了 Hadoop 的安全特性。所以,Cloudera 建议如果数据被多个系统消费的话,使用 kafka;如果数据被设计给 Hadoop 使用,使用 Flume。正如你们所知 Flume 内置很多的 source 和 sink 组件。然而,Kafka 明显有一个更小的生产消费者生态系统,并且 Kafka 的社区支持不好。希望将来这种情况会得到改善,但是目前:使用 Kafka 意味着你准备好了编写你自己的生产者和消费者代码。如果已经存在的 Flume Sources 和 Sinks 满足你的需求,并且你更喜欢不需要任何开发的系统,请使用 Flume。Flume 可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka 需要外部的流处理系统才能做到。Kafka 和 Flume 都是可靠的系统,通过适当的配置能保证零数据丢失。然而,Flume 不支持副本事件。于是,如果 Flume 代理的一个节点奔溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠性的管道,那么使用 Kafka 是个更好的选择。Flume 和 Kafka 可以很好地结合起来使用。如果你的设计需要从 Kafka 到Hadoop 的流数据,使用 Flume 代理并配置 Kafka 的 Source 读取数据也是

可行的:你没有必要实现自己的消费者。你可以直接利用 Flume 与 HDFS 及HBase 的结合的所有好处。你可以使用 Cloudera Manager 对消费者的监控,并且你甚至可以添加拦截器进行一些流处理。

4.Flume怎么采集数据到Kafka,实现方式

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

5.Flume管道内存,Flume宕机了数据丢失怎么解决

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

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

6.Flume配置方式

Flume 的配置围绕着 source、channel、sink 叙述,flume 的集群是做在agent 上的,而非机器上。

7.Flume不采集Nginx日志,通过Logger4j采集日志,优缺点是什么

优点:Nginx 的日志格式是固定的,但是缺少 sessionid,通过 logger4j 采集的日志是带有 sessionid 的,而 session 可以通过 redis 共享,保证了集群日志中的同一 session 落到不同的 tomcat 时,sessionId 还是一样的,而且logger4j 的方式比较稳定,不会宕机。

缺点:不够灵活,logger4j 的方式和项目结合过于紧密,而 flume 的方式比较灵活,拔插式比较好,不会影响项目性能。

8.Flume与Kafka采集日志区别,中途时间停止了,怎么记录之前的日志

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

9.Flume有哪些组件,Flume的source,channel,sink具体是做什么的

1)source:用于采集数据,Source 是产生数据流的地方,同时 Source 会将产生的数据流传输到 Channel,这个有点类似于 Java IO 部分的 Channel。

2)channel:用于桥接 Sources 和 Sinks,类似于一个队列。

3)sink:从 Channel 收集数据,将数据写到目标源(可以是下一个 Source,也可以是 HDFS 或者 HBase)。

注意:要熟悉 source、channel、sink 的类型

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面试题目录
  • 1.Flume 使用场景
  • 2.Flume丢包问题
  • 3.Flume与Kafka的选取
  • 4.Flume怎么采集数据到Kafka,实现方式
  • 5.Flume管道内存,Flume宕机了数据丢失怎么解决
  • 6.Flume配置方式
  • 7.Flume不采集Nginx日志,通过Logger4j采集日志,优缺点是什么
  • 8.Flume与Kafka采集日志区别,中途时间停止了,怎么记录之前的日志
  • 9.Flume有哪些组件,Flume的source,channel,sink具体是做什么的
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档