Używam iskierki napisanej w Scali 2.10.4 i działającej na klastrze Spark 1.4.0 (opartym na HDFS i zarządzanym przez YARN) i używającym Jacksona moduły w wersji 2.6.1 na repozytorium MavenBłąd w uruchomieniu zadania w Spark 1.4.0 z modułem Jacksona z ScalaObjectMapper
Podczas lokalnego uruchamiania kodu z mojego IDE (IntelliJ IDEA v14) wszystko działa w klastrze w pamięci, ale podczas uruchamiania zadania w moim zdalnym klastrze (klastrze EMR na AWS VPC) Dostaję następujący wyjątek:
java.lang.AbstractMethodError: com.company.scala.framework.utils.JsonParser$$anon$1.com$fasterxml$jackson$module$scala$experimental$ScalaObjectMapper$_setter_$com$fasterxml$jackson$module$scala$experimental$ScalaObjectMapper$$typeCache_$eq(Lorg/spark-project/guava/cache/LoadingCache;)V
at com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper$class.$init$(ScalaObjectMapper.scala:50)
at com.company.scala.framework.utils.JsonParser$$anon$1.<init>(JsonParser.scala:14)
at com.company.scala.framework.utils.JsonParser$.<init>(JsonParser.scala:14)
at com.company.scala.framework.utils.JsonParser$.<clinit>(JsonParser.scala)
at com.company.migration.Migration$.printAllKeys(Migration.scala:21)
at com.company.migration.Main$$anonfun$main$1.apply(Main.scala:22)
at com.company.migration.Main$$anonfun$main$1.apply(Main.scala:22)
at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371)
at scala.collection.Iterator$$anon$11.hasNext(Iterator.scala:327)
at org.apache.spark.util.collection.ExternalSorter.insertAll(ExternalSorter.scala:199)
at org.apache.spark.shuffle.sort.SortShuffleWriter.write(SortShuffleWriter.scala:56)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:70)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
at org.apache.spark.scheduler.Task.run(Task.scala:70)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Próbowałem spojrzeć przez Internet na wyjątek i bez powodzenia. Próbowałem również znaleźć podobne pytanie i znalazłem tylko jeden wątek bez akceptowalnej odpowiedzi i żadna z odpowiedzi mi tam nie pomogła.
Mam nadzieję, że znajdę pomoc tutaj,
Dzięki.
Wpadłem na ten sam problem. Jak to rozwiązałeś? – Aliza
Niestety, nie zrobiłem tego. Przestałem używać ScalaObjectMapper i zacząłem pracować ze zwykłym ObjectMapperem. Jak dotąd osiąga moje cele. –
Na czym polega rozwiązanie? Dzięki. Też mam ten problem. – giaosudau