Spark on YARN两种运行模式介绍

查看数: 360384 | 评论数: 16 | 收藏 10
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-3-31 15:42

正文摘要:

问题导读 1.Spark在YARN中有几种模式? 2.Yarn Cluster模式,Driver程序在YARN中运行,应用的运行结果在什么地方可以查看? 3.由client向ResourceManager提交请求,并上传jar到HDFS上包含哪些步骤? 4.传递给 ...

回复

xw2016 发表于 2016-7-9 11:00:54
b). 允许失败的节点数(spark.yarn.max.worker.failures)为executor数量的两倍数量,最小为3.
请问楼主,这个怎么算出来的?一般允许失败节点数为总节点数的一半,这个如何理解呢?
xw2016 发表于 2016-7-9 10:58:53
b). 允许失败的节点数(spark.yarn.max.worker.failures)为executor数量的两倍数量,最小为3.

请问楼主,这个怎么算出来的?
atsky123 发表于 2016-2-24 17:03:49
mobilefactory8 发表于 2016-2-24 16:52
这个问题也困扰了我:(我添加了jars包,还是报错)

spark-1.5.0-bin-hadoop2.6]$ ./bin/spark-submit  ...

不会无缘无故报错的。
先看路径是否正确
在看看包是否正确
mobilefactory8 发表于 2016-2-24 16:52:59
这个问题也困扰了我:(我添加了jars包,还是报错)

spark-1.5.0-bin-hadoop2.6]$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
>     --jars  /opt/BigData/inst/hadoop-2.6.0/share/hadoop/common/hadoop-common-2.6.0.jar \
>     --master yarn \
>     --deploy-mode client \
>     --driver-memory 1g \
>     --executor-memory 1g \
>     --executor-cores 1 \
>     --queue thequeue \
>     lib/spark-examples*.jar \
>     2

错误信息:        
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.addDeprecations([Lorg/apache/hadoop/conf/Configuration$DeprecationDelta;)V
        at org.apache.hadoop.yarn.conf.YarnConfiguration.addDeprecatedKeys(YarnConfiguration.java:79)
        at org.apache.hadoop.yarn.conf.YarnConfiguration.<clinit>(YarnConfiguration.java:73)
        at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.newConfiguration(YarnSparkHadoopUtil.scala:61)
        at org.apache.spark.deploy.SparkHadoopUtil.<init>(SparkHadoopUtil.scala:52)
        at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.<init>(YarnSparkHadoopUtil.scala:46)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at java.lang.Class.newInstance(Class.java:374)
        at org.apache.spark.deploy.SparkHadoopUtil$.liftedTree1$1(SparkHadoopUtil.scala:389)
        at org.apache.spark.deploy.SparkHadoopUtil$.<init>(SparkHadoopUtil.scala:387)
        at org.apache.spark.deploy.SparkHadoopUtil$.<clinit>(SparkHadoopUtil.scala)
        at org.apache.spark.util.Utils$.getSparkOrYarnConfig(Utils.scala:2042)
        at org.apache.spark.storage.BlockManager.<init>(BlockManager.scala:97)
        at org.apache.spark.storage.BlockManager.<init>(BlockManager.scala:173)
        at org.apache.spark.SparkEnv$.create(SparkEnv.scala:345)
        at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:193)
        at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:276)
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:441)
        at org.apache.spark.examples.SparkPi$.main(SparkPi.scala:29)
        at org.apache.spark.examples.SparkPi.main(SparkPi.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:672)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

能帮忙看看不?谢谢!
chyeers 发表于 2016-1-25 16:21:41
那年夏天110 发表于 2016-1-14 17:44
他的问题 看我回复 应该是他想要的答案

嗯嗯,thanks
disanyuzhou 发表于 2016-1-14 21:19:21
mark一下
那年夏天110 发表于 2016-1-14 17:44:26
xuanxufeng 发表于 2015-9-10 16:58
合理管理依赖包呢??为什么会有这个问题

他的问题 看我回复 应该是他想要的答案
那年夏天110 发表于 2016-1-14 17:42:03
chyeers 发表于 2015-9-10 21:23
因为有的时候运行一个 --class 的时候 要 --jars xxxx,xxx,xxx,xxx   比较多的外部依赖包,有什么方法集 ...

可以处理的 要一个一个写依赖jar 太累人了。有两种办法来解决这个问题:
1. 用maven 收集所有的依赖jar 后 放到统一的文件夹下(如: /home/libs/ 下面一堆jar),提交spark job 的时候指定下这个文件加即可。
    例如:    ./spark-submit --jars $(echo /home/libs/*.jar |tr ' '  ',')  --master  。。。。。。
   这样其实是遍历了下指定的目录 循环加载,就不用自己手动一个个的加。 也方便所依赖jar 的动态增删维护

2.第二种是: 把你收集的所有依赖jar 和你的业务代码  写个脚本 全部打包整一个jar 然后 提交的时候只需指定一个 就可以了。
  但这种要是你修改了业务代码逻辑 就得又重新全部打包 比较麻烦。如果是测试环境测试通的,要丢到生产环境运行的话,这种方式也是挺不错,而且spark job 远程提交 貌似只能这样才能顺利跑通。

以上两种方式均在测试和生产环境 使用过,所有万无一失
      




chyeers 发表于 2015-9-10 21:37:33
关闭

推荐上一条 /2 下一条