2017-01-02 91 views
0

我正在運行樣品工作在我的一端,火花工作用戶界面表示總的正常運行時間爲26秒,但是當我合計工作的持續時間列時,它只有17-18秒左右。哪一個應該我依賴於爲了確定運行我的工作的執行邏輯的總時間。我不擔心啓動和停止集羣所需的時間。包括那個時間在內是26秒,是這種情況,我該如何忽略開始和停止集羣的時間,並獲得邏輯的最終執行時間。火花網絡用戶界面符號

Spark job UI

而且我的火花的配置是這樣的:

val conf = new SparkConf().setAppName("Metrics").setMaster("spark://master:7077").set("spark.executor.memory", "5g").set("spark.cores.max", "4").set("spark.sql.warehouse.dir", "file:///c:/tmp/spark-warehouse")set("spark.executor.memory", "5g") 
    val sc = new SparkContext(conf) 
    val sqlContext = new org.apache.spark.sql.SQLContext(sc) 

我有2個物理核心和2個虛擬核心機,即4個邏輯核心。我正嘗試通過將其設定使用所有核心到4核心的配置,但由於某種原因,只有1個執行程序用於執行這項工作。有人可以解釋爲什麼只有1個執行程序產生的原因,以及核心和火花世界中的執行程序之間的關係。我是新來的,所以任何幫助都會很棒。

Executor for the job here

回答

0

單執行人可以在你的情況下,使用多線程等。你有一個4核心執行器。

每個執行程序線程可以同時處理單個分區,以便您的集羣可以同時處理四個分區。

在這樣的小設置中,沒有理由啓動多個執行器JVM,但是如果可以使用spark.executor.cores來配置單個執行器可以使用多少個內核。

+0

感謝您的解釋,您是否對第一個查詢有關於爲什麼spark web ui顯示持續時間爲26秒,持續時間列爲15秒的想法。 – baiduXiu