Не как исправить проблему в ГХ в искровом кластере, Кто-нибудь может объяснить, как бороться с ParOldGen и PSYoungGen? - PullRequest
0 голосов
/ 11 февраля 2019

Проверены все предоставленные конфигурации, shuffle spark.default.parallelism,spark.sql.shuffle.partitions и все необходимые параметры памяти, такие как исполняемая память и память драйвера .У меня достаточно памяти около 64 ГБ, но я не знаю, почему это происходит ...

Я хочу знать, можно ли это исправить с помощью конфигурации памяти.Он выполняет все предыдущие задачи, но не выполняет 31 задачу.Размер запроса большой, он хорошо подходит для запросов небольшого размера.

    logger.debug(String.format("Executing SQL %s", taskExec));
    Dataset<Row> dfTmp = null;
    dfTmp = sqlContext.sql(taskExec);


AdaptiveSizeStop: collection: 107 
[PSYoungGen: 2917987K->2917987K(3547136K)] [ParOldGen: 8387375K- 
>8387375K(8388608K)] 11305363K->11305363K(11935744K), [Metaspace: 
 72368K->72368K(1114112K)], 0.4457447 secs] [Times: user=2.27 sys=0.00, 
 real=0.44 secs] 
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill %p"
#   Executing /bin/sh -c "kill 9085"...
282.474: [Full GC (Ergonomics) 282.535: [SoftReference, 0 refs, 0.0000665 secs]282.535: [WeakReference, 956 refs, 0.0001140 secs]282.535: [FinalReference, 1092 refs, 0.0000635 secs]282.535: [PhantomReference, 0 refs, 38 refs, 0.0000145 secs]282.536: [JNI Weak Reference, 0.0000145 secs]AdaptiveSizeStart: 283.597 collection: 108 
PSAdaptiveSizePolicy::compute_eden_space_size limits: desired_eden_size: 3086984786 old_eden_size: 3023044608 eden_limit: 3023044608 cur_eden: 2991587328 max_eden_size: 3023044608 avg_young_live: 2739392512
PSAdaptiveSizePolicy::compute_eden_space_size: gc time limit gc_cost: 1.000000  GCTimeLimit: 98
PSAdaptiveSizePolicy::compute_eden_space_size: costs minor_time: 0.144870 major_cost: 0.975053 mutator_cost: 0.000000 throughput_goal: 0.990000 live_space: 11575527424 free_space: 5652873216 old_eden_size: 3023044608 desired_eden_size: 3023044608
PSAdaptiveSizePolicy::compute_old_gen_free_space limits: desired_promo_size: 3143082161 promo_limit: 2629828608 free_in_old_gen: 20183040 max_old_gen_size: 8589934592 avg_old_live: 8569751552
PSAdaptiveSizePolicy::compute_old_gen_free_space: gc time limit gc_cost: 1.000000  GCTimeLimit: 98
PSAdaptiveSizePolicy::compute_old_gen_free_space: costs minor_time: 0.144870 major_cost: 0.975053 mutator_cost: 0.000000 throughput_goal: 0.990000 live_space: 11577579520 free_space: 5652873216 old_promo_size: 2629828608 desired_promo_size: 2629828608
AdaptiveSizeStop: collection: 108 
[PSYoungGen: 2921472K->778705K(3547136K)] [ParOldGen: 8387375K->8386929K(8388608K)] 11308847K->9165634K(11935744K), [Metaspace: 72370K->72370K(1114112K)], 1.1228849 secs] [Times: user=8.59 sys=0.74, real=1.12 secs] 
10:51:46.868 [Executor task launch worker for task 9593] ERROR org.apache.spark.executor.Executor - Exception in task 30.0 in stage 144.0 (TID 9593)
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:3332)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
    at java.lang.StringBuilder.append(StringBuilder.java:136)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at org.apache.spark.sql.catalyst.util.package$$anonfun$sideBySide$1.apply(package.scala:113)
    at org.apache.spark.sql.catalyst.util.package$$anonfun$sideBySide$1.apply(package.scala:112)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at org.apache.spark.sql.catalyst.util.package$.sideBySide(package.scala:112)
    at org.apache.spark.sql.catalyst.util.package$.sideBySide(package.scala:104)
    at org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1$$anonfun$apply$5.apply(RuleExecutor.scala:137)
    at org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1$$anonfun$apply$5.apply(RuleExecutor.scala:138)
    at org.apache.spark.internal.Logging$class.logDebug(Logging.scala:58)
    at org.apache.spark.sql.catalyst.rules.RuleExecutor.logDebug(RuleExecutor.scala:40)
    at org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1.apply(RuleExecutor.scala:134)
    at org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1.apply(RuleExecutor.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at org.apache.spark.sql.catalyst.rules.RuleExecutor.execute(RuleExecutor.scala:76)
    at org.apache.spark.sql.catalyst.expressions.codegen.GenerateUnsafeProjection$$anonfun$canonicalize$1.apply(GenerateUnsafeProjection.scala:354)
    at org.apache.spark.sql.catalyst.expressions.codegen.GenerateUnsafeProjection$$anonfun$canonicalize$1.apply(GenerateUnsafeProjection.scala:354)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
    at scala.collection.immutable.List.map(List.scala:285)
    at org.apache.spark.sql.catalyst.expressions.codegen.GenerateUnsafeProjection$.canonicalize(GenerateUnsafeProjection.scala:354)
    at org.apache.spark.sql.catalyst.expressions.codegen.GenerateUnsafeProjection$.generate(GenerateUnsafeProjection.scala:362)
10:51:46.900 [SIGTERM handler] ERROR org.apache.spark.executor.CoarseGrainedExecutorBackend - RECEIVED SIGNAL TERM
10:51:46.918 [Thread-2] INFO org.apache.spark.storage.DiskBlockManager - Shutdown hook called

1 Ответ

0 голосов
/ 12 февраля 2019

Это странная проблема, с которой я столкнулся, проверил все детали конфигурации.Как я уже упоминал, у меня достаточно памяти, но это приводило к проблеме GC из памяти.Поэтому я был занят просмотром конфигурации на стороне памяти.

Я прочитал все статьи, связанные с искрой. Как обрабатывать память в Spark . Я столкнулся с подобными проблемами при переполнении стека, но ни у кого не было такой же точной ошибки в их проблеме.

Этот тип ошибки был найден в версии 2.13 для Scala.x, поэтому я подозревал, что мой TaskServiceImpl может выдать это исключение, но я использовал 2.11.8.

java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:3332)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
    at java.lang.StringBuilder.append(StringBuilder.java:136)

Я пытался проверить это в cmd --- >> scala> "a" .mkString(","). Он выдавал корректный вывод, поэтому я был уверен, что проблема не в этом, поэтому Я попытался проверить версию hadoop, поэтому попытался изменить ее на последнюю версию hadoop версии 5.14.6, и это сработало.понравился champ .

Я использовал spark 2.11.8 с scala 2.11.8 и моя версия hadoop на CDH была 5.13.X.

...