Apache spark Can';t在独立集群上运行示例pyspark代码

Apache spark Can';t在独立集群上运行示例pyspark代码,apache-spark,pyspark,Apache Spark,Pyspark,背景 我们在三台RHEL 7虚拟机上安装了一个独立的spark群集,运行spark 3.0.0。打算使用Pyspark 我们有一个主节点和两个工作节点。 Spark是在所有三个节点上启动的,我们可以连接到主节点GUI并查看worker。spark进程已使用标准shell脚本启动,并已确认在所有三个节点上运行 在三个节点中的任意一个节点上,我们可以执行以下操作: /bin/spark submit/usr/spark/examples/src/main/python/wordcount.py'/u

背景

我们在三台RHEL 7虚拟机上安装了一个独立的spark群集,运行spark 3.0.0。打算使用Pyspark

我们有一个主节点和两个工作节点。 Spark是在所有三个节点上启动的,我们可以连接到主节点GUI并查看worker。spark进程已使用标准shell脚本启动,并已确认在所有三个节点上运行

在三个节点中的任意一个节点上,我们可以执行以下操作:

/bin/spark submit/usr/spark/examples/src/main/python/wordcount.py'/usr/spark/LICENSE'

而且它运行起来没有问题

但如果我们尝试将其提交到主节点:

./bin/spark-submit --master spark://<server>:7077 /usr/spark/examples/src/main/python/wordcount.py '/usr/spark/LICENSE'´
等等

在工作节点上,我可以看到:

20/09/23 15:20:25 INFO ExecutorRunner: Launch command: "/usr/java/jdk1.8.0_241-amd64/jre/bin/java" "-cp" "/usr/spark/conf/:/usr/spark/jars/*" "-Xmx1024M" "-Dspark.driver.port=42395" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "--driver-url" "spark://CoarseGrainedScheduler@<server>:42395" "--executor-id" "0" "--hostname" "10.204.197.207" "--cores" "4" "--app-id" "app-20200923152025-0043" "--worker-url" "spark://Worker@10.204.197.207:4043"
它对资源发出警告,但我已尝试将资源减少到最低限度——仍然得到相同的结果。我想这只是一个警告

调查:

从字面上理解错误消息,我尝试对zstdjni进行故障排除

  • 我可以为工人和主人连接到WebUI。作业是可见的,但它在这个java错误上卡住了
  • 我可以看到zstd-jni-1.4.4-3.jar包在/usr/spark/jars中提供
  • 我可以看到,在worker上提交作业时,正在指定/usr/spark/jars/*的路径
  • 我已经在Linux虚拟机上安装了zstd,但这没有帮助
  • 节点之间没有防火墙

如果能给我指出正确的方向,我将不胜感激。感觉我错过了一些相当简单的东西(特别是因为我已经20年没有接触Java了),但我却不知所措。

您在VM中安装的lib zstd的版本是什么?我想知道RHEL7是否太旧了。它可能有一个与Sparka不兼容的lib zstd版本。实际上,我在RHEL8和Java11上进行第二次尝试时得到了相同的版本。但是我找到了一个解决方法,实际的libzstd-jni.so文件包含在zstd-jni-1.4.4-3.jar文件中。如果我提取了so文件并将其放在java查找库文件的目录中,那么它就工作了。但是不需要它,因为java代码应该能够在jar中使用该文件。
20/09/23 15:20:25 INFO ExecutorRunner: Launch command: "/usr/java/jdk1.8.0_241-amd64/jre/bin/java" "-cp" "/usr/spark/conf/:/usr/spark/jars/*" "-Xmx1024M" "-Dspark.driver.port=42395" "org.apache.spark.executor.CoarseGrainedExecutorBackend" "--driver-url" "spark://CoarseGrainedScheduler@<server>:42395" "--executor-id" "0" "--hostname" "10.204.197.207" "--cores" "4" "--app-id" "app-20200923152025-0043" "--worker-url" "spark://Worker@10.204.197.207:4043"
20/09/23 15:36:13 INFO Master: Registering app PythonWordCount
20/09/23 15:36:13 INFO Master: Registered app PythonWordCount with ID app-20200923153613-0044
20/09/23 15:36:13 INFO Master: Launching executor app-20200923153613-0044/0 on worker worker-20200923082826-10.204.197.207-4043
20/09/23 15:36:13 INFO Master: Launching executor app-20200923153613-0044/1 on worker worker-20200923082812-10.204.197.208-4043
20/09/23 15:36:13 WARN Master: App app-20200923153613-0044 requires more resource than any of Workers could have.
20/09/23 15:36:13 WARN Master: App app-20200923153613-0044 requires more resource than any of Workers could have.