Spark篇

本文深入探讨了Spark的工作机制,包括Spark-submit的提交模式、Spark Streaming故障处理、Spark Shuffle的优化措施,以及Spark与其他流处理框架的区别。还讨论了SparkRDD的理解、DStream结构、SparkSQL与HSQL的差异,以及如何解决Spark内存溢出问题。
摘要由CSDN通过智能技术生成

文章目录

问题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注销任务

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值