分享

spark on yarn提交任务时一直显示ACCEPTED

xioaxu790 发表于 2014-9-27 16:37:06 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 39066
问题导读
1、spark-env.sh作何配置?
2、提交spark任务时如何使用自己打包的jar包?





spark on yarn提交任务时一直显示ACCEPTED,过一个小时后就会出现任务失败,但在提交时shell终端显示的日志并没有报错,logs文件夹中也没有日志产生。注:spark on yarn是不需要启动spark集群的,只需要在提交任务的机器配置spark就可以了,因为任务是由hadoop来执行的,spark只负责任务的提交。

任务提交命令为
  1. bin/spark-submit --class org.apache.spark.examples.JavaWordCount\
  2.     --master yarn-client \
  3.     --num-executors 25 \
  4.     --executor-memory 1g \
  5.     --executor-cores 1 \
  6.     lib/spark-examples-1.0.1-hadoop2.2.0.jar \
  7.     hdfs://192.168.1.11:9000/test
复制代码


spark-env.sh配置如下:
  1. export SPARK_JAR=hdfs://192.168.1.11:9000/test1/spark-assembly-1.0.1-hadoop2.2.0.jar
  2. export SPARK_YARN_APP_JAR=hdfs://192.168.1.11:9000/test1/spark-examples-1.0.1-hadoop2.2.0.jar
  3. export HADOOP_CONF_DIR=/hadoop/etc/hadoop
  4. export SPARK_EXECUTOR_INSTANCES=1000
  5. export SPARK_EXECUTOR_CORES=1
  6. export SPARK_EXECUTOR_MEMORY=10000M
  7. export SPARK_DRIVER_MEMORY=20000M
  8. export SPARK_YARN_APP_NAME=spark
复制代码


查看日志发现报错:
  1. 14/09/04 17:10:44 INFO RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
  2. 14/09/04 17:10:45 INFO Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
  3. 14/09/04 17:10:46 INFO Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
  4. 14/09/04 17:10:47 INFO Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
复制代码


这个问题很明显没有找到resourcemanager,我们可以通过以下方法来解决:

1 在spark-env.sh中添加
  1. export SPARK_YARN_USER_ENV="CLASSPATH=hadoop-2.3.0/etc/hadoop"(修改成自己的hadoop路径)
复制代码


2 自己编写JavaWordCount程序,在程序中配置集群信息
  1.         SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
  2.         sparkConf.set("mapreduce.framework.name", "yarn");
  3.         sparkConf.set("mapreduce.jobtracker.address", "192.168.1.10:9001");
  4.         sparkConf.set("yarn.resourcemanager.hostname", "192.168.1.10");
  5.         sparkConf.set("yarn.resourcemanager.admin.address", "192.168.1.10:8033");
  6.         sparkConf.set("yarn.resourcemanager.address", "192.168.1.10:8032");
  7.         sparkConf.set("yarn.resourcemanager.resource-tracker.address", "192.168.1.10:8031");
  8.         sparkConf.set("yarn.resourcemanager.scheduler.address", "192.168.1.10:8030");
  9.         sparkConf.set("yarn.resourcemanager.hostname", "192.168.1.10");
复制代码


然后打包,在提交spark任务时使用自己打包的jar包即可。


已有(2)人评论

跳转到指定楼层
云一 发表于 2014-9-27 19:05:05
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

hbbtym 发表于 2014-12-28 03:04:51
你好,
export SPARK_YARN_USER_ENV="CLASSPATH=hadoop-2.3.0/etc/hadoop"(修改成自己的hadoop路径)
这句不理解啊,自己的hadoop路径?是bin的路径还是配置文件的路径,小弟用的CDH的hadoop,spark
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条