簡體   English   中英

Spark獨立模式不將作業分發到其他工作程序節點

[英]Spark standalone mode not distributing job to other worker node

我在獨立模式下運行Spark工作。 我已經將我的工作程序節點配置為連接到主節點。 他們已成功建立連接,但是當我在spark master上運行作業時,該作業沒有分發。 我不斷收到以下消息-

WARN TaskSchedulerImpl:初始作業未接受任何資源; 檢查您的集群用戶界面,以確保工作人員已注冊並擁有足夠的資源

我試圖在工作節點上以本地方式運行作業,並且運行良好,這意味着資源可用。 spark master-ui也顯示工作程序已接受該工作。來回的master和worker節點均啟用了passwordless ssh。 我感覺可能是某些防火牆問題,或者可能是未打開Spark驅動程序端口。 我的工作節點日志顯示-

16/03/21 10:05:40 INFO ExecutorRunner:啟動命令:“ / usr / lib / jvm / java-7-oracle / bin / java”“-cp”“ / mnt / pd1 / spark / spark-1.5。 0-bin-hadoop2.6 / sbin /../ conf /:/ mnt / pd1 / spark / spark-1.5.0-bin-hadoop2.6 / lib / spark-assembly-1.5.0-hadoop2.6.0.jar :/mnt/pd1/spark/spark-1.5.0-bin-hadoop2.6/lib/datanucleus-rdbms-3.2.9.jar:/mnt/pd1/spark/spark-1.5.0-bin-hadoop2.6 /lib/datanucleus-api-jdo-3.2.6.jar:/mnt/pd1/spark/spark-1.5.0-bin-hadoop2.6/lib/datanucleus-core-3.2.10.jar“” -Xms8192M“ “ -Xmx8192M”“ -Dspark.driver.port = 51810”“ -Dspark.cassandra.connection.port = 9042”“ -XX:MaxPermSize = 256m”“ org.apache.spark.executor.CoarseGrainedExecutorBackend”“-驅動程序url“” akka.tcp://sparkDriver@10.0.1.192:51810 / user / CoarseGrainedScheduler“” --executor-id“” 2“” --hostname“” 10.0.1.194“” --cores“” 4“” --app-id“” app-20160321100135-0001“” --worker-url“” akka.tcp://sparkWorker@10.0.1.194:39423 / user / Worker“

工作節點上的執行程序在stderr中顯示以下日志-

16/03/21 10:13:52 INFO Slf4jLogger:Slf4jLogger已啟動16/03/21 10:13:52 INFO遠程處理:開始遠程處理16/03/21 10:13:52 INFO遠程處理:遠程處理已開始; 正在偵聽地址:[akka.tcp://driverPropsFetcher@10.0.1.194:59715] 16/03/21 10:13:52信息實用程序:已成功在端口59715上啟動服務“ driverPropsFetcher”。

您可以在Spark上下文中指定特定的驅動程序端口:

spark.driver.port  = "port"
val conf = new SparkConf().set("spark.driver.port", "51810") 

PS:在工作機上手動啟動spark worker並將其連接到Master時, t need any further passless authentication or similar between master and spark. This would only be necessarry if you use the Master for starting all slaves (start-slaves.sh). So this shouldn t need any further passless authentication or similar between master and spark. This would only be necessarry if you use the Master for starting all slaves (start-slaves.sh). So this shouldn t need any further passless authentication or similar between master and spark. This would only be necessarry if you use the Master for starting all slaves (start-slaves.sh). So this shouldn是一個問題。

設置新集群時,很多人都會遇到問題。 如果您可以在Web UI中找到Spark Slave,但它們不接受作業,則防火牆很有可能阻止了通信。 看看我的其他答案: Mesos上的Apache Spark:初始作業未接受任何資源

盡管其他大多數答案都集中在spark從站上的資源分配(內核,內存),但我想強調一下防火牆可能引起完全相同的問題,尤其是在雲平台上運行spark時。

如果可以在Web UI中找到spark從屬,則可能已經打開了標准端口8080、8081、7077、4040。但是,當您實際運行作業時,它會使用SPARK_WORKER_PORT,spark.driver.port和spark.blockManager.port。默認情況下是隨機分配的。 如果防火牆阻止了這些端口,則主服務器無法從從服務器檢索任何特定於作業的響應並返回錯誤。

您可以通過打開所有端口並查看從站是否接受作業來運行快速測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM