HDFS 在Spark 0.9.0上运行作业引发错误

xtfmy6hx  于 2022-12-09  发布在  HDFS
关注(0)|答案(7)|浏览(277)

我安装了一个Apache Spark 0.9.0集群,我试图在其中部署一个从HDFS读取文件的代码。这段代码抛出一个警告,最终作业失败。

/**
 * running the code would fail 
 * with a warning 
 * Initial job has not accepted any resources; check your cluster UI to ensure that 
 * workers are registered and have sufficient memory
 */

object Main extends App {
    val sconf = new SparkConf()
    .setMaster("spark://labscs1:7077")
    .setAppName("spark scala")
    val sctx = new SparkContext(sconf)
    sctx.parallelize(1 to 100).count
}

以下是警告消息
初始作业未接受任何资源;检查集群UI以确保worker已注册并具有足够的内存
如何摆脱这种情况,还是我遗漏了一些配置。

fae0ux8s

fae0ux8s1#

当通过设置spark.cores.maxspark.executor.memory resp'请求的内核数量或RAM数量(每个节点)超过可用数量时,就会出现此错误消息。因此,即使没有其他人使用集群,并且您指定要使用每个节点100GB RAM,但您的节点只能支持90GB,您也会收到此错误消息。
公平地说,在这种情况下,信息是模糊的,如果它说你超过了最大值,那会更有帮助。

bprjcwpo

bprjcwpo2#

Spark master似乎无法为此任务分配任何工作进程。工作进程未启动或都处于忙碌状态。
检查主节点上的Spark UI(端口由spark-env.sh中的SPARK_MASTER_WEBUI_PORT指定,默认为8080),应该如下所示:

要使群集正常工作,请执行以下操作:

  • 一定有一些工人的状态是“活着”
  • 必须有一些核心可用(例如,如果所有核心都忙碌冻结的任务,则群集将不会接受新任务)
  • 必须有足够的可用内存
2w3kk1z5

2w3kk1z53#

还要确保你的spark工作人员可以与驱动程序双向通信。检查防火墙等。

nfeuvbwi

nfeuvbwi4#

我遇到了这个问题。我有一个简单的1节点Spark集群,在尝试运行Spark应用程序时遇到了这个错误。
我运行了上面的一些建议,当我试图对集群运行Spark shell时,在UI中看不到这一点,我开始怀疑我的集群没有正常工作。
在我的主机文件中,我有一个条目,比如SparkNode,它引用了正确的IP地址。
我无意中在conf/spark-env.sh文件中的SPARK_MASTER_IP变量中放置了错误的IP地址。我将其更改为SparkNode,并将SPARK_LOCAL_IP更改为指向SparkNode
为了测试这一点,我在浏览器中使用SparkNode:7077打开了UI,我可以看到Spark的一个示例正在运行。
然后我使用Wildfires建议运行Spark shell,如下所示:

MASTER=spark://SparkNode:7077 bin/spark-shell

回到UI,我现在可以看到Spark shell应用程序正在运行,这在以前是看不到的。
所以我退出了Spark Shell,使用Spark Submit运行了我的应用程序,它现在可以正常工作了。
这是绝对值得检查出您所有的IP和主机条目,这是我的问题的根本原因。

hsvhsicv

hsvhsicv5#

您需要指定正确的SPARK_HOME和您的驱动程序的IP地址,以防Spark无法定位您的Netty jar服务器。请注意,您的Spark主机应该监听您想要使用的正确IP地址。这可以通过在spark-env.sh文件中设置SPARK_MASTER_IP=yourIP来实现。

val conf = new SparkConf()
  .setAppName("test")
  .setMaster("spark://yourSparkMaster:7077")
  .setSparkHome("YourSparkHomeDir")
  .set("spark.driver.host", "YourIPAddr")
v440hwme

v440hwme6#

检查有关主机名、IP地址和环回的错误。确保设置SPARK_LOCAL_IPSPARK_MASTER_IP

1yjd4xko

1yjd4xko7#

我有类似的问题初始作业没有接受任何资源,修复它指定Spark正确的下载网址spark-env.sh或安装Spark上的所有奴隶。

export SPARK_EXECUTOR_URI=http://mirror.fibergrid.in/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz
  • 初始作业未接受任何资源;检查集群UI以确保Worker已注册并具有足够的内存 *

相关问题