Spark 1.4 ( https://github.com/soundcloud/cosine-lsh-join-spark/tree/master/src/main/scala/com/soundcloud/lsh ) で LSH アルゴリズムを適用し、テキスト ファイル (4GB ) LIBSVM 形式 ( https://www.csie.ntu.edu.tw/~cjlin/libsvm/ ) で重複を見つけます。まず、36 コアのエグゼキューターを 1 つだけ使用して、サーバーで scala スクリプトを実行しました。1.5時間で結果を取得しました。
結果をより速く取得するために、各ノードに 20 コアと 64 GB のメモリがある 3 つのノードを持つ hpc の糸を介して、hadoop クラスターでコードを実行しようとしました。私は hpc でコードを実行した経験があまりないので、ここにある提案に従いました: https://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part -2/
その結果、私は以下のように火花を提出しました:
spark-submit --class com.soundcloud.lsh.MainCerebro --master yarn-cluster --num-executors 11 --executor-memory 19G --executor-cores 5 --driver-memory 2g cosine-lsh_yarn.jar
私が理解しているように、ノードごとに 3 つのエグゼキューターを割り当て、各エグゼキューターに 19 GB を割り当てました。
しかし、2時間以上経過しても結果が得られませんでした。
私のスパーク構成は次のとおりです。
val conf = new SparkConf()
.setAppName("LSH-Cosine")
.setMaster("yarn-cluster")
.set("spark.driver.maxResultSize", "0");
この問題をどのように掘り下げることができますか? 計算時間を改善するには、どこから始めればよいですか?
編集:
1)
私は合体が糸ではるかに遅いことに気づきました
entries.coalesce(1, true).saveAsTextFile(text_string)
2)
HPC のエグゼキューターとステージ:
サーバーからの実行者とステージ: