2017-06-16 63 views
-1

,我運行將失敗,並出現以下錯誤信息WARN cluster.YarnScheduler:初始作業不接受任何資源

17/06/16 11點10分43秒WARN cluster.YarnScheduler任何火花的作業:初始作業還沒有 接受任何資源;檢查您的集羣UI以確保工作人員 已註冊且具有足夠的資源

Spark版本是1.6,在Yarn上運行。

我從pyspark發佈工作。

而且您可以從作業時間線注意到它無限期地運行並且沒有資源被添加或刪除。 1

回答

-1

第一點是,如果有足夠的資源(例如可用於紗線的節點,CPU和內存),它可以使用動態分配來創建具有適當默認核心和分配內存的火花工作器。

在我的情況下,我需要關閉動態分配,因爲我的資源水平非常低。

所以從pyspark我設置以下值:

conf = (SparkConf().setAppName("simple") 
     .set("spark.shuffle.service.enabled", "false") 
     .set("spark.dynamicAllocation.enabled", "false") 
     .set("spark.cores.max", "1") 
     .set("spark.executor.instances","2") 
     .set("spark.executor.memory","200m") 
     .set("spark.executor.cores","1") 

注:這裏基本上設置的值應小於實際可利用的資源。然而,這裏太小的值可能會導致內存不足問題,或者在作業運行時性能問題緩慢。

The complete code gist of a sample job is available here

另一個重要的一點要注意這種pyspark情況下是上紗線的火花可以在兩種模式

運行
  1. 羣集模式 - 火花驅動程序在火花主節點運行
  2. 客戶端模式 - spark驅動程序從運行交互式shell的客戶端運行。

集羣模式不太適合交互式使用Spark。需要用戶輸入的Spark應用程序(如spark-shell和pyspark)需要Spark驅動程序在啓動Spark應用程序的客戶端進程內運行。

客戶端模式可以在環境被設置爲低於
export PYSPARK_SUBMIT_ARGS='--master yarn --deploy-mode client pyspark-shell'

相關問題