众所周知,Spark作为一个集群计算平台和内存计算系统,它是专门为速度和通用目标设计的。从事大数据岗位的工作者,像是ETL工程师、Spark工程师、Hbase工程师、用户画像系统工程师都需要熟练掌握Spark相关知识点,因此Spark也是常常会出现的必考面试题。下面我整理了一些Spark面试题,并附上了答案,一起来看看做一做吧!
![559aa93a3811158677f584ee58e16fa5.png](https://i-blog.csdnimg.cn/blog_migrate/28d12a86f8756fbf83f6ab5ebfb5e784.jpeg)
面试题1:Spark 运行架构的特点是什么?
答案:每个 Application 获取专属的 executor 进程,该进程在 Application 期间一直驻留,并以多线程方式运行 tasks。Spark 任务与资源管理器无关,只要能够获取 executor 进程,并能保持相互通信就可以了。提交 SparkContext 的 Client 应该靠近 Worker 节点(运行 Executor 的节点),最好是在同一个 Rack 里,因为 Spark 程序运行过程中 SparkContext 和Executor 之间有大量的信息交换;如果想在远程集群中运行,最好使用 RPC 将SparkContext 提交给集群,不要远离 Worker 运行 SparkContext。Task 采用了数据本地性和推测执行的优化机制。
面试题2:描述一下Spark运行的基本流程。
答案:这个是面试大数据岗位的一道基础题。Spark 运行基本流程可以参考下面的示意图: