Spark worker不断删除和添加执行器

2024-05-16 07:44:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用一个本地的Ubuntu虚拟机作为主机,一个远程的Ubuntu虚拟机作为worker来构建一个spark集群。 由于本地虚拟机在虚拟机中运行,为了使远程客户机可以访问它,我将虚拟机的7077端口转发到主机的7077端口。 由我开始:

./sbin/start-master.sh -h 0.0.0.0 -p 7077

我让它监听0.0.0.0,因为如果我使用默认的127.0.1.1,远程来宾将无法连接到它。 我通过在远程计算机上执行以下命令来启动worker:

^{pr2}$

worker能够连接到主机,可以在UI上看到: Screen shot

然后我尝试运行“pi”示例python代码:

from pyspark import SparkContext, SparkConf
conf=SparkConf().setAppName("Pi").setMaster("spark://0.0.0.0:7077)
sc=SparkContext(conf=conf)

。。。。 一旦我运行它,程序就永远不会停止,我注意到程序总是删除和添加执行器,因为执行器总是以错误代码1退出。这是执行者的stderr

    Using Spark's default log4j profile: org/apache/spark/log4j-  defaults.properties
    16/02/25 13:22:22 INFO CoarseGrainedExecutorBackend: 
Registered signal handlers for [TERM, HUP, INT]
    16/02/25 13:22:22 WARN NativeCodeLoader: Unable to load 
native-hadoop library for your platform... using builtin-java 
classes where applicable
    16/02/25 13:22:23 INFO SecurityManager: Changing view acls to: kxz138,adminuser
    16/02/25 13:22:23 INFO SecurityManager: Changing modify acls to: kxz138,adminuser
    16/02/25 13:22:23 INFO SecurityManager: SecurityManager: 
authentication disabled; ui acls disabled; users with view 
permissions: Set(kxz138, adminuser); users with modify permissions: 
Set(kxz138, adminuser)
    **16/02/25 13:22:23 ERROR UserGroupInformation: 
PriviledgedActionException as:adminuser (auth:SIMPLE) 
cause:java.io.IOException: Failed to connect to /10.0.2.15:34935
    Exception in thread "main" java.io.IOException: Failed to connect to /10.0.2.15:34935**
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:216)
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:167)
    at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:200)
    at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:187)

我注意到这里的错误实际上是网络问题。工作线程实际上正在尝试访问10.0.2.15,这是我的虚拟机的本地NAT ip地址,但失败了。 当我只从本地计算机部署工作线程时,就不会发生此错误。 有人知道为什么会发生这种错误吗?为什么工作线程尝试访问ip地址10.0.2.15,而不是我的公共ip?在

顺便说一句,我已经设置了从主到从的无密钥ssh访问。在


Tags: toorginfo远程apacheconfjavaat
1条回答
网友
1楼 · 发布于 2024-05-16 07:44:43

我通过确保集群中的vm属于同一个子网来解决这个问题。例如,最初,我将IP 192.168.56.101设置为主节点,192.168.57.101作为工作节点,255.255.255.0作为子网掩码。但这意味着两个IP地址不在同一个子网内。在我将子网掩码更改为例如255.255.0.0之后,我就可以正常运行我的应用程序了。您可能还需要相应地编辑一些配置文件(例如,~/.bashrcconf/spark-env.shconf/slaves.shconf/spark-default.conf和{})

相关问题 更多 >