3
タスクが完了し、RDDを数えると予想される結果が得られました。私は対話的なPySparkシェルを実行しています。実行されているステージはありませんが、numRunningTasks!= 0
がExecutorAllocationManagerをWARN:私はこの警告どういう意味かを理解しようとしていませ段階が実行されていないが、しかし、スパークの内部codeから numRunningTasks = 0
は、私はこれが見つかりました:!
// If this is the last stage with pending tasks, mark the scheduler queue as empty
// This is needed in case the stage is aborted for any reason
if (stageIdToNumTasks.isEmpty) {
allocationManager.onSchedulerQueueEmpty()
if (numRunningTasks != 0) {
logWarning("No stages are running, but numRunningTasks != 0")
numRunningTasks = 0
}
}
を
誰かが説明できますか?
私はIDのタスクについて話しています0
私があると言われて the one of the two samples
KMeans()
、と、スパークのMLlibとその経験にこの行動を報告することができ
より少ないタスクで完了しました。私は仕事がまだ失敗したりしませんかどうかわからないです。..
2 takeSample at KMeans.scala:355 2016/08/27 21:39:04 7 s 1/1 9600/9600
1 takeSample at KMeans.scala:355 2016/08/27 21:38:57 6 s 1/1 6608/9600
入力セットは、256次元の100メートルの点、です。
PySparkへのパラメータの一部
:スパークの GitHubから...
// If this is the last stage with pending tasks, mark the scheduler queue as empty
// This is needed in case the stage is aborted for any reason
if (stageIdToNumTasks.isEmpty) {
allocationManager.onSchedulerQueueEmpty()
if (numRunningTasks != 0) {
logWarning("No stages are running, but numRunningTasks != 0")
numRunningTasks = 0
}
}
}
}
、コメントがベストです:我々が得た
spark.dynamicAllocation.enabled false
# Better serializer - https://spark.apache.org/docs/latest/tuning.html#data-serialization
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.kryoserializer.buffer.max 2000m
# Bigger PermGen space, use 4 byte pointers (since we have < 32GB of memory)
spark.executor.extraJavaOptions -XX:MaxPermSize=512m -XX:+UseCompressedOops
# More memory overhead
spark.yarn.executor.memoryOverhead 4096
spark.yarn.driver.memoryOverhead 8192
spark.executor.cores 8
spark.executor.memory 8G
spark.driver.cores 8
spark.driver.memory 8G
spark.driver.maxResultSize 4G
入力セットの大きさはどのくらいですか、どのパラメータをpysparkに渡しますか? –
@FokkoDriesprong私は答えを掲載しました。あなたが望めば見てみることができます! :) – gsamaras