运行独立 pyspark 时出现 Windows 错误

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

尝试连接到 Java 服务器时发生 ERROR:py4j.java_gateway:An 错误(127.0.0.1:53294)追溯(最近一次调用最近):文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 send_command self.socket.sendall(command.encode(“ utf-8”) )) ConnectionResetError:[1]远程主机强行关闭了现有连接

在处理上述异常期间,发生了另一个异常:

追溯(最近一次通话最近):文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,第 883 行,在 send_command response = connection.send_command(command)文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\send_command 行中的“ java_gateway.py”,第 1025 行,“发送时出错”,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 连接= self.deque.pop() IndexError:从空双端队列弹出

在处理上述异常期间,发生了另一个异常:

追溯(最近一次呼叫最近):在开始 self.socket.connect((self.address,self.port))中的文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 963 ConnectionRefusedError:[2]无法建立连接,因为目标计算机被主动拒绝尝试连接到 Java 服务器(127.0.0.1:53294)回溯时发生 ERROR:py4j.java_gateway:An 错误(最近一次调用为最新):文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 827,在_get_connection connection = self.deque.pop() IndexError :从空双端队列弹出

在处理上述异常期间,发生了另一个异常:

追溯(最近一次呼叫最近):在开始 self.socket.connect((self.address,self.port))中的文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 963 ConnectionRefusedError:[3]无法建立连接,因为目标计算机被主动拒绝尝试连接到 Java 服务器(127.0.0.1:53294)回溯时发生 ERROR:py4j.java_gateway:An 错误(最近一次调用为最新):文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 827,在_get_connection connection = self.deque.pop() IndexError :从空双端队列弹出

在处理上述异常期间,发生了另一个异常:

追溯(最近一次呼叫最近):在开始 self.socket.connect((self.address,self.port))中的文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”(行 963)ConnectionRefusedError:[4]无法建立连接,因为目标计算机被主动拒绝尝试连接到 Java 服务器(127.0.0.1:53294)回溯时发生 ERROR:py4j.java_gateway:An 错误(最近一次调用为最新):文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 827,在_get_connection connection = self.deque.pop() IndexError :从空双端队列弹出

在处理上述异常期间,发生了另一个异常:

追溯(最近一次呼叫最近):在开始 self.socket.connect((self.address,self.port))中的文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 963 ConnectionRefusedError:[5]无法建立连接,因为目标计算机被主动拒绝尝试连接到 Java 服务器(127.0.0.1:53294)回溯时发生 ERROR:py4j.java_gateway:An 错误(最近一次调用为最新):文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 827,在_get_connection connection = self.deque.pop() IndexError :从空双端队列弹出

在处理上述异常期间,发生了另一个异常:

追溯(最近一次呼叫最近):在开始 self.socket.connect((self.address,self.port))中的文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”,行 963 ConnectionRefusedError:[6]无法建立连接,因为目标计算机被主动拒绝它重新加载了模块: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,pyspark.broadcast,pyspark.broadcast,pyspark.broadcast pyspark.conf,pyspark.serializers,pyspark.files,pyspark.join,pyspark.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,最近的回访()

文件“”,第 1 行,位于 runfile('C:/Users/hlee/Desktop/pyspark.py',wdir ='C:/Users/hlee/Desktop')

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

文件“ C:\ Program Files\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,执行文件 exec(compile(f.read()中的文件名,'exec'),名称空间)

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

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

文件“ 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)

call答案中的文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py”中,self._gateway_client,无,self._fqn)

文件“ C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\protocol.py”,第 319 行,在 get_return_value format(target_id 中,“.”,名称),值)

Py4JJavaError:调用 None.org.apache.spark.api.java.JavaSparkContext 时发生错误。 :java.net.BindException:无法分配请求的地址:绑定:16 次重试后,服务“ sparkDriver”失败!考虑将服务'sparkDriver'的适当端口(例如 spark.ui.port 用于 SparkUI)显式设置为可用端口或增加 spark.port.maxRetries。在 sun.nio.ch.Net.bind0(Native 方法)在 sun.nio.ch.Net.bind(Net.java:433)在 sun.nio.ch.Net.bind(Net.java:433)在 sun.nio.ch.Net.bind(Net.java:425)在 sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)在 sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)在 io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)在 io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:485)在 io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1089 在 io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:430)在 io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:415)在 io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:415)在 io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:903)在 io.netty.channel.AbstractChannel.bind(AbstractChannel.java:198)在 io.netty.channel.AbstractChannel.bind(AbstractChannel.java:198)在 io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:348)在 io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:348)在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)在 io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) java.lang.Thread.run(Thread.java:745)

以下是我的示例代码,并且在 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))

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

先感谢您,

回答(1)

4 years ago

就我而言,我只需要 re-estart 内核。

问题是我两次创建了环境:每次我犯错时,我都会从头开始 re-ran 编写代码。