2016-12-16 10 views
2

google dataprocでは、スパークの設定がどのように決定されたのでしょうか?私の場合、私は3ノードN1-標準-4クラスタを実行していますし、自動的に生成された火花-defaults.confには、次のようになります。設定は、そのように設定されている理由は、私は疑問に思ってdataproc、特にspark.yarn.am.memoryのデフォルト設定を有効にする

# User-supplied properties. 
    #Fri Dec 16 12:01:47 UTC 2016 
    spark.yarn.am.memoryOverhead=558 
    spark.executor.memory=5586m 
    spark.executor.cores=2 
    spark.driver.memory=3840m 
    spark.yarn.executor.memoryOverhead=558 
    spark.driver.maxResultSize=1920m 
    spark.yarn.am.memory=5586m 

、特に理由スパーク.yarn.am.memoryはその高さに設定されていますか?私が知っている限り、この設定は、ドライバが提出するマシン(マスタ)で実行されるクライアントモードでのみ有効です。また、AMは、ワーカープロセスのリソースを要求し、これらを調整するための「唯一の」担当者です。どうしてam.memoryはそれほど高いのですか?私のシナリオでは、このデフォルト設定は実際には、クライアントモードで1つのスパークプロセスしか起動できないことを暗に示しています。 (これは実際に私が観察したもので、最初は設定を調べた理由です)。

私の質問:dataprocスタートアップスクリプトは、これらの値を設定する方法、その背後にある合理的なもの、そしてなぜam.memoryが特に高いのはなぜですか?

答えて

2

デフォルトでは、Dataprocは、ノードのサイズに関係なく、各NodeManagerに与えられたメモリの半分のSpark AppMastersとExecutorsを提供します。

なぜAppMasterが大きいのですか?良い質問です。唯一の真の答えは、小さなVMでYARNクラスタモードをサポートすることです。 Dataprocは単一のテナントの一時的なクラスタにも最適化されているため、他の小さなコンテナがなければAppMasterの縮小はあまり役に立ちません。

Dataprocチームは、デフォルトの設定を改善するために取り組んでいます(将来の画像バージョンでは)。提案がある場合は、[email protected]までご連絡ください。

関連する問題