1 / 6
文档名称:

spark面试题Miles.doc

格式:doc   大小:24KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

spark面试题Miles.doc

上传人:2072510724 2018/10/2 文件大小:24 KB

下载得到文件列表

spark面试题Miles.doc

文档介绍

文档介绍:hadoop和spark的都是并行计算,那么他们有什么相同和区别? 
两者都是用mr模型来进行并行计算,hadoop的一个作业称为job,job里面分为map task和reduce task,每个task都是在自己的进程中运行的,当task结束时,进程也会结束。 
spark用户提交的任务成为application,一个application对应一个sparkcontext,app中存在多个job,每触发一次action操作就会产生一个job。 
这些job可以并行或串行执行,每个job中有多个stage,每个stage里面有多个task,组成taskset由TaskSchaduler分发到各个executor中执行,executor的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存进行计算。 
hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作,多个job需要自己管理关系。 
spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如join,groupby等,而且通过DAG图可以实现良好的容错。
简单说一下hadoop和spark的shuffle过程? 
hadoop:map端保存分片数据,通过网络收集到reduce端。 
spark:spark的shuffle是在DAGSchedular划分Stage的时候产生的,TaskSchedule要分发Stage到各个worker的executor。 
减少shuffle可以提高性能。
17、RDD机制? 
rdd分布式弹性数据集,简单的理解成一种数据结构,是spark框架上的通用货币。 
所有算子都是基于rdd来执行的,不同的场景会有不同的rdd实现类,但是都可以进行互相转换。 
rdd执行过程中会形成dag图,然后形成lineage保证容错性等。 
从物理的角度来看rdd存储的是block和node之间的映射。
18、spark有哪些组件? 
(1)master:管理集群和节点,不参与计算。 
(2)worker:计算节点,进程本身不参与计算,和master汇报。 
(3)Driver:运行程序的main方法,创建spark context对象。 
(4)spark context:控制整个application的生命周期,包括dagsheduler和task scheduler等组件。 
(5)client:用户提交程序的入口。
19、spark工作机制? 
用户在client端提交作业后,会由Driver运行main方法并创建spark context上下文。 
执行rdd算子,形成dag图输入dagscheduler,按照rdd之间的依赖关系划分stage输入task scheduler。 
task scheduler会将stage划分为task set分发到各个节点的executor中执行。
20、spark的优化怎么做? 
通过spark-env文件、程序中sparkconf和set property设置。 
(1)计算量大,形成的lineage过大应该给已经缓存了的rdd添加checkpoint,以减少容错