大数据面试题(七):Flume核心高频面试题

news2024/12/25 9:34:37

文章目录

Flume核心高频面试题

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

二、你是如何实现flume数据传输的监控的

三、Flume的source,sink,channel的作用?你们source是什么类型?

四、Flume参数调优

1、Source

2、Channel

3、Sink

五、Flume的事务机制

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

七、Flume使用场景

八、Flume丢包问题

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

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

十一、Flume不采集Nginx日志,通过Logger4j采集日志,优缺点

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

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

十四、你是如何实现Flume数据传输断点续传?


Flume核心高频面试题

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

source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、 spooling directory、netcat、sequence generator、syslog、http、legacy

source组件把数据收集来以后,临时存放在channel中,即channel组件在agent中是专门用来存放临时数据的——对采集到的数据进行简单的缓存,可以存放在memory、jdbc、file等等。

sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、Hbase、 solr、自定义。

二、你是如何实现flume数据传输的监控的

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

三、Flume的source,sink,channel的作用?你们source是什么类型?

source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、 spooling directory、netcat、sequence generator、syslog、http、legacy

source组件把数据收集来以后,临时存放在channel中,即channel组件在agent中是专门用来存放临时数据的 —— 对采集到的数据进行简单的缓存,可以存放在memory、jdbc、file等等。

sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、Hbase、 solr、自定义。

监控后台日志:exec

监控后台产生日志的端口:netcat

四、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的性能。

五、Flume的事务机制

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

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

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

七、Flume使用场景

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

八、Flume丢包问题

单机upd的flume source的配置,100+M/s数据量,10w qps flume就开始大量丢包,因此很多公司在搭建系统时,抛弃了Flume,自己研发传输系统,但是往往会参考Flume的Source-Channel-Sink模式。

一些公司在Flume工作过程中,会对业务日志进行监控,例如Flume agent中有多少条日志,Flume到Kafka后有多少条日志等等,如果数据丢失保持在1%左右是没有问题的,当数据丢失达到5%左右时就必须采取相应措施。

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

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

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

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

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

十一、Flume不采集Nginx日志,通过Logger4j采集日志,优缺点

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

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

 

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

Flume采集日志是通过流的方式直接将日志收集到存储层,而kafka试讲日志缓存在kafka集群,待后期可以采集到存储层。

Flume采集中间停了,可以采用文件的方式记录之前的日志,而kafka是采用offset的方式记录之前的日志。

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

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

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

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

十四、你是如何实现Flume数据传输断点续传?

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


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

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

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

相关文章

2023年浙江建筑施工电工(建筑特种作业)模拟试题及答案

百分百题库提供特种工(电工)考试试题、特种工(电工)考试真题、特种工(电工)证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 159.临时⽤电⼯程验收应填写&#xff0…

基于Vue 全家桶实现网易云音乐 WebApp

基于 Vue(2.5) vuex vue-router vue-axios better-scroll Scss ES6 等开发一款移动端音乐 WebApp,UI 界面参考了安卓版的网易云音乐、flex 布局适配常见移动端。因为服务器的原因,所以可能多人访问的时候有些东西会加载不出来,如果可以的…

P2069 松鼠吃果子

题目描述 输入输出样例 输入 #1 10 4 输出 #1 9 说明/提示 注:吃掉的果子依次为 3,8,5(回到下面重做第 3 跳),9(回到下面重做第 4 跳)。 写着感觉好别扭 感觉和字符串没啥关…

接口管理工具YApi怎么用?颜值高、易管理、超好用!

众多接口管理工具如雨后春笋搬冒出。让人欣慰的是,有许多优秀作品来自国内,包含YApi和rap。 看着中文的官网,熟悉的汉语,不禁让人暗爽。当然这也就带来另一个弊端,因为使用基数少,所以参考资料少。我们想学…

发送tcp/udp请求

本文章介绍下通过nc工具和iperf工具,发送tcp/udp请求一、nc工具(netcat工具)这个工具linux系统默认是自带的,以下是命令的常用参数1.1 发送tcp请求在服务端监听端口nc -l port客户端连接并发送请求nc -v host port在服务端收到了信…

自定义动态IRule进行路由转发

gateway的负载均衡以及feign服务之间的调用或者RestTemplate请求,都可以使用自定义IRule规则进行路由转发。 自定义IRule 固定IRule:将IRule的一个实现类注入到spring容器中 Configuration public class MyIRuleConfig { Beanpublic IRule myIRule() {…

力扣sql基础篇(五)

力扣sql基础篇(五) 1 页面推荐 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 a 输入示例 b 输出示例 1.2 示例sql语句 # Write your MySQL query statement below SELECT distinct page_id recommended_page FROM Likes WHERE (user_id in (SELECT user2_idFROM …

字符串查找、错误信息、字符分类函数

1、寻找子串strstr char* my_strstr(const char* str1, const char* str2) {assert(str1 && str2);const char* cp str1;const char* s1 str1;const char* s2 str2;while (*cp){s2 str2;s1 cp;while (*s1!\0 && *s2!\0 && * s1 *s2){s1;s2;}if (…

一步一步学爬虫(5)Ajax分析方法

一步一步学爬虫(5)Ajax分析方法5.2.1. 分析案例5.2.2. 过滤请求5.2.3. 总结5.2.1. 分析案例 这里还需要借助浏览器的开发者工具,下面以 Chrome 浏览器为例来介绍。 首先,用 Chrome 浏览器打开微博的链接 https://m.weibo.cn/u/283…

排查开机启动项

防止被控机器失联部分木马会添加开机启动项作为复活的手段 /etc/rc.local /etc/rc.local 是 /etc/rc.d/rc.local的软链接 [rootVM-4-11-centos etc]# ll rc.local lrwxrwxrwx 1 root root 13 Apr 6 2022 rc.local -> rc.d/rc.localrc.local的原始内容: #!/…

中文文案排版指北

格式规范千千万,内容创作 No.1 但是当下我们专注与文案排版。优秀的排版、正确使用标点符号能让阅读者赏心悦目,提升阅读体验。这篇文章将 GitHub 上的有关排版的规范摘抄部分供大家查阅,更多详情还请访问原文所在(底部引用中的地…

APSIM练习:小麦苜蓿轮作

在本练习中,您将创建一个小麦苜蓿轮作,其中草料阶段持续数年。 基于“Rotation Sample.apsim”创建一个新的模拟。这是小麦鹰嘴豆轮作。在 Manager 文件夹中,Rotation Management 组件用于表示旋转,使用带有节点(圆圈…

网站需要怎么优化比较好(网站优化有哪些技巧)

怎样让网站优化在短时间内看到效果? 在企业推广营销推广中,网站优化占据了很大一部分,对于企业推广营销有着决定性影响。如果想让您的企业在诸多品牌中脱颖而出,甚至在互联网中有强大的竞争力,你必须要做好网站优化&a…

基于微信小程序云开发的投票小程序源码,图文投票微信小程序源码

功能介绍 投票活动十分火,商家,企业,机构偶尔都会来一场投票活动评选,本小程序支持图文投票,简单方便、随时随地完成投票,可以方便设定投票模式(按天按全程,投票数限定)…

MySQL基础——DQL语句

select 聚合函数(字段列表) from 表名; Mysql的相关知识 好处 : 1.持久化数据到本地 2.可以实现结构化查询,方便管理 数据库主要分为: DB(数据库),保存一系列有组织的数据容器。 DBMS(数据库管理系统),用于对DB获得数…

[蓝桥杯 2017 省 B] k 倍区间(前缀和枚举/数论优化)

题目传送门 思路分析: 第一思路比较容易想到,就是枚举所有的前缀和,然后遍历它们计数满足题意的前缀和数量,最后输出即可,但是这里的数列最多达到了100000,在2层循环下,总的枚举次数就达到了O(…

webpack 的基本使用及配置

webpack 的基本使用配置 npm 镜像源创建列表隔行变色案例新建空白项目目录,初始化 package.json 配置文件通过 npm 安装 jquery新建 src 源代码目录index.htmlindex.js检查网页效果webpack 的安装webpack 的安装dependencies 与 devDependencies参数 -S 及 --save参…

规则引擎easy-rule快速入门及整合SpEL使用

规则引擎介绍 规则引擎解决的实际上就是判断条件分支过多的问题,举个例子,营销策略里,消费不足200,可用10元消费券,消费超过200元,可以享受9折优惠,超过400元和享受8折优惠。这里可以直接用if …

【houdini】带着uv进行模拟(冰激凌案例)

整个sop的路线图 前半部分:赋予材质并分离冰激凌球 一般模型是分部分的,比方说下面这个冰激凌的,分为5个部分。三个不同的冰激凌球和水和杯子。这些部分在houdini中被称为group。 用material节点一口气赋予5个group材质。 具体的材质的指…

【Linux】 gcc 、动态库和静态库,程序是如何链接的

文章目录前言一、gcc 是什么?二、使用步骤1.预编译2.编译3.汇编4.链接三、动静态库1.概念2.区别前言 在Linux环境下,除了学好编辑器 vim 的使用,还需要学会C语言的编译器 gcc 的功能,否则代码无法翻译成可执行程序。本文将介绍 gc…