前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021年最新鲜的面试题整理:亿信华辰

2021年最新鲜的面试题整理:亿信华辰

作者头像
用户1410343
发布2021-03-22 11:38:44
1.1K0
发布2021-03-22 11:38:44
举报
文章被收录于专栏:about云

我们VIP成员很多在2021年春节年前、后,拿到了offer。而且不止一个,有的两个,有的四个,有的六个。这里给我们分享其中一位成员,整理的一家公司的面试题,后续将会陆续发布。

对于问题的答案做了一些完善,而且对于问题如何回答,依据是什么,也整理或者引用了相关文章,也就是说我们面试回答,切忌只背答案,背后没有东西,是经不起追问和质疑的。对于面试我们要正确认识,很多问题的答案都不是唯一的,如何get面试官的问题点,让面试官满意和觉得你厉害,或者说觉得你很有能力,那么你的回答就是一个好的回答。

2021亿信华辰最新面试题继续:

1、spark的共享变量有哪几个?广播变量广播出去之后怎么使用 共享变量两个:broadcast、Accumulator 如何使用:通过brocadcast.value 更详细可参考 Spark系列-共享变量

https://www.aboutyun.com/forum.php?mod=viewthread&tid=8565

点评:【考察编程功底基础知识,通过上面告诉尽量不要复制黏贴代码,如果经常手写代码,这个问题就非常容易】2、Hive的底层存储和计算方式是什么?Hive的数据是存储在Hadoop的文件系统中的,Hive为Hadoop提供SQL语句,是Hadoop可以通过SQL语句操作文件系统中的数据。hive是依赖Hadoop而存在的。Hive计算引擎有三种:(1)MaperReudce Spark Tez (2)Hive默认计算引擎是MR,为了提高计算速度,我们可以改为Tez引擎 (3)Hive on spark是计算引擎的升级,很多不会写程序的想处理大数据还得用hive。那hive on spark会比原来的hive计算速度更快,对于开发spark的人来讲无所谓,对于不会开发spark的那就是厉器,让只会写SQL的人也能方便使用spark. 点评:【考察编程功底基础知识,上面其实只要能回答出三个引擎即可,第二点和第三点其实可以更换为自己的理解。】3、讲讲整个数仓的架构,有多少层,每层具体做什么的?分层每个公司不太一样,我们公司是分了四层:ODS层、DWD和DWS层、应用层:ODS层:数据仓库源头系统的数据表通常会原封不动地存储一份,这成为ODS(Operation Data Store)层。它们是后续数据仓库层加工数据的来源,同时也存储着历史的增量数据或全量数据。DWD和DWS层:数据仓库明细层(Data Warehouse Detail, DWD)和数据仓库汇总层(Data Warehouse Summery, DWS)是数据平台的主体内容,这两个层的数据是ODS层数据经过ETL清洗、转换、加载生成的。应用层(ADS):应用层主要是各个业务方或者部门基于DWD和DWS建立的数据集市(Data Market, DM),一般来说应用层的数据来源于DW层,而且相对于DW层,应用层只包含部门或者业务方面自己关心的明细层和汇总层的数据。点评:【考察数据仓库基础知识,这也是必备知识,如果分层都说不上来,那面试基本就挂了,但是分层也没有标准答案,甚至他们的作用不同的场景诠释也可以不同,所以关键是我们有自己的理解。】4、Hive的元数据存储在哪?你们如何配置的?Hive将元数据存储在RDBMS中,比如MySQL、Derby中。Hive默认是用Derby数据库,生产我们使用的是MySQL 配置的话需要配置链接url和jdbc驱动 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive_hdp?characterEncoding=UTF-8 &createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> 还需要mysql驱动jar包mysql-connector-java-5.1.22-bin.jar 拷贝到 PATH:HIVE_HOME/bin 点评:【其实这个也是考察的细节,只要能回答上来有哪些配置项,其实这个回答就很不错,当然如果能回答出来具体的配置项以及配置参数,那会让面试官觉得做事非常认真和注重细节,拿到offer的概率会大大增加。】5、RDD的依赖关系有哪两个?做简单的比较。Spark中RDD的高效与DAG(有向无环图)有很大的关系,在DAG调度中需要对计算的过程划分Stage,划分的依据就是RDD之间的依赖关系。RDD之间的依赖关系分为两种,宽依赖(wide dependency/shuffle dependency)和窄依赖(narrow dependency)宽依赖往往对应着shuffle操作,需要在运行的过程中将同一个RDD分区传入到不同的RDD分区中,中间可能涉及到多个节点之间数据的传输,而窄依赖的每个父RDD分区通常只会传入到另一个子RDD分区,通常在一个节点内完成。当RDD分区丢失时,对于窄依赖来说,由于父RDD的一个分区只对应一个子RDD分区,这样只需要重新计算与子RDD分区对应的父RDD分区就行。这个计算对数据的利用是100%的当RDD分区丢失时,对于宽依赖来说,重算的父RDD分区只有一部分数据是对应丢失的子RDD分区的,另一部分就造成了多余的计算。宽依赖中的子RDD分区通常来自多个父RDD分区,极端情况下,所有父RDD都有可能重新计算。点评:【回答问题的方式很重要如果说试卷的方式,试卷什么题,我们就回答什么即可,如果面试的过程,可以像上面有所延申,让面试尽量了解我们。】6、hive的文件存储格式有那几个?你们公司选择哪个存储格式?简单说说为什么?(问到2次) Hive有四种存储格式:1、TextFile 2、RCFile 3、ORCFile 4、Parquet我们只是在HIve中存储和查询,使用的是ORC格式。ORC文件代表了优化排柱状的文件格式。ORC文件格式提供了一种将数据存储在Hive表中的高效方法。这个文件系统实际上是为了克服其他Hive文件格式的限制而设计的。Hive从大型表读取,写入和处理数据时,使用ORC文件可以提高性能。点评:【其实回答那种格式不是最重要的,理由反而是关键。】7、kafka的offset在哪里设置?如何做到不丢数据不重复消费数据 我们offset存储在zookeeper中。Kafka使用同步模式的时候,有3种状态保证消息被安全生产,在配置为1(只保证写入leader成功)的话,如果刚好leader partition挂了,数据就会丢失。还有一种情况可能会丢失消息,就是使用异步模式的时候,当缓冲区满了,如果配置为0(还没有收到确认的情况下,缓冲池一满,就清空缓冲池里的消息),数据就会被立即丢弃掉。在数据生产时避免数据丢失的方法:只要能避免上述两种情况,那么就可以保证消息不会被丢失。就是说在同步模式的时候,确认机制设置为-1,也就是让消息写入leader和所有的副本。还有,在异步模式下,如果消息发出去了,但还没有收到确认的时候,缓冲池满了,在配置文件中设置成不限制阻塞超时的时间,也就说让生产端一直阻塞,这样也能保证数据不会丢失。在数据消费时,避免数据丢失的方法:如果使用了storm,要开启storm的ackfail机制;如果没有使用storm,确认数据被完成处理之后,再更新offset值。低级API中需要手动控制offset值。点评:【kafka根据VIP成员反馈,这个是比较常问的问题,大家对这个问题需要重视,上面答案仅供参考,可以根据自己的理解,写出自己的答案。】8、kafka如何做到分区数据平衡?分区策略就是决定生产消息时,如何写入到不同的分区中;kafka提供了默认的分区策略,当然我们也能自定义分区策略(通过指定生产者partitioner.class参数)kafka提供了三种分区策略:轮询策略、随机策略、按消息键保序策略(1)、轮询策略 这是默认的分区策略,能够保证消息最大限度的被平均分配到所有分区(2)、随机策略(已经过时了) 也就是生产的消息被随机分配到不同的分区,实际的表现逊于轮询策略;实际上,老的kafka版本用的是随机策略,新的版本已经改成轮询策略了(3)、按消息键保序策略 生产消息时,为每条消息定义消息键key,消息键是一个有着明确含义的业务字符串,可以是业务ID之类的;通过消息键,相同的消息键的消息能被保证写入相同的分区9、你们有用到CDH集群吗?会自己搭建吗?我们使用的是CDH集群,搭建过程中网络是个比较耗时的问题,所以我们搭建了自己的私服,这样会更快。同时要注意版本的兼容性。最近还帮我们公司其它工作组搭建了集群。

----------------------------END----------------------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 About云 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档