运行独立 pyspark 时出现 Windows 错误

Hoj*_*jin 6 python localhost apache-spark

我正在尝试在 Anaconda 中导入 pyspark 并运行示例代码。但是,每当我尝试在 Anaconda 中运行代码时,都会收到以下错误消息。

错误:py4j.java_gateway:尝试连接到 Java 服务器时出错 (127.0.0.1:53294) 回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src .zip\py4j\java_gateway.py", line 1021, in send_command self.socket.sendall(command.encode("utf-8")) ConnectionResetError: [WinError 10054] 一个现有的连接被远程主机强行关闭

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 883 行,在 send_command 响应 = connection.send_command(command) 文件中“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 1025 行,在 send_command “发送时出错”,e,proto.ERROR_ON_SEND)py4j.protocol.Py4JNetworkError:发送时出错

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 827 行,_get_connection connection = self.deque.pop() IndexError:从空双端队列弹出

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 963 行,在 start self.socket.connect((self.地址,self.port)) ConnectionRefusedError: [WinError 10061] 无法建立连接,因为目标机器主动拒绝它 ERROR:py4j.java_gateway:An error occurred while try to connect to the Java server (127.0.0.1:53294) Traceback (最近一次通话):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 827 行,_get_connection connection = self.deque.pop() IndexError : 从空的双端队列中弹出

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 963 行,在 start self.socket.connect((self.地址,self.port)) ConnectionRefusedError: [WinError 10061] 无法建立连接,因为目标机器主动拒绝它 ERROR:py4j.java_gateway:An error occurred while try to connect to the Java server (127.0.0.1:53294) Traceback (最近一次通话):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 827 行,_get_connection connection = self.deque.pop() IndexError : 从空的双端队列中弹出

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 963 行,在 start self.socket.connect((self.地址,self.port)) ConnectionRefusedError: [WinError 10061] 无法建立连接,因为目标机器主动拒绝它 ERROR:py4j.java_gateway:An error occurred while try to connect to the Java server (127.0.0.1:53294) Traceback (最近一次通话):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 827 行,_get_connection connection = self.deque.pop() IndexError : 从空的双端队列中弹出

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 963 行,在 start self.socket.connect((self.地址,self.port)) ConnectionRefusedError: [WinError 10061] 无法建立连接,因为目标机器主动拒绝它 ERROR:py4j.java_gateway:An error occurred while try to connect to the Java server (127.0.0.1:53294) Traceback (最近一次通话):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 827 行,_get_connection connection = self.deque.pop() IndexError : 从空的双端队列中弹出

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 963 行,在 start self.socket.connect((self. address, self.port)) ConnectionRefusedError: [WinError 10061] 无法建立连接,因为目标机器主动拒绝它重新加载模块:py4j.protocol, pyspark.sql.context, py4j.java_gateway, py4j.compat, pyspark.profiler, pyspark.sql.catalog、pyspark.context、pyspark.sql.group、pyspark.sql.conf、pyspark.sql.readwriter、pyspark.resultiterable、pyspark.sql、pyspark.sql.dataframe、pyspark.traceback_utils、pyspark.cloudpickle、 pyspark.rddsampler, pyspark.accumulators, pyspark.broadcast, py4j, pyspark.rdd, pyspark.sql.functions, pyspark.java_gateway, pyspark.statcounter, pyspark.conf, pyspark.serializers, pyspark.join.join, pyspark.join sql.streaming,pyspark。shuffle、pyspark、py4j.version、pyspark.sql.session、pyspark.sql.column、py4j.finalizer、py4j.java_collections、pyspark.status、pyspark.sql.window、pyspark.sql.utils、pyspark.storagelevel、pyspark. heapq3、py4j.signals、pyspark.sql.types 回溯(最近一次调用):

File "", line 1, in runfile('C:/Users/hlee/Desktop/pyspark.py', wdir='C:/Users/hlee/Desktop')

文件“C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,第 866 行,运行文件 execfile(文件名,命名空间)

文件“C:\Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,第 102 行,在 execfile exec(compile(f.read(), filename, 'exec'), namespace )

文件“C:/Users/hlee/Desktop/pyspark.py”,第 38 行,在 sc = SparkContext()

文件“C:\spark\python\lib\pyspark.zip\pyspark\context.py”,第 115 行,在init conf、jsc、profiler_cls 中)

文件“C:\spark\python\lib\pyspark.zip\pyspark\context.py”,第 168 行,在 _do_init self._jsc = jsc 或 self._initialize_context(self._conf._jconf)

文件“C:\spark\python\lib\pyspark.zip\pyspark\context.py”,第 233 行,在 _initialize_context 中返回 self._jvm.JavaSparkContext(jconf)

文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 1401 行,在呼叫 应答中,self._gateway_client,无,self._fqn)

文件“C:\spark\python\lib\py4j-0.10.3-src.zip\py4j\protocol.py”,第 319 行,get_return_value 格式(target_id, ".", name), value)

Py4JJavaError:调用 None.org.apache.spark.api.java.JavaSparkContext 时出错。:java.net.BindException:无法分配请求的地址:绑定:16 次重试后服务“sparkDriver”失败!考虑将服务“sparkDriver”的适当端口(例如 SparkUI 的 spark.ui.port)显式设置为可用端口或增加 spark.port.maxRetries。在 sun.nio.ch.Net.bind0(Native Method) 在 sun.nio.ch.Net.bind(Net.java:433) 在 sun.nio.ch.Net.bind(Net.java:425) 在 sun .nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java :125) 在 io.netty.channel.AbstractChannel$AbstractUnsafe。

以下是我的示例代码,我在 cmd 中运行 Apache 没有问题。

import os
import sys
spark_path = r"C:\spark"
os.environ['SPARK_HOME'] = spark_path
sys.path.insert(0, spark_path + "/bin")
sys.path.insert(0, spark_path + "/python/pyspark/")
sys.path.insert(0, spark_path + "/python/lib/pyspark.zip")
sys.path.insert(0, spark_path + "/python/lib/py4j-0.10.3-src.zip")

from pyspark import SparkContext

sc = SparkContext()

import random
NUM_SAMPLES = 100000

def sample(p):
    x, y = random.random(), random.random()
    return 1 if x*x + y*y < 1 else 0

count = sc.parallelize(range(0, NUM_SAMPLES)).map(sample) \
              .reduce(lambda a, b: a + b)
print("Pi is roughly %f" % (4.0 * count / NUM_SAMPLES))
Run Code Online (Sandbox Code Playgroud)

我已经下载了 winutils.exe 并在环境变量中添加了 HADOOP_HOME 变量,并在 spark-env.sh 文件中添加了 export SPARK_MASTER_IP=127.0.0.1, export SPARK_LOCAL_IP=127.0.0.1。但是,我仍然遇到相同的错误。有人可以帮助我并指出我缺少什么吗?

先感谢您,

Raf*_*ero 3

就我而言,我只需要重新启动内核即可。

问题是我创建了两次环境:每次犯错误时,我都会从头开始重新运行代码。

  • 如何重新启动内核? (2认同)