2016-12-19 9 views
0

Spark 1.4(https://github.com/soundcloud/cosine-lsh-join-spark/tree/master/src/main/scala/com/soundcloud/lsh)でLSHアルゴリズムを適用すると、LIBSVMフォーマット(https://www.csie.ntu.edu.tw/~cjlin/libsvm/)のテキストファイルを処理して重複を検索します。まず、36コアのエグゼキュータを1つだけ使用して、サーバーにスカラースクリプトを実行しました。私は1.5時間で私の結果を検索しました。hadoopクラスタでsparkを実行しているときに糸でより速い結果が得られない

私の結果をもっと速くするために、各ノードに20コアと64ギガバイトのメモリがある3つのノードを持つhpcの糸を使ってhadoopクラスタでコードを実行しようとしました。私が理解できるように

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:結果https://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

、私は以下のように火花を提出した:私はHPCに多く、実行中のコードを経験しておりませんので、私はここで与えられた提案が続いていますノードごとのエグゼキュータと各エグゼキュータのための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 FROM

執行やステージ:

enter image description here サーバからの

執行やステージ:

enter image description here

enter image description here

+0

私の最初の勘は、糸クラスタが複数並列性を提供していない(40個の合計コアは36個のコアをv.s.)が、それは、ネットワークのオーバーヘッドを導入しています。それ以上の情報がなければ、原因を見つけることは不可能です。 Spark UIを使用してジョブの時間を比較し、どちらが遅いかを確認することができます。 – zsxwing

+0

ありがとう@zsxwing!私はステージを確認し、ここに通知します。 –

+0

@zsxwingいくつかのUIトラッキングを追加しました。見られるように、ステージは、特に仕分け手順中の糸クラスターで少し長くかかる。これらの結果は重要なことを伝えていますか? –

答えて

0

より多くのメモリをストレージメモリに詰まっています。そのメモリを効率的に使用していません(データをキャッシュしています)。 40ギグの合計で10ギグ以下が使用されています。あなたはそのmemorystorgeを減らし、そのmemoryexecutionを使用します。

11人のエグゼキュータを指定したにもかかわらず、エグゼキュータは4人しか起動しませんでした。 最初のスパークUIスクリーンショットからの推論。スパークで使用されるコアの総数は、エグゼクティブ全員でわずか19です。合計コアは、実行中のタスクの数に等しい。

次のリンクをクリックしてください。

https://community.hortonworks.com/articles/42803/spark-on-yarn-executor-resource-allocation-optimiz.html

関連する問題