锁屏面试题百日百刷,每个工作日保持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cn。已收录了每日更新的面试题的所有内容,还蕴含特色的解锁屏幕温习面试题、每日编程题目邮件推送等性能。让你在面试中后人一步!接下来的是今日的面试题:
1.Spark RDD 和 MapReduce2的区别
1)mr2只有2个阶段,数据须要大量拜访磁盘,数据起源绝对繁多 ,spark RDD ,能够无数个阶段进行迭代计算,数据起源十分丰盛,数据落地介质也十分丰盛spark计算基于内存;
2)MapReduce2须要频繁操作磁盘IO须要 大家明确的是如果是SparkRDD的话,你要晓得每一种数据起源对应的是什么,RDD从数据源加载数据,将数据放到不同的partition针对这些partition中的数据进行迭代式计算计算实现之后,落地到不同的介质当中。
2.spark和Mapreduces谁快? 为什么快呢? 快在哪里呢?
Spark更放慢的次要起因有几点:
1)基于内存计算,缩小低效的磁盘交互;
2)高效的调度算法,基于DAG;
3)容错机制Lingage,次要是DAG和Lianage,及时spark不应用内存技术,也大大快于mapreduce。
3.Spark sql又为什么比hive快呢?
计算引擎不一样,一个是spark计算模型,一个是mapreudce计算模型。
另外spark sql中有RBO CBO的优化。
4.RDD的数据结构是怎么样的?五大属性
RDD对象,蕴含如下5个外围属性。
1)一个分区列表,每个分区里是RDD的局部数据(或称数据块)。
2)一个依赖列表,存储依赖的其余RDD。
3)一个名为compute的计算函数,用于计算RDD各分区的值。
4)分区器(可选),用于键/值类型的RDD,比方某个RDD是按散列来分区。
5)计算各分区时优先的地位列表(可选),比方从HDFS上的文件生成RDD时,RDD分区的地位优先选择数据所在的节点,这样能够防止数据挪动带来的开销。
5.RDD算子里操作一个内部map比方往里面put数据,而后算子外再遍历map,会有什么问题吗?
频繁创立额定对象,容易oom。
6.画图,讲讲Spark shuffle的过程。
SortShuffleManager的运行机制次要分成两种,一种是一般运行机制,另一种是bypass运行机制。当shuffle read task的数量小于等于spark.shuffle.sort.bypassMergeThreshold参数的值时(默认为200),就会启用bypass机制。
Sort shuffle的bypass机制
bypass运行机制的触发条件如下:
1)shuffle map task数量小于spark.shuffle.sort.bypassMergeThreshold参数的值。
2)不是聚合类的shuffle算子(比方reduceByKey)。
此时task会为每个reduce端的task都创立一个长期磁盘文件,并将数据按key进行hash而后依据key的hash值,将key写入对应的磁盘文件之中。当然,写入磁盘文件时也是先写入内存缓冲,缓冲写满之后再溢写到磁盘文件的。最初,同样会将所有长期磁盘文件都合并成一个磁盘文件,并创立一个独自的索引文件。