Troubleshooting and Debugging of Spark

基础问题:

1、输入目录大小为1G,Spark为何产生了8个100个任务?

2、Spark程序的Reduce task为何是200个,如何减少?

3、Spark如何访问Hbase?

4、Spark cache如何使用?

5、Spark在任何情况下均比MapReduce高效

6、Spark号称“内存计算框架”,它将所有的数据写到内存吗?

7、当前存在很多DAG引擎,包括Spark、Tez、Flink,为何大家躲在讨论Spark?

 

中级问题:

1、如何解决数据倾斜?

(1)选择合适的key进行partition

(2)将计算过程分成两个阶段(两组reduce),第一阶段平均reduce,第二阶段汇总,具体参考hive的skew join实现

详细可以解决的方案:

1) 使用Hive ETL预处理数据

2) 过滤少数导致倾斜的key

3) 提高shuffle操作的并行度

4) 两阶段聚合(局部聚合+全局聚合)

5) 将reduce join转为map join

6) 采样倾斜key并分拆join操作

7) 使用随机前缀和扩容RDD进行join

8) 多种方案组合使用

 

高级问题:

--

 

项目中遇到的问题:

--

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: