
大数据之面试
文章平均质量分 79
大数据面试
大数据架构师Pony
不勤于始,将悔于终。
展开
-
开源算法列表
原创 2021-06-28 14:51:26 · 191 阅读 · 0 评论 -
大数据面试-20210317
基础题1、RDD、DataFrame、DataSet三者的区别与联系?联系:a. RDD、DataFrame、Dataset全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利。如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。b.三者都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action如foreach时,三者才会开始遍历运算,极端情况下,如果代码里面有创建、转换,但...原创 2021-06-09 14:27:43 · 210 阅读 · 0 评论 -
大数据面试-20210316
1、简单讲述一下Yarn Application生命周期1、client向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。2、ResourceManager启动一个container用于运行ApplicationMaster。3、启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。4、Appl...原创 2021-06-09 10:50:56 · 182 阅读 · 0 评论 -
大数据面试-20210315
1、简述Spark中的缓存机制(cache和persist)与checkpoint机制,并指出两者的区别与联系区别:1.cache的作用等价于 persist 不带参数的情况,RDD的 cache() 方法其实调用的就是persist方法,缓存策略均为MEMORY_ONLY。即persist可以代替cache,反之则不行。2.checkpoint算子不仅能将RDD持久化到磁盘,还能切断RDD之间的依赖关系。3.完成application后checkpoint的数据依然在磁盘上,而cac.原创 2021-06-09 09:21:23 · 255 阅读 · 1 评论 -
大数据面试-20210312
基础题1、介绍一下拉链表的原理,以及适用于哪些场景?拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的;顾名思义,所谓拉链表,就是记录历史,记录一个事务从开始一直到当前状态的所有变化的信息。拉链表可以避免按每一天存储所有记录造成的海量存储问题,同时也是处理缓慢变化数据(SCD2)的一种常见方式。原理:说白了就是在原有表基础上增加两个字段,一个start_time,一个end_time数据如果不变就不动,如果有新数据进来,就将原数据的end_time天数-1.原创 2021-06-08 16:42:29 · 406 阅读 · 0 评论 -
大数据面试-20210311
基础题1、谈谈Hadoop里面的压缩格式以及使用场景压缩格式比较原创 2021-06-08 16:38:49 · 329 阅读 · 0 评论 -
大数据面试-20210310
基础题1、清楚描述 MapReduce 的 shuffle 过程Map方法之后,数据首先进入到分区方法,把数据标记好分区,然后把数据发送到环形缓冲区;环形缓冲区默认大小100m,环形缓冲区达到80%时,进行溢写;溢写前对数据进行排序,排序按照对key的索引进行字典顺序排序,排序的手段快排;溢写产生大量溢写文件,需要对溢写文件进行归并排序;对溢写的文件也可以进行Combiner操作,前提是汇总操作,求平均值不行。最后将文件按照分区存储到磁盘,等待Reduce端拉取。2、HBa...原创 2021-06-08 16:32:31 · 141 阅读 · 0 评论 -
大数据面试-20210308:hdfs ,Spark streaming, Flink三者中的checkpoint原理 hdfs checkpoint原理
每达到触发条件,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge (这个过程称为checkpoint),如下图所示:原创 2021-06-08 16:04:34 · 834 阅读 · 0 评论 -
海量数据处理 - 10亿个数中找出最大的10000个数(top N问题)
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿,m为10000)。...转载 2020-11-21 12:56:34 · 1772 阅读 · 0 评论 -
常见十大排序算法(含原理动画图+代码)
原理动态图:原理解析:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。...原创 2020-11-09 22:26:16 · 772 阅读 · 0 评论 -
redis缓存穿透和缓存雪崩的原因和解决办法
缓存穿透:缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。解决方案:布隆过滤器布隆过滤器是一种数据结构,垃圾网站和正常网站加起来全世界据统计也有几十亿个。网警要过滤这些垃圾网站,总不能到数据库里面一个一个去比较吧,这就可以使用布隆过滤器。假设我们存储一亿个垃圾网站地址。转载 2020-05-31 20:55:22 · 578 阅读 · 0 评论