概述
1、Spark的运行模式?Spark on yarn的工作流程,client和cluster的区别(driver的位置区别)
- 不管是Spark on yarn还是mapreduce都要知道工作流程。
2、Spark所用到的版本?Spark内存管理,画出来,然后给一个案例:executor要申请300M内存的过程。
- spark版本原来1.6,现在是2.X,尽量说2.1和2.2,executor memory能否跑的起来
3、Block Manager/UnifiedMemoryManager(新的内存管理)
4、shuffle管理的集中方式?
- hash分为两种、sort还分两种,PK哥公司使用的就是sort.
5、reduceByKey和groupByKey的区别?
- 有无combiner,减少shuffle的数据
6、什么是宽窄依赖?
- 父子间partition的依赖关系
7、数据倾斜场景:资源只够处理100G,高峰来1T收据怎么处理?
- 数据打散,加随机数
8、小文件的合并方案
- coalesce,而不是partiition,partition可大可小,要把true和false带进去
9、Kafka集群,挂掉某一个,怎么恢复和保证数据0丢失?
10、说几个在Spark开发中遇到的问题和解决方案?
- 举例:生产中瘦包胖包、写数据的几种姿势,自定义外部数据源,offset提交;reduceByKey和groupByKey,foreach和foreachPartition、map和mapPartition
11、RDD的五大特性
12、Spark作业执行流程?
13、spark sql与RDD之间如何转换?
- 两种:反射和编程,反射是预先知道表结构
14、flume生产上是如何设计的?
一个agent下三个角色
- 生产上用的最多的是avro-source,如果sink的时候要保障高可靠,XXX
- 对于channel中可以选择复制,
网络传输一定要讲avro-source和avro-sink
自定义MySQL source,自定义数据源是一个很好的加分项
15、taildir是不支持递归的,基于源码修改改成支持递归。
16、Spark中的隐式转换和使用?
- RDD.scala中doubleRDDToDoubleRDDFunctions
Spark SQL中的隐式转换转换符号:$…
17、你使用Spark干过什么?
- ETL、数据分析、合并小文件
18、Spark和马屁reduce的区别?
19、画图讲解Spark的工作流程
- 我们只用Spark on Yarn
20、Spark Streaming程序代码更新后如何操作?
- 意思是:代码更新以后,老代码在运行,上线新代码,使得两个东西不会发生中断,进行平滑升级,怎么做到一半一半上
21、Spark Submit如何引外部的Jar包
–jars --packages
22、Spark对于OOM应该从什么角度下手调整?
1、从两个角度去看,是driver端还是executor端,是driver端把内存调大;这个是默认1G,自行调大
2、是executor端,要怎么加,老版本的调整百分比,新版本的借。
- spark-shell --help 要判断是哪一端,spark sql把结果返回的就是driver端
23、org.apache.spark.SparkExeception:Task not serializable, 这个错误是什么意思?如何解决?哪些场景会出现这个错误?
- 关键的就是driver的东西传不到executor端,有例子:foreach , connection传不过去
24、ThriftServer的HA如何实现,说下实现思路?
- 1、通过ZK
- 2、搭几个thriftServer,通过Nginx负载均衡过去
25、Zookeeper的watch机制是如何实现的?
- 场景题:现在有一个client: 2个server,当我动态加入一台机器,或者删除一台机器,或者某台机器宕机了,client如何去感知到,说下实现思路(不使用Zookeeper)
- 如何通信,说说具体实现
26、除了Spark之外的大数据处理框架:
- Flink、mapreduce、hive
27、Spark shuffle的几种场景,Spark出现了OOM,如何去调优
28、join怎么去优化?
-大小表怎么优化:分桶、小表广播到大表
29、二次修改flume源码支持parquet的格式
- hadoop的作业,文件写出来写成文本格式,再把文本格式通过一张表转换为ORC和parquet,通过API转换
30、Kafka的零数据丢失怎么保证?Kafka和Spark Streaming的零数据丢失怎么保证(offset的管理,存到kafak itself即可。)
31、Spark将数据写MySQL要注意哪些?
32、Spark的理解?工作中使用Spark做离线处理:使用DataFrame编程,尽可能不适用shuffle算子,spark提交时的内存管理,
33、再工作中使用Spark遇到了哪些问题?
1、写数据库性能满
2、偏移量,spark streaming挂了后数据消费不了
3、task
最后
以上就是精明小土豆为你收集整理的若泽数据第二阶段面试题的全部内容,希望文章能够帮你解决若泽数据第二阶段面试题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复