我在部署Spark-1.2.0集群(1master-3worker)之后,使用start-all.sh启动集群时没有问题,在webui上也能看到worker状态。
但是我提交任务到集群或者是启动spark-shell的时候,master会不停的报出错误如下:
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 0
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 1
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 2
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 3
... 而worker节点上Error log中为:
[ERROR] [Logging.scala:96] logError: Error running executor java.io.IOException: Cannot run program "/bin/java" (in directory "/usr/local/spark-1.2.0/work/app-20150113194629-0001/9"): error=2, 没有那个文件或目录 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at org.apache.spark.deploy.worker.ExecutorRunner.fetchAndRunExecutor(ExecutorRunner.scala:135) at org.apache.spark.deploy.worker.ExecutorRunner$$anon$1.run(ExecutorRunner.scala:65) Caused by: java.io.IOException: error=2, 没有那个文件或目录 at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:187) at java.lang.ProcessImpl.start(ProcessImpl.java:134) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 我Google了很久也没发现有类似问题出现,望老师能给予帮助。
谢谢。
但是我提交任务到集群或者是启动spark-shell的时候,master会不停的报出错误如下:
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 0
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 1
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 2
[ERROR] [Logging.scala:75] logError: Asked to remove non-existent executor 3
... 而worker节点上Error log中为:
[ERROR] [Logging.scala:96] logError: Error running executor java.io.IOException: Cannot run program "/bin/java" (in directory "/usr/local/spark-1.2.0/work/app-20150113194629-0001/9"): error=2, 没有那个文件或目录 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at org.apache.spark.deploy.worker.ExecutorRunner.fetchAndRunExecutor(ExecutorRunner.scala:135) at org.apache.spark.deploy.worker.ExecutorRunner$$anon$1.run(ExecutorRunner.scala:65) Caused by: java.io.IOException: error=2, 没有那个文件或目录 at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:187) at java.lang.ProcessImpl.start(ProcessImpl.java:134) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 我Google了很久也没发现有类似问题出现,望老师能给予帮助。
谢谢。
解决方案 »
- fresher对云计算的问题
- 大家都说云服务,到底云服务是什么?
- Aws Biling API
- AWS 安装好nginx后,无法用Amazon 给的公用DNS,IP 访问?
- spark算法请教(scala)
- 在IntelliJ IDEA上调试spark
- 安装hadoop2.20 启动的时候报这样的错,谁知道是什么原因吗
- 有没有人spark on yarn 模式,开发spark streaming
- HBASE查询结果条数限制能实现吗?
- FusionStaroge中关于scsi iscsi的问题
- 我申请AWS账号很久了。一直没有给通过怎么办?
- network interface的security group和ec2的security group是什么关系?
原来不是通信问题,仔细看了下log,是说在指定的位置(SPARK_HOME/work/app_xxxxxxx/0)无法执行'/bin/java',顿时感觉到还是环境设置的问题。回过头来检查SPARK_HOME/conf/spark-env.sh,文件里第一行配置了JAVA_HOME=${JAVA_HOME},原以为这样可以取到系统设置的JAVA_HOME配置,但输出了一下发现,centOS 或者 Mac OS里的jdk 是我自己安装的,不知为何,在spark里这样配置无效。
将spark-env.sh里的JAVA_HOME配置注释掉就可以正常启动spark和提交spark任务了。