文章目录
-
-
- 问题1、spark-submit几种提交模式的 区别是什么?
- 问题2、spark streming在实时处理时会发生什么故障,如何停止,解决
- 问题3、spark工作机制
- 问题4、Kafka和sparkStreaming的整合,手动提交的offset调用了什么方法?
- 问题5、spark-yarn程序的的调度流程
- 问题6、Scala中协变逆变的应用场景。
- 问题7、Spark中隐式转化的应用场景
- 问题8、谈谈你对SparkRDD的理解
- 问题9、Spark与flink和storm的区别
- 问题10、Shuffle是一个挺消耗资源的操作,对shuffle有什么优化措施?
- 问题11、DStream是一个什么样的结构?里面有哪些对象?
- 问题12、SparkStreaming怎么做到流式计算?
- 问题13、如果数据达到一个阈值,在sparkstreaming中你是怎么处理的? sparkstreaming参数是怎么设定的?
- 问题14、sparkstreaming多长时间设置一个批次?
- 问题15、spark技术栈有哪些组件,每个组件都有什么功能,适合什么应用场景?
- 问题16、sparkstreaming写了多少的任务?
- 问题17、spark中如何划分stage
- 问题18、spark 如何防止内存溢出,你出现内存溢出是什么场景
- 问题19、spark中cache和persist的区别
- 问题20、spark-submit的时候如何引入外部jar包
- 问题21、简要描述Spark分布式集群搭建的步骤
- 问题22、用过哪些算子,哪些会产生shuffer
- 问题23、DAG怎么形成的?
- 问题24、SparkStreaming如何保证数据的防丢失
- 问题25、spark的checkpoint机制
- 问题26、checkpoint与persist和cache的区别
- 问题27、reduceByKey和groupByKey的区别
- 问题28、sparkSql, hSql 有什么区别
- 问题29、Spark内存溢出怎么解决
-
问题1、spark-submit几种提交模式的 区别是什么?
常用的spark-submit提交方式有两种:standalone、yarn
- 其中standalone的参数:
spark-submit --class #指明运行的主类,即main方法
--master #指明资料管理器;local用local[*]或local[数字];standalone用saprk://host:7077,host:7077,即spark的集群部署的主机名加端口
--deploy-mode #有两种cluster和client;是否发布你的驱动到worker节点(cluster) 或者作为一个本地客户端 (client) (default: client)
--executor-memory #指每个executor的调用内存
--total-executor-cores #指所有的executor的总核数
--driver-memory #指定driver的内存,推荐5G
jar包路径
[参数]
- yarn的提交方式
spark-submit --class #指明运行的主类,即main方法
--master #指明资料管理器;yarn用yarn
--deploy-mode #有两种cluster和client;是否发布你的驱动到worker节点(cluster) 或者作为一个本地客户端 (client) (default: client)
--executor-memory #指每个executor的调用内存
--executor-cores #指每一个executor的CPU核数
--num-executor #指executor的个数
--driver-memory #指定driver的内存,推荐5G
--queue #指定队列
jar包路径
[参数]
问题2、spark streming在实时处理时会发生什么故障,如何停止,解决
和Kafka整合时消息无序:
修改Kafka的ack参数,当ack=1时,master确认收到消息就算投递成功。ack=0时,不需要收到消息便算成功,高效不准确。ack=all,master和server都要受到消息才算成功,准确不高效。
StreamingContext.stop会把关联的SparkContext对象也停止,如果不想把SparkContext对象也停止的话可以把StremingContext.stop的可选参数stopSparkContext设为flase。一个SparkContext对象可以和多个streamingcontext对象关联。只要对前一个stremingcontext.stop(stopsparkcontext=false),然后再创建新的stremingcontext对象就可以了。
问题3、spark工作机制
- Driver向资源管理器master注册任务,申请资源,
- master筛选出资源充足的worker
- master通知worker启动executor
- executor向Driver反向注册,申请计算任务
- executor任务执行后,Driver向Master注销任务
-
<