2016-07-20 4 views
1

私はどこからでもその答えを見つけることができなかったというこの質問があります。誰がSpache SparkのRAMにパーティションをロードするのですか?

IはPySparkアプリケーション内のデータをロードするために、次の行を使用しています。次のように

loadFile = self.tableName+".csv" 
dfInput= self.sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load(loadFile) 

マイクラスタ構成は次のとおり

  • I 3つのノードとスパーククラスタを使用しています:1つのノードマスターを起動するために使用され、他の2つのノードはそれぞれ1人の作業者を実行しています。
  • スクリプトを使用して、ログインノード上のクラスタ外からアプリケーションを送信します。
  • このスクリプトはSparkアプリケーションをクラスター展開モードで送信します。この場合、使用している3つのノードのいずれかでドライバーが実行されます。
  • 入力されたCSVファイルは、グローバルに表示される一時ファイルシステム(Lustre)に格納されます。

Apache Spark Standaloneでは、パーティションをRAMにロードするプロセスはどうですか?

  1. 各実行プログラムは、ドライバのノードRAMにアクセスし、そこから独自のRAMにパーティションをロードしますか? (ストレージ - >ドライバーのRAM - >エグゼキューターのRAM)
  2. 各エグゼキューターがストレージにアクセスして、それ自身のRAMにロードするのですか? (ストレージ - エグゼキュータのRAM)

ここには何もありませんか?どのように私はこのプロセスを自分自身で監視できますか(監視ツール、unixコマンド、Sparkのどこか)?

これに深く取り組むことができるコメントやリソースは非常に役に立ちます。前もって感謝します。

答えて

0

第2のシナリオは正しい:

各エグゼキュータが自身のRAMに格納し、負荷へのアクセス? (ストレージ→エグゼキュータのRAM)

関連する問題