大数据岗快手一面分享

​ 今天下午面了一场快手的数据研发岗,面试官非常温和,没有问什么很偏的问题,体感还不错。最近准备大数据岗面试的这段时间,发现市面上并没有很多关于大数据的面试资料,所以我从现在开始想尝试着把每次面试官问的问题汇总给大家,供大家做一些参考。

  1. HDFS的存储机制是怎样的?

​ HDFS是为大规模数据(大文件,顺序读写)设计的分布式文件系统,它把文件切成块(block),分布存储在多台机器上,通过副本(replication)提供高可用。其中最主要就是NameNode 和 DataNode,NameNode 负责存储文件的元数据(block块的大小,block块存储在哪个DataNode负责的节点上等),DataNode就负责数据的存储与读写。

  1. HDFS是怎样进行副本管理的?

​ 存储block数据块时,HDFS会根本设定的参数(副本数)对block数据块进行复制,存多份。在复制时,由NameNode指定这些副本要存储在哪些DataNode上,并在这些DataNode之间构建数据管道(pipeline)进行传输数据。

​ 副本放置的策略是使用机架感知策略,尽可能将数据分布在不同的机架。

​ DataNode会定时向NameNode发送heartbeat,表示此节点上的block数据块仍然可用。

  1. HDFS是怎么对灾难进行恢复的?

​ (HA模式下)如果NameNode崩溃,Standby Namenode节点会立刻接管NameNode。

​ (非HA模式)hadoop集群会根据保存在fsimage中的日志信息再加上editsLog中的日志增量对NameNode进行恢复。

  1. YARN是怎么对计算任务进行调度的(也就是怎么对这些计算任务对应的Application分配container资源的)?

​ (1)CapacitySchedduler(容量调度):能保证各个计算任务的最低资源,队列间可以临时借用空余资源,也支持预占、保留等运维能力。

​ (2)FIFO:按提交顺序调度,先到先服务。存在先提交的作业会把后提交的作业阻塞的缺点。

​ (3)FairScheduler(公平调度):支持按权重(weight)、队列、用户、标签配置公平策略。

  1. Hive解决数据倾斜的常用方式有哪些?

​ 要解决数据倾斜,最好先确定数据倾斜的类型,是Join导致的倾斜还是GroupBy/Aggregation导致的倾斜,又或者是数据表本身就是按少量值极端分布的倾斜。

如果是Join倾斜的话,

​ 我们可能会使用skew join,Hive会对导致join倾斜的这些数据量很大的key做额外的reducer单独处理。

如果表是大小表的话,我们就可能会使用map join,把小表缓存起来(并广播),直接在map端完成两张表的join操作。

最后也是最常用的优化操作,就是Salt(打散、加盐)操作,把导致倾斜的这些key打散到多个子key上做局部计算,最后再汇总。

  1. Spark有哪些Shuffle调优手段呢?

​ 所有的Shuffle调优手段都是为了减少Shuffle的数据量和Shuffle的次数。

(1)我们会尽量让数据的计算操作在Map task中多执行,这样shuffle的数据就会减少,比如使用reducyBy/combineByKey做map端的提前聚合,尽量少使用groupbyKey。

(2如果计算任务的表的join任务并且有一侧表足够小时,我们就可以把这张小表广播到每个executor,直接做Map join。

  1. Spark是怎么对数据的缓存和检查点策略是怎样的呢?

​ 对于缓存,rdd可以调用cache()函数把RDD中的中间数据放到内存中,加速后续重复访问,缓存操作不会改变RDD的血缘,仅仅是对中间数据做个副本备份。

​ 对于检查点,rdd可以调用checkpoint()函数将RDD中的数据持久化到磁盘中并截断RDD的血缘。当然,这个磁盘文件是由HDFS进行管理的。设置检查点可以避免重算代价过高。

这七个问题是比较考验hadoop和Spark的扎实基本功的,有些问题的答案可能不是很全面,但是在面试中进行临时回答还是足够的。期待快手的二面,到时我也会总结给大家。

【注意】:大家在看这些面试题的时候,一定要结合底层原理去看,可以用下面这MapReduce的经典案例去做分析。

#数据人offer决赛圈怎么选##数据人的面试交流地#
全部评论

相关推荐

1.用一个30秒的抖音短视频脚本,向海尔高端智慧家庭的老用户,清晰地解释什么是“家车物联”,并让他产生兴趣。2.我们的品牌定位是“家车物联高端定制生态品牌”。如果让你从0到1搭建“卡泰驰”的官方小红书账号,你的核心内容策略是什么?这与一个传统汽车品牌(如奔驰)或一个新势力(如蔚来)的账号,最大的区别在哪里?3.请你构思一个具体的AI应用场景,来帮助我们“与用户共鸣共创”,而不仅仅是单向的广告投放。4.如何理解“SI系统”?对于我们这样一个高端定制品牌,你认为我们的线下体验店,在设计上最重要的三个元素应该是什么?5.假设你负责“短视频编导”方向,你需要为一个非常“技术流”的产品-““智慧充电桩”策划一期视频。你会如何设计“钩子”,让这个偏B端的内容在C端用户中也能获得高完播率?6.你需要再即将到来的“上海国际车展”上,策划我们的展台,我们的核心目标是“展示家车互联”。如何设计一个互动体验,让观众能真正“感知”到这个抽象概念?7.假设你运营的企业新媒体账号,视频播放量很高,但7用户评论和私信中,对于“如何购买”和“哪里体验”的Leads很低。如何分析这个现象?8.你负责的一个整合营销项目,需要与海尔的智慧家庭部门和卡奥斯工业互联网平台进行跨部门协作。你会如何设计一个沟通机制,来确保你能高效地调动这些内部资源?9.如何看待汽车改装这个细分市场?你认为,我们应该通过怎样的营销手段,来触达和打动这个圈层的核心用户?10.你在策划一场线下高端车主体验活动,预算非常有限。你会如何运用你的“social达人”能力和“新媒体思维”,来最大化这场活动的“二次传播”效果?11.你认为,在抖音平台上做二手车直播,最大的“信任障碍”是什么?你会如何通过内容和运营手段来克服它?12.你过往的经历中,哪一次“成功组织校园活动”的经历,最能体现你“让每个参与者变成传播节点”的能力?请详细拆解你的策略。13.我们目前面临一个核心的营销挑战:“家车物联”这个概念太新、太抽象,消费者感知不强,市场教育成本极高。作为团队的新人,现在需要你提出一个“破局的整合营销方案,在6个月内,让这个概念在我们的目标用户中(例如,高端车主、科技爱好者)真正“火”起来。
查看13道真题和解析
点赞 评论 收藏
分享
头像 会员标识
10-15 21:48
深圳大学 Java
因为荣耀在深圳有工作地点,一二面都是线下的,社恐们要做好准备啦但好在一个上午就把面试流程弄完了,效率还是非常高的一面:1、java 的基本数据类型有哪些2、聊聊封装、继承、多态3、方法的重载和重写有什么区别4、java 堆栈的区别5、进程和线程的区别6、Redis 做持久化为什么那么快(基于内存操作、在生成RDB文件的时候fork子进程做写时复制)7、Spring 的核心理念是什么(IoC & AOP)8、IoC 具体来说是怎样的(容器管理对象的创建、使用、销毁等生命周期......)9、说说 AOP,AOP 跟 OOP 有什么不同10、了解微服务吗11、聊聊 Spring Cloud,使用过其中的哪些组件(网关、注册中心、负载均衡器、Feign微服务调用)12、正向代理和反向的区别13、为什么需要注册中心,有什么作用,能解决什么问题14、挑一个熟悉的消息队列讲讲(RocketMQ)15、了解 k8s 吗、了解 Service Mesh 吗、了解后端是如何调用大模型的吗(不会)16、最后给了一道题,在纸上写ABCDEF * 3 = BCDEFA,求 A、B、C、D、E、F分别为多少二面(技术 + HR):没怎么问八股了,问题比较发散1、自我介绍2、实习中遇到的最有挑战性的事3、如何遇到的问题的4、实习中最大的收获是什么5、实习强度如何(说看部门,偶尔会晚点走)6、你是如何看待加班的7、能接受的工作强度大概是怎样的8、问了一些别的(学院多少人、转专业条件是什么、为什么出来实习、觉得自己的编程能力在班上大概是怎样的水平、秋招的情况怎么样)9、现在面试了哪些别的公司10、在选择offer的时候具体会看哪些点11、为什么不选择稳定的工作反问:主要的业务和部门荣耀AI终端具体是怎样的
查看29道真题和解析
点赞 评论 收藏
分享
评论
8
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务