私は現在、以下の環境で火花提出し実行しています:スパーク提出仕事のパフォーマンスを
シングルノード(RAM:40ギガバイト、VCores:8、はスパークバージョン:2.0.2、 Pythonの:3.5)
マイpysparkプログラムは、基本的には、HDFSから1つの450メガバイト非構造化ファイルを読み込みます。次に、各行をループし、必要なデータを取得してリストに配置します。最後に、createDataFrameを使用してデータフレームをHiveテーブルに保存します。
マイpysparkプログラムコードスニペット:
sparkSession = (SparkSession
.builder
.master("yarn")
.appName("FileProcessing")
.enableHiveSupport()
.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")
.getOrCreate())
lines = sparkSession.read.text('/user/test/testfiles').collect()
for line in lines:
// perform some data extrating and place it into rowList and colList using normal python operation
df = sparkSession.createDataFrame(rowList, colList)
df.registerTempTable("tempTable")
sparkSession.sql("create table test as select * from tempTable");
マイスパーク-submitコマンドには、以下の通りである:
spark-submit --master yarn --deploy-mode cluster --num-executors 2 --driver-memory 4g --executor-memory 8g --executor-cores 3 --files /usr/lib/spark-2.0.2-bin-hadoop2.7/conf/hive-site.xml FileProcessing.py
は、それが処理を完了するのに約5分かかりました。パフォーマンスは良いと考えていますか?プロセスが1〜2分以内に完了できるように、エグゼキュータのメモリとエグゼキュータのコアを設定する方法をどのように調整できますか?
あなたの応答を感謝します。ありがとう。
ファイルの読み取りにはどのくらいの時間がかかりましたか? –
私は少なくとも2 + +分を持っていると思う。私たちがログを追跡して読み取りプロセスの正確な時間を知る方法はありますか? – kcyea
スパークユーザーインターフェースを見て、各段階がその仕事に費やした時間を確認してください。 –