spark理论之运行模式

spark相比hadoop做了很多方面的优化,同时spark的job也支持提交到hadoop的yarn进行处理,同时也有属于自己的一套资源调度框架standalone.同时也支持其他常用的资源调度框架。

  1. Spark运行模式

  • Local

多用于本地测试,如在eclipse,idea中写程序测试等。

  • Standalone

Standalone是Spark自带的一个资源调度框架,它支持完全分布式。

  • Yarn

Hadoop生态圈里面的一个资源调度框架,Spark也是可以基于Yarn来计算的。

  • Mesos

资源调度框架。

  • 要基于Yarn来进行资源调度,必须实现AppalicationMaster接口,Spark实现了这个接口,所以可以基于Yarn。

 

下面是我用来测试的一些命令:

./spark-submit  --master spark://cry-PC:7077 --class org.apache.spark.examples.JavaSparkPi ../examples/jars/spark-examples_2.12-2.4.4.jar 100

./spark-submit  --master spark://cry-PC:7077 --deploy-mode cluster --class org.apache.spark.examples.JavaSparkPi ../examples/jars/spark-examples_2.12-2.4.4.jar 100

./spark-submit  --master yarn --deploy-mode client --class org.apache.spark.examples.JavaSparkPi ../examples/jars/spark-examples_2.12-2.4.4.jar 100

./spark-submit  --master yarn --deploy-mode cluster --class org.apache.spark.examples.JavaSparkPi ../examples/jars/spark-examples_2.12-2.4.4.jar 100

在不区分任务调度框架的情况下,deploy-mode的可选值分别是client和cluster,两种模式的区别在于driver的位置,其中client模式我们可以在终端看到job执行的整个过程,包括执行后的输出结果;cluster模式只能看到部分的执行过程,无法看到输出结果。执行的日志和结果要去spark和hadoop的web控制台查看

 

下面是yarn-cluster的执行结果图

2   执行过程中常出现的错误和解决办法

Application application_1581053570255_0004 failed 2 times due to AM Container for appattempt_1581053570255_0004_000002 exited with exitCode: -103

Failing this attempt.Diagnostics: [2020-02-07 17:48:19.359]Container [pid=13535,containerID=container_1581053570255_0004_02_000001] is running beyond virtual memory limits. Current usage: 307.6 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.

这个错误容易在yarn-client上,大致意思就是虚拟内存使用超出限制,解决办法是修改yarn-site.xml,加入如下配置

<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>15.5</value>
</property>

 数值配置的大一点就行,默认配置是2.1有点太小了

这个是查资料时看到的也贴出来给大家看看

 

参考资料:https://www.jianshu.com/p/c2bef33a046f

 关于spark提交任务的详细说明和流程这篇文章我觉得讲的很好,可以看看

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值