面试准备-spark篇

spark开发分两个方面?哪两个方面呢?

比如 一个读取hdfs上的文件,然后count有多少行的操作,你可以说说过程吗。

那这个count是在内存中,还是磁盘中计算的呢?磁盘中。

spark比Mapreduce快? 为什么快呢? 快在哪里呢?

  1. 内存迭代。
  2. RDD设计。
  3. 算子的设计。

spark sql又为什么比hive快呢?

执行机制不一样
spark sql最终被翻译成DAG作业执行
hive 是翻译成map-reduce 任务

RDD的数据结构是怎么样的?

Partition数组。 dependence

hadoop的生态呢

Spark工作的一个流程。

用户提交一个任务。 入口是从sc开始的。 sc会去创建一个taskScheduler。根据不同的提交模式, 会根据相应的taskchedulerImpl进行任务调度。
同时会去创建Scheduler和DAGScheduler。DAGScheduler 会根据RDD的宽依赖或者窄依赖,进行阶段的划分。划分好后放入taskset中,交给taskscheduler 。
appclient会到master上注册。首先会去判断数据本地化,尽量选最好的本地化模式去执行。
打散 Executor选择相应的Executor去执行。ExecutorRunner会去创建CoarseGrainerExecutorBackend进程。 通过线程池的方式去执行任务。

反向:
Executor向 SchedulerBackend反向注册

Spark On Yarn模式下。 driver负责计算调度。appmaster 负责资源的申请。

RDD算子里操作一个外部map比如往里面put数据。然后算子外再遍历map。有什么问题吗。

shuffle的过程。调优。

5个partition里面分布有12345678910.用算子求最大值或者和。不能用广播变量和累加器。或者sortbykey.

知道spark怎么读hbase吗?spark on hbase.。华为的

sort shuffle的优点?

stage怎么划分的? 宽依赖窄依赖是什么?

怎么用spark做数据清洗

具体:
去除脏脏数据(过滤)
元组内容重组(分散,组合 )
元组内容过滤列(map)
其他数据类型解析(比如json解析)

spark读取 数据,是几个Partition呢?hdfs几个block 就有几个 Partition?

.spark on yarn的两种模式?

client (driver+appmaster)(多用于测试)
cluster (appmaster client)(多用于生产)

spark 数据倾斜

充分利用资源

提高并发度

reduce端join转换成map端join(大表与小表 广播变量)

因为是链式操作,比较方便进行 先打散(对给key加个随机前缀)进行局部聚合,后整体聚合(去掉随机前缀)

jdbc?mysql的驱动包名字叫什么?

mysql-connector-java-5.1.44.jar

画图,画Spark的工作模式,部署分布架构图

画图,画图讲解spark工作流程。以及在集群上和各个角色的对应关系。

画图,讲讲shuffle的过程。那你怎么在编程的时候注意避免这些性能问题

dataset和dataframe?

通过什么方式学习spark的?

有哪些数据倾斜,怎么解决?

宽依赖窄依赖?

yarn的原理?

BlockManager怎么管理硬盘和内存的

哪些算子操作涉及到shuffle(宽依赖)

groupByKey
reduceByKey

看过源码? 你熟悉哪几个部分的源码?

spark怎么整合hive?

大概这样。 spark on hive 。 hive还是hive 执行引擎是spark

Spark如何处理结构化数据,Spark如何处理非结构化数据?

Spark性能优化主要有哪些手段?

简要描述Spark分布式集群搭建的步骤

对于Spark你觉得他对于现有大数据的现状的优势和劣势在哪里?

对于算法是否进行过自主的研究设计?

简要描述你了解的一些数据挖掘算法与内容 基本我有印象的就这几个问题,聊了2个多小时,脑子都差点被问干了

spark 二次排序 自定义排序

实现orderedBY对象

sparkSQL的交互性

sparkSession
(RDD+schema) dataDrame

spar