IllegalAccessError à goyave du Chronomètre à partir de org.apache.hadoop.mapreduce.lib.d'entrée.FileInputFormat.listStatus
J'essaie de l'exécuter petite étincelle d'application et reçois l'exception suivante:
Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.mapreduce.lib.input.FileInputFormat
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:262)
at org.apache.hadoop.mapreduce.lib.input.CombineFileInputFormat.getSplits(CombineFileInputFormat.java:217)
at org.apache.spark.rdd.NewHadoopRDD.getPartitions(NewHadoopRDD.scala:95)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
at scala.Option.getOrElse(Option.scala:120)
pertinentes gradle la section des dépendances:
compile('org.apache.spark:spark-core_2.10:1.3.1')
compile('org.apache.hadoop:hadoop-mapreduce-client-core:2.6.2') {force = true}
compile('org.apache.hadoop:hadoop-mapreduce-client-app:2.6.2') {force = true}
compile('org.apache.hadoop:hadoop-mapreduce-client-shuffle:2.6.2') {force = true}
compile('com.google.guava:guava:19.0') { force = true }
OriginalL'auteur Lika | 2016-04-05
Vous devez vous connecter pour publier un commentaire.
version
2.6.2
dehadoop:hadoop-mapreduce-client-core
ne peut pas être utilisé conjointement avecguava
's nouvelles versions (j'ai essayé17.0
-19.0
) depuisguava
'sStopWatch
constructeur ne peut pas être consulté (causant ci-dessusIllegalAccessError
)à l'aide de
hadoop-mapreduce-client-core
'dernière version -2.7.2
(dans lequel ils n'utilisent pasguava
'sStopWatch
dans la méthode ci-dessus, plutôt qu'ils utilisentorg.apache.hadoop.util.StopWatch
) a résolu le problème, avec deux dépendances supplémentaires qui ont été nécessaires:note:
il y a deux
org.apache.commons.io
paquets:commons-io:commons-io (la nôtre ici), et
org.apache.commons:commons-io (ancien, 2007). assurez-vous d'inclure le bon.
OriginalL'auteur Lika
Je viens de changer mon goyave version de 19.0 15.0 et cela a fonctionné. Je suis actuellement en utilisant la version de spark 2.2
OriginalL'auteur HadoopEvangelist
J'ai eu ce problème avec Spark 1.6.1 parce que l'un de nos dépendances supplémentaires expulsés de Goyave 14.0.1 et l'a remplacé par 18.0. L'étincelle a la base de la dépendance pour hadoop-client de 2.2. Voir [Repo Maven] (https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10/1.6.1)
La solution qui a fonctionné pour est ajouter à sbt
libraryDependencies
suivantes:"org.apache.hadoop" % "hadoop-client" % "2.7.2"
OriginalL'auteur ekrich
Les sons que vous avez une Goyave incompatibilité de version.
Quelque chose dans votre base de code est d'essayer d'invoquer le
Stopwatch
constructeur, mais les constructeurs ont été retirés de dans la Goyave 17.0 en faveur de la statique des méthodes de fabrique (createStarted()
etcreateUnstarted()
) qui ont été ajoutés dans la Goyave 15.0.Vous devez mettre à jour n'importe quel code est d'essayer d'utiliser les constructeurs à utiliser la statique de l'usine de méthodes à la place.
OriginalL'auteur Kurt Alfred Kluever
Dans mon cas, en raison de l'ajout de
guava 21.0
entraîner une erreur.Après cela, je suis en utilisant
guava 15.0
ou de supprimer au-dessus de la dépendance. Mon code fonctionne bien.OriginalL'auteur VanThaoNguyen
Solution
Identifiés par le biais de la dépendance de la hiérarchie et a ajouté maven exclusions résolu ce problème.
OriginalL'auteur Praveen Kumar K S
Il semble que le problème vient de bibliothèques dépendantes.
Fondamentalement, vous obtiendrez le problème lorsque vous essayez de placer les données dans la table hbase.
Au début, j'avais utilisé
<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.1.2</version> </dependency>
J'ai eu le même problème que vous et à plus tard j'ai changé pour
<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-shaded-client</artifactId> <version>1.1.2</version> </dependency>
et maintenant, le problème a été résolu.OriginalL'auteur Ram Jaddu
Si vous voulez contourner ce problème sans re-construction de l'Étincelle, par exemple à l'aide d'un pré-construit de distribution de l'Étincelle, puis j'ai trouvé le suivant travaillé sur Apache Spark 2.3.0 (c'est à dire utilisé le pré-construit: "spark-2.3.0-bin-sans-hadoop'):
Il peut également être possible de forcer la souhaitées "hadoop-mapreduce-client-core' le fichier jar à être utilisé par la modification de votre classpath (de sorte que l'Étincelle trouve la version d'Hadoop plutôt que celle distribuée par Étincelle).
OriginalL'auteur B. Tolley
Que nous venons de vivre la même situation à l'aide de l'Ide et de la bougie.
Lors de l'utilisation de
com.google.goyave 20.0 est téléchargé et hadoop client 2.6.5 est téléchargé.
La solution la plus rapide serait de forcer la goyave de la bibliothèque à la version 15.0 (SBT)
OriginalL'auteur Carlos David Peña