簡體   English   中英

在本地創建 sparkcontext 時出錯調用 None.org.apache.spark.api.java.JavaSparkContext 時出錯

[英]Error creating sparkcontext locally An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext

我正在嘗試在我的 Mac 上本地運行 spark。 到目前為止我有這個:

conf = SparkConf().setAppName('test').setMaster('local[*]')
sc = SparkContext(conf=conf)

我知道我確實有JAVA_HOME (如/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home )和SPARK_HOME (如/Users/myname/spark-3.1.1-amzn-0-bin-3.2.1-amzn-3 ,這是安裝 spark 的位置以及 spark-submit 的bin所在的位置,我也可以在我的終端上正確運行)。 我得到這個:

py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
: java.lang.NoSuchMethodError: io.netty.util.concurrent.SingleThreadEventExecutor.<init>(Lio/netty/util/concurrent/EventExecutorGroup;Ljava/util/concurrent/Executor;ZLjava/util/Queue;Lio/netty/util/concurrent/RejectedExecutionHandler;)V
    at io.netty.channel.SingleThreadEventLoop.<init>(SingleThreadEventLoop.java:65)
    at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:138)
    at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:146)
    at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:37)
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58)
    at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:47)
    at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:59)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:86)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:81)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:68)
    at org.apache.spark.network.util.NettyUtils.createEventLoop(NettyUtils.java:66)
    at org.apache.spark.network.client.TransportClientFactory.<init>(TransportClientFactory.java:106)
    at org.apache.spark.network.TransportContext.createClientFactory(TransportContext.java:142)
    at org.apache.spark.rpc.netty.NettyRpcEnv.<init>(NettyRpcEnv.scala:77)
    at org.apache.spark.rpc.netty.NettyRpcEnvFactory.create(NettyRpcEnv.scala:493)
    at org.apache.spark.rpc.RpcEnv$.create(RpcEnv.scala:57)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:266)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:189)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:277)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:458)
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:58)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:247)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
    at py4j.Gateway.invoke(Gateway.java:238)
    at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:80)
    at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:69)
    at py4j.GatewayConnection.run(GatewayConnection.java:238)
    at java.lang.Thread.run(Thread.java:748)

我試圖從 PyCharm 中的 python 3.8 venv 運行它,以防萬一。

我在其他地方看到過類似的錯誤,但沒有看到任何適合我的解決方案:

Getting Py4JavaError:Calling None.org.apache.spark.api.java.JavaSparkContext https://superuser.com/questions/1436855/port-binding-error-in-pyspark PYspark SparkContext Error "error occurred while calling None.org. apache.spark.api.java.JavaSparkContext。” py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext Spark2-submit failing with pyspark

想法?

我在嘗試使用amazon/aws-glue-libs:glue_libs_2.0.0_image_01圖像時遇到了類似的問題。 在我的情況下,問題通過重新安裝 pyspark 得到解決。

java.lang.NoSuchMethodError提示正在使用的各種依賴版本,這會導致引發此錯誤。

如果您對使用 AWS Glue 的圖像感興趣,請查看https://github.com/DNXLabs/docker-glue-libs/blob/master/Dockerfile提供的 Dockerfile,但刪除它同樣容易來自 Dockerfile 的glue-libs水庫。 然后,該圖像可以用作 PyCharm 中的遠程解釋器(參見例如: https://aws.amazon.com/blogs/big-data/developing-aws-glue-etl-jobs-locally-using-a-container / )

嘗試將 Java 版本更改為 JDK 8。當我的 JAVA_HOME 映射到 JDK 16 時,我遇到了同樣的錯誤。通過將 JAVA_HOME 更改為 JDK 8 來糾正它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM