锁屏面试题百日百刷,每个工作日保持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cn。已收录了每日更新的面试题的所有内容,还蕴含特色的解锁屏幕温习面试题、每日编程题目邮件推送等性能。让你在面试中后人一步!接下来的是今日的面试题:
1.Spark应用parquet文件存储格局能带来哪些益处?
1)如果说HDFS 是大数据时代分布式文件系统首选规范,那么parquet则是整个大数据时代文件存储格局实时首选规范。
2)速度更快:从应用spark sql操作一般文件CSV和parquet文件速度比照上看,绝大多数状况会比应用csv等一般文件速度晋升10倍左右,在一些一般文件系统无奈在spark上胜利运行的状况下,应用parquet很多时候能够胜利运行。
3)parquet的压缩技术十分稳固杰出,在spark sql中对压缩技术的解决可能无奈失常的实现工作(例如会导致lost task,lost executor)然而此时如果应用parquet就能够失常的实现。
4)极大的缩小磁盘I/o,通常状况下可能缩小75%的存储空间,由此能够极大的缩小spark sql解决数据的时候的数据输出内容,尤其是在spark1.6x中有个下推过滤器在一些状况下能够极大的缩小磁盘的IO和内存的占用,(下推过滤器)。
5)spark 1.6x parquet形式极大的晋升了扫描的吞吐量,极大进步了数据的查找速度spark1.6和spark1.5x相比而言,晋升了大概1倍的速度,在spark1.6X中,操作parquet时候cpu也进行了极大的优化,无效的升高了cpu耗费。
6)采纳parquet能够极大的优化spark的调度和执行。咱们测试spark如果用parquet能够无效的缩小stage的执行耗费,同时能够优化执行门路。
2.Spark应用程序的执行过程是什么?
1)构建Spark Application的运行环境(启动SparkContext),SparkContext向资源管理器(能够是Standalone、Mesos或YARN)注册并申请运行Executor资源;
2)资源管理器调配Executor资源并启动StandaloneExecutorBackend,Executor运行状况将随着心跳发送到资源管理器上;
3)SparkContext构建成DAG图,将DAG图分解成Stage,并把Taskset发送给Task Scheduler。Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor运行同时SparkContext将利用程序代码发放给Executor;
4)Task在Executor上运行,运行结束开释所有资源。
3.如何了解Standalone模式下,Spark资源分配是粗粒度的?
spark默认状况下资源分配是粗粒度的,也就是说程序在提交时就调配好资源,前面执行的时候应用调配好的资源,除非资源呈现了故障才会重新分配。比方Spark shell启动,已提交,一注册,哪怕没有工作,worker都会分配资源给executor。
4.FAIR调度模式的长处和毛病?
所有的工作领有大抵相当的优先级来共享集群资源,spark多以轮训的形式为任务分配资源,不论长工作还是端工作都能够取得资源,并且取得不错的响应工夫,对于短工作,不会像FIFO那样期待较长时间了,通过参数spark.scheduler.mode 为FAIR指定。
5.请列举你碰到的CPU密集型的利用场景,你有做哪些优化?
1)CPU 密集型指的是零碎的 硬盘/内存 效力 绝对 CPU 的效力 要好很多,此时,零碎运作,大部分的情况是 CPU Loading 100%,CPU 要读/写 I/O (硬盘/内存),I/O在很短的工夫就能够实现,而 CPU 还有许多运算要解决,CPU Loading 很高。->cpu是瓶颈。
I/O 密集型指的是零碎的CPU效力绝对硬盘/内存的效力要好很多,此时,零碎运作,大部分的情况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CPU Loading 不高。->IO是瓶颈。
2)CPU密集型次要特点是要进行大量的计算,常见利用场景有:图计算、大量的逻辑判断程序,机器学习等,Mahout其实就是针对CPU密集的一个apache我的项目。
优化的点次要有,1)升高工作的并行执行,务越多,花在工作切换的工夫就越多,CPU执行工作的效率就越低,2)优化计算逻辑,缩小计算逻辑的复杂度,3)尽量减少应用高强度压缩形式,对原始数据的压缩和解压缩会减少CPU的累赘