1

我正在尝试通过 windows 上的 spark 提交我的 spark-mongo 代码 jar。我在独立模式下使用 spark。我在同一台机器上配置了 spark master 和两个 worker。我想用一个主人和两个工人来执行我的 jar。我正在尝试执行以下命令:spark-submit --master spark://localhost:7077 --deploy-mode cluster --executor-memory 5G --class spark.mongohadoop.testing3 G:\sparkmon1.jar

我面临以下错误:

Running Spark using the REST application submission protocol.
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
17/02/28 17:09:13 INFO RestSubmissionClient: Submitting a request to launch an application in spark://192.168.242.1:7077.
17/02/28 17:09:24 WARN RestSubmissionClient: Unable to connect to server spark://192.168.242.1:7077.
Warning: Master endpoint spark://192.168.242.1:7077 was not a REST server. Falling back to legacy submission gateway instead.
17/02/28 17:09:25 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/02/28 17:09:32 ERROR ClientEndpoint: Exception from cluster was: java.lang.NullPointerException
java.lang.NullPointerException
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
        at org.apache.hadoop.util.Shell.runCommand(Shell.java:482)
        at org.apache.hadoop.util.Shell.run(Shell.java:455)
        at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
        at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:873)
        at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:853)
        at org.apache.spark.util.Utils$.fetchFile(Utils.scala:474)
        at org.apache.spark.deploy.worker.DriverRunner.org$apache$spark$deploy$worker$DriverRunner$$downloadUserJar(DriverRunner.scala:154)
        at org.apache.spark.deploy.worker.DriverRunner$$anon$1.run(DriverRunner.scala:83

我已经在 env 中设置了 winutil 路径。为什么我收到此错误,解决方案是什么?

4

1 回答 1

0

我在 Linux 上遇到了同样的错误,但是当驱动程序从集群中的特定机器启动时,它就出现了,如果启动驱动程序的请求将发送到集群中的任何其他机器,十它工作正常。因此,在我看来,这似乎是一个环境问题。然后我检查了 org.apache.hadoop.util.Shell$ShellCommandExecutor 类的代码,发现它正在尝试运行命令,但在此之前它尝试为该机器运行“bash”。我观察到我的 bash 响应缓慢。在 bashrc 中进行了一些更改并重新启动了我的集群。现在它工作正常。

于 2017-03-02T10:42:59.860 回答