初始作业未接受任何资源;检查集群ui以确保worker已注册并且具有足够的资源

uyto3xhc  于 2021-06-02  发布在  Hadoop
关注(0)|答案(5)|浏览(506)

我试着从 Eclipse 得到这个一般性错误: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources. 我的版本是 spark-1.6.2-bin-hadoop2.6. 我开始使用 ./sbin/start-master.sh 命令,并设置我的 sparkConf 这样地:

SparkConf conf = new SparkConf().setAppName("Simple Application");
conf.setMaster("spark://My-Mac-mini.local:7077");

我不会在这里带来任何其他代码,因为我运行的任何示例都会弹出这个错误。这台机器是macosx,我很肯定它有足够的资源来运行最简单的例子。
我错过了什么?

gijlo24d

gijlo24d1#

答案的解决方案
原因
spark master没有分配任何资源来执行工作节点或从属节点之类的作业。
修理
您必须通过如下/spark\u home/sbin>/start-slave.sh这样连接主节点来启动从属节点spark://localhost:7077(如果主节点在本地节点中)
结论
在spark submit期间启动主节点和从节点,这样您将获得分配给执行作业的足够资源。
备用方式
您需要在spark-env.sh文件中进行必要的更改,这是不推荐的。

dm7nw8vv

dm7nw8vv2#

如果您尝试使用ide运行应用程序,并且您的workers上有可用资源,则需要执行以下操作:
1) 首先,配置worker和masterspark节点。
2) 指定驱动程序(pc)配置以从辅助进程返回计算值。

SparkConf conf = new SparkConf()
            .setAppName("Test spark")
            .setMaster("spark://ip of your master node:port of your master node")
            .set("spark.blockManager.port", "10025")
            .set("spark.driver.blockManager.port", "10026")
            .set("spark.driver.port", "10027") //make all communication ports static (not necessary if you disabled firewalls, or if your nodes located in local network, otherwise you must open this ports in firewall settings)
            .set("spark.cores.max", "12") 
            .set("spark.executor.memory", "2g")
            .set("spark.driver.host", "ip of your driver (PC)"); //(necessary)
6ovsh4lw

6ovsh4lw3#

我也有同样的问题,那是因为工人们不能和司机沟通。
你需要设置 spark.driver.port (并在你的司机身上打开所说的端口), spark.driver.host 以及 spark.driver.bindAddress 在你的 spark-submit 从司机那里。

bzzcjhmw

bzzcjhmw4#

尝试使用“spark://127.0.0.1:7077“作为主地址,而不是*.local名称。有时java无法解析本地地址-原因我不明白。

5us2dqdw

5us2dqdw5#

此错误表示群集没有足够的资源用于当前作业。因为您尚未启动从属(即工作进程)。群集将没有任何资源可分配给您的作业。启动奴隶将起作用。

`start-slave.sh <spark://master-ip:7077>`

相关问题