Spark执⾏任务时出现java.lang.OutOfMemoryError: GC overhead limit exceeded和java.lang.OutOfMemoryError: java heap space原因和解决⽅法?
解析:
答:原因:加载了太多资源到内存,本地的性能也不好,gc时间消耗的较多
解决⽅法:
www.aboutyun.com/thread-24246-1-1.html 27/57
2019/4/24 spark相关的⾯试题跟答案,带着问题学习效果更佳哟。?)-⾯试区-about云开发
1)增加参数,-XX:-UseGCOverheadLimit,关闭这个特性,同时增加heap⼤⼩,-Xmx1024m
2)下⾯这个两个参数调⼤点
export SPARK_EXECUTOR_MEMORY=6000M
export SPARK_DRIVER_MEMORY=7000M
可以参考这个:http://www.cnblogs.com/hucn/p/3572384.html
请列出在你以前⼯作中所使⽤过的开发map /reduce的语⾔
解析:
答:java,Scala,Python,shell
你认为/etc/hosts配置错误,会对集群有什么影响?
解析:
答:1)直接导致域名没法解析,主节点与⼦节点,⼦节点与⼦节点没法正常通讯,2)间接导致配置错误的相关节点删的服务不正常,甚⾄没法启动,job执⾏失败等等
--------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
Spark Core⾯试篇05
原创 2017-06-12 梅峰⾕ ⼤数据梅峰⾕
Spark RDD是Spark的编程基础,掌握RDD以及RDD编程技巧是企业实际开发的必备技能,本篇整理RDD常⻅的问题,汇编成题,以加深对RDD及RDD编程的理解。先把题⽬列举出来,各
位感兴趣的⾃⼰去做⼀遍把,下⼀篇梅峰⾕会通过⽹盘的⽅式,把答案公布出来,感兴趣的童鞋请及时关注。
简答说⼀下hadoop的map-reduce编程模型
解析:
⾸先map task会从本地⽂件系统读取数据,转换成key-value形式的键值对集合
使⽤的是hadoop内置的数据类型,⽐如longwritable、text等
将键值对集合输⼊mapper进⾏业务处理过程,将其转换成需要的key-value在输出
www.aboutyun.com/thread-24246-1-1.html 33/57
2019/4/24 spark相关的⾯试题跟答案,带着问题学习效果更佳哟。?)-⾯试区-about云开发
之后会进⾏⼀个partition分区操作,默认使⽤的是hashpartitioner,可以通过重写hashpartitioner的getpartition⽅法来⾃定义分区规则
之后会对key进⾏进⾏sort排序,grouping分组操作将相同key的value合并分组输出,在这⾥可以使⽤⾃定义的数据类型,重写WritableComparator的Comparator⽅法来⾃定义排序规则,重
写RawComparator的compara⽅法来⾃定义分组规则
之后进⾏⼀个combiner归约操作,其实就是⼀个本地段的reduce预处理,以减⼩后⾯shufle和reducer的⼯作量
reduce task会通过⽹络将各个数据收集进⾏reduce处理,最后将数据保存或者显⽰,结束整个job
hadoop的TextInputFormat作⽤是什么,如何⾃定义实现
解析:
InputFormat会在map操作之前对数据进⾏两⽅⾯的预处理
1是getSplits,返回的是InputSplit数组,对数据进⾏split分⽚,每⽚交给map操作⼀次
2是getRecordReader,返回的是RecordReader对象,对每个split分⽚进⾏转换为key-value键值对格式传递给map
常⽤的InputFormat是TextInputFormat,使⽤的是LineRecordReader对每个分⽚进⾏键值对的转换,以⾏偏移量作为键,⾏内容作为值
⾃定义类继承InputFormat接⼝,重写createRecordReader和isSplitable⽅法
在createRecordReader中可以⾃定义分隔符