大規模なテキストファイルを保存しようとしました。 5ギガバイト大きいファイルを保存するとframeLimitを超えます
sc.parallelize(cfile.toString()
.split("\n"), 1)
.saveAsTextFile(new Path(path+".cs", "data").toUri.toString)
が、私は私が今の年齢のためにここにこだわって
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
...
org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 6
at org.apache.spark.MapOutputTracker$$anonfun$org$apache$spark$MapOutputTracker$$convertMapStatuses$2.apply(MapOutputTracker.scala:542)
at org.apache.spark.MapOutputTracker$$anonfun$org$apache$spark$MapOutputTracker$$convertMapStatuses$2.apply(MapOutputTracker.scala:538)
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
を得続けます。誰でもここで私を助けて、私がテキストファイルとしてcfile
をどのように保存できるか説明できますか?
スタンドアロン/ローカル/ヤーンクラスタ?
- 糸クラスタ
メモリ/コア設定?パーティションの
- 1,8 TB
- 285個のコア
数?
パーティションの数を設定するためのコードの懸念行:
:val model = word2vec
.setMinCount(minCount.asInstanceOf[Int])
.setVectorSize(arguments.getVectorSize)
.setWindowSize(arguments.getContextWindowSize)
.setNumPartitions(numW2vPartitions)
.setLearningRate(learningRate)
.setNumIterations(arguments.getNumIterations)
.fit(wordSequence)
が引数を火花提出私は現在1
にパーティションの数を設定しています
-
spark-submit --master yarn --deploy-mode cluster --driver-memory 20G --num-executors 5 --executor-cores 8 --driver-java-options "-Dspark.akka.frameSize=2000" --executor-memory 20G --class
実際に私は単語ベクトルモデルを保存しようとしています。[スパークバージョン](https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark)です。 /mllib/feature/Word2Vec.scala#L625)の 'save()'メソッドは単純に機能しません。理由はわかりません。私はユーザーグループに連絡しましたが、それ以降は答えはありませんでした。これが私のモデルを単にCSVファイルとして保存して、一見壊れた実装を回避することができたと思った理由です。私はあなたの要求された情報で私の質問を更新します。 – displayname
ドライバプログラムは実際には20GBのRAMを搭載していますが、現在使用している8人の作業者ごとに同じです。 – displayname
それでは、どのようにモデルをcfileに変換しましたか?私は、モデルがある種のrddだと仮定し、テキストとして保存したいので、このrddを文字列のrddに変換することができます(おそらくドライバにすべてを渡すことなく)。そしてhdfsに保存しますまた、parrallelで –