【问题标题】:Why does Spark not run on Eclipse?为什么 Spark 不能在 Eclipse 上运行?
【发布时间】:2019-05-27 11:25:18
【问题描述】:

我已经使用 Python 3.7、JRE 8、JDK 1.8 在 Eclipse(Eclipse 插件:PyDev)上安装了带有 hadoop2.6 的 pysark2.1。

我正在尝试运行一个简单的测试代码:

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

但我收到以下错误:

使用 Spark 的默认 log4j 配置文件:
org/apache/spark/log4j-defaults.properties 设置默认日志级别 警告”。要调整日志记录级别,请使用 sc.setLogLevel(newLevel)。为了 SparkR,使用 setLogLevel(newLevel)。 18/12/30 17:04:33 错误 SparkUncaughtExceptionHandler:线程中未捕获的异常 线程 [main,5,main] java.util.NoSuchElementException:找不到键: _PYSPARK_DRIVER_CALLBACK_HOST

在 scala.collection.MapLike$class.default(MapLike.scala:228)
在 scala.collection.AbstractMap.default(Map.scala:59)
在 scala.collection.MapLike$class.apply(MapLike.scala:141)
在 scala.collection.AbstractMap.apply(Map.scala:59)
在 org.apache.spark.api.python.PythonGatewayServer$$anonfun$main$1.apply$mcV$sp(PythonGatewayServer.scala:50) 在 org.apache.spark.util.Utils$.tryOrExit(Utils.scala:1228)
在 org.apache.spark.api.python.PythonGatewayServer$.main(PythonGatewayServer.scala:37) 在 org.apache.spark.api.python.PythonGatewayServer.main(PythonGatewayServer.scala) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498)
在 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:738) 在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) 在 org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Traceback(最近一次调用最后一次):

文件“C:\Users\charfoush\eclipse-workspace\sample2\test2.py”,第 7 行,在

spark = SparkSession.builder.getOrCreate()   

文件 "C:\Users\charfoush\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyspark\sql\session.py", 第 173 行,在 getOrCreate 中

sc = SparkContext.getOrCreate(sparkConf)   

文件 "C:\Users\charfoush\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyspark\context.py", 第 351 行,在 getOrCreate 中

SparkContext(conf=conf or SparkConf())   

文件 "C:\Users\charfoush\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyspark\context.py", 第 115 行,在 init

中
SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)   

文件 "C:\Users\charfoush\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyspark\context.py", 第 300 行,_ensure_initialized

SparkContext._gateway = gateway or launch_gateway(conf)   

文件 "C:\Users\charfoush\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyspark\java_gateway.py", 第 93 行,在 launch_gateway 中

raise Exception("Java gateway process exited before sending its port number") Exception: Java gateway process exited before sending

它的端口号

【问题讨论】:

    标签: java python-3.x eclipse hadoop pyspark


    【解决方案1】:

    例如,可能会出现此问题:

    • 版本不匹配
    • 或者如果您没有正确定义 SPARK_HOME AND PYTHONPATH 环境变量(确保它们都不是针对旧版本)

    【讨论】:

    • @Chaymae 在 Stackoverflow 上,您可以将up-vote 给人们有用的答案以感谢他们,并选择任何一个答案作为correct answer。
    【解决方案2】:
    猜你喜欢
    • 2013-09-05
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多