大数据开发必备面试题Flume篇合集

news2024/11/14 13:48:36

大数据开发必备面试题Flume篇合集

  • 1 、详细介绍Flume有哪些组件?
  • 2、你是如何实现Flume数据传输的监控的?
  • 3、Flume参数怎么调优?
  • 4、简述下Flume的事务机制。
  • 5、 Flume采集数据会丢失吗?
  • 6、简述下Flume使用场景。
  • 7、简述下 Flume丢包问题。
  • 8、 数据怎么采集到Kafka,用什么实现方式?
  • 9、 Flume管道内存,flume宕机了数据丢失怎么解决?
  • 10、简述下Flume不采集Nginx日志,通过Logger4j采集日志的优缺点。
  • 11、Flume和Kafka采集日志区别,采集日志时中间停了,怎么记录之前的日志?
  • 12、如何实现Flume数据传输断点续传?

1 、详细介绍Flume有哪些组件?

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

2、你是如何实现Flume数据传输的监控的?

使用第三方框架Ganglia实时监控flume。

3、Flume参数怎么调优?

(1)Source
增加Source个数(使用Tair Dir Source时可增加FileGroups个数)可以增大Source的读取数据的能力。
例如:当某一个目录产生的文件过多时需要将这个文件目录拆分成多个文件目录,同时配置好多个Source 以保证Source有足够的能力获取到新产生的数据。
batchSize参数决定Source一次批量运输到Channel的event条数,适当调大这个参数可以提高Source搬运Event到Channel时的性能。
(2)Channel
type 选择memory时Channel的性能最好,但是如果Flume进程意外挂掉可能会丢失数据。type选择file时Channel的容错性更好,但是性能上会比memory channel差。
使用file Channel时dataDirs配置多个不同盘下的目录可以提高性能。
Capacity 参数决定Channel可容纳最大的event条数。transactionCapacity 参数决定每次Source往channel里面写的最大event条数和每次Sink从channel里面读的最大event条数。transactionCapacity需要大于Source和Sink的batchSize参数。
(3) Sink
增加Sink的个数可以增加Sink消费event的能力。Sink也不是越多越好够用就行,过多的Sink会占用系统资源,造成系统资源不必要的浪费。
batchSize参数决定Sink一次批量从Channel读取的event条数,适当调大这个参数可以提高Sink从Channel搬出event的性能。

4、简述下Flume的事务机制。

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

5、 Flume采集数据会丢失吗?

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

6、简述下Flume使用场景。

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

7、简述下 Flume丢包问题。

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

8、 数据怎么采集到Kafka,用什么实现方式?

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

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

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

10、简述下Flume不采集Nginx日志,通过Logger4j采集日志的优缺点。

优点:Nginx的日志格式是固定的,但是缺少sessionid,通过logger4j采集的日志是带有sessionid的,而session可以通过redis共享,保证了集群日志中的同一session落到不同的tomcat时,sessionId还是一样的,而且logger4j的方式比较稳定,不会宕机。
缺点:不够灵活,logger4j的方式和项目结合过于紧密,而flume的方式比较灵活,拔插式比较好,不会影响项目性能。

11、Flume和Kafka采集日志区别,采集日志时中间停了,怎么记录之前的日志?

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

12、如何实现Flume数据传输断点续传?

TailDirSource支持断点续传。通过Json格式文件写入上次传递位置信息,断点续传从下个位置开始。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/432141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】文件操作

目录 1.为什么使用文件 2.什么是文件 2.1 程序文件 2.2 数据文件 2.3文件名 3.文件的打开和关闭 3.1文件指针 3.2文件的打开和关闭 4.程序的顺序读写 4.2对比一组函数 5.文件的随机读写 5.1 fseek 5.2 ftell 5.3 rewind 6.文本文件和二进制文件 7.文件读取结束的…

2023年银行理财子公司研究报告

第一章 行业发展概况 1.1 行业概况 所谓“银行理财子公司”,其实就是由商业银行作为控股股东发起设立的,并经国务院银行业监督管理机构批准;主要从事理财业务;独立于母行,具有独立法人地位的非银行金融机构。像工商银…

Redission分布式锁

实现过程: 只要线程一加锁成功,就会启动一个 watch dog 看门狗,它一个后台线程, 会每隔 10 秒检查一下,如果线程 1 还持有锁,那么就会不断延长锁 key 生存时间。因此,Redisson 解决了锁过期释放…

Commitizen规范git提交代码

首先全局安装Commitizen,运行: npm install -g commitizen 然后在项目中开启终端,安装cz-customizable npm i cz-customizable --save-dev 然后在package.json中配置如下代码: "config": {"commitizen":…

虹科干货| 虹科Redis企业版数据库:告别游戏卡顿,让快乐加速!

“卡顿一分钟,玩家两行泪” 游戏已成为年轻人最主要的消遣娱乐方式之一,游戏卡顿给玩家带来糟糕游戏体验背后的原因是什么?数据存储与查询速度不够快! 游戏开发领域,不仅拥有海量的数据,甚至还要做到实时…

Flowable6.x导出/查看/跟踪流程图

Flowable6.x导出/查看/跟踪流程图 项目源码仓库 Flowable诞生于Activiti,是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义,可以十分灵活地加入你的应用/服务/构架。 本文介绍4种绘制流程图的方式,前…

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

Set 您再次发现自己在Windcorp公司的内部网络上。上次你去那里的味道真好,你回来了 了解更多。 但是,这次他们设法保护了域控制器,因此您需要找到另一台服务器,并在第一次扫描时发现“Set”。 Set被用作开发人员的平台&#xf…

集团企业大数据治理解决方案word

第一章 集团企业大数据治理阶段目标 通过数据平台和BI应用建设,集团企业大数据将搭建统一的大数据共享和分析平台,对各类业务进行前瞻性预测及分析,为集团企业各层次用户提供统一的决策分析支持,提升数据共享与流转能力。 一.1、…

Redis持久化的几种方式

Redis 持久化也是 Redis 和 Memcached 的主要区别之一,因为 Memcached 是不具备持久化功能的。 1.持久化的几种方式 Redis 持久化拥有以下三种方式: 快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的…

SpringAOP入门基础银行转账实例(进阶版)------------事务处理

SpringAOP入门基础银行转账实例**(进阶版)**------------事务处理 由上一节讲述的通过Connection和QueryRunner对事务进行的处理(详情可以去我之前写的博客文章:https://blog.csdn.net/m0_56245143/article/details/130069160?spm1001.2014…

派盘为您的个人数据安家

现如今,我们的生活中有着各种各样的数据。在工作中会有各种文件、邮件;在生活中则有照片和视频等。数据的来源多,时间点不一致且混乱。 数据是否能安全、稳定、长久的存储以及便捷高效的使用对我们来说相当重要。你是否经常出差需要带上电脑或者移动硬盘,想存网盘又怕丢失或…

牛客网:HJ1 字符串最后一个单词的长度

题目部分: 解题思路: 方案一: 对于本题,看似简单,其实有坑。 就是在获取单词这块,不能直接用cin这样子操作,否则不能获取到完整的单词,因为cin这样的读到空格就不会往后续读了&…

elsticsearch与关系数据库的区别

查看所有索引(表) 向索引(表)中添加数据: 自定义id添加数据: 自定义id添加数据:方式二

Android12之网络共存

一.思路 所谓共存就是让两个网络同时使用,如果想让哪个网络作为外网,则该网络优先级要高于内网的网络,即可达到外网用来上网的需求,那么要想共存,就必须到从低优先级网络切换到优先级高的网络时,不要做断开操作,即可达到,两个网络同时存在的需求,做到以上两点,我们便…

MiniGPT4,开源了

简介 MiniGPT-4 旨在将来自预训练视觉编码器的视觉信息与先进的大型语言模型 (LLM) 对齐。 具体来说,在文本方面,作者利用 Vicuna 作为语言解码器,在视觉感知方面,使用了与BLIP-2相同的视觉编码器,并且语言和视觉模型…

数据结构(C语言实现)——二叉树的概念及二叉树顺序结构和链式结构的实现(堆排序+TOP-K问题+链式二叉树相关操作)

文章目录1. 前言2. 树的概念及结构2.1 树的概念2.2 树的相关概念2.3 树的表示3. 二叉树的概念3.1 特殊二叉树3.2 二叉树的性质4. 二叉树的顺序存储4.1 堆的概念4.2 堆的实现4.2.1 堆的结点定义4.2.2 堆的打印和销毁4.2.3 堆的插入4.2.4 堆的删除4.2.5 取堆顶数据4.2.6 堆的判空…

【Python学习笔记】cs231nPython Numpy教程

【Python学习笔记】cs231nPython Numpy教程 回顾经典教程cs231n,完成assignments觉得很困难,感觉自己python基础语法掌握的不是很熟,就顺藤摸瓜找了cs231n他们的官方Python个Numpy教程 如果对英文原版上手有困难,可以看这个&…

智慧园区水电监测系统

随着人们对环保意识的提高,智慧园区的建设也越来越受到关注。其中,水电监测系统是智慧园区的一个重要组成部分。本文将从以下几个方面介绍智慧园区水电监测系统的特点和优势。 一、智慧园区水电监测系统的特点 1.实时监测:智慧园区水电监测系…

某医院网络故障分析案例

1、背景 某市第一医院用户反馈,近期内部业务系统出现访问慢的情况,这种情况严重影响到用户的体验和工作效率。 针对此问题,我们通过NetInside流量分析系统,提供实时和历史原始流量。重点针对网络异常流量跟踪分析,找…

go数据结构(二叉树的遍历)

用数组来存储二叉树如何遍历的呢? 如果父节点的数组下表是i,那么它的左孩子就是i * 2 1,右孩子就是 i * 2 2。 二叉树的遍历方式: 二叉树有三种基本遍历方式,分别是前序遍历、中序遍历和后序遍历。遍历的原理是从根…