2016-04-27 1 views
4

Je cours druid 0.9.0 sur un cluster Azure avec HDP insight 2.4.1.1-3. Le client hadoop est 2.7.1. Après d'innombrables tentatives pour résoudre le problème avec Jackson, plus précisément:Problème d'incompatibilité Hadoop et Druide avec la bibliothèque Jackson

Error: class com.fasterxml.jackson.datatype.guava.deser.HostAndPortDeserializer overrides final method deserialize. 

J'ai essayé toutes les solutions de contournement décrites ici

https://github.com/druid-io/druid/blob/master/docs/content/operations/other-hadoop.md

en vain.

La recompilation a échoué après avoir ombré la dépendance jackson comme suggéré par un autre utilisateur confronté au même problème.

Le dernier cas j'ai essayé ajoutait le

"mapreduce.job.user.classpath.first": "true" 

à la propriété jobProperties de ma tâche d'indexation avec les résultats suivants:

Diagnostics: Exception from container-launch. 
Container id: container_e02_1461544451524_0047_05_000001 
Exit code: 1 
Stack trace: ExitCodeException exitCode=1: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:576) 
    at org.apache.hadoop.util.Shell.run(Shell.java:487) 
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:753) 
    at org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor.launchContainer(LinuxContainerExecutor.java:371) 
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:303) 
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    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) 
Shell output: main : command provided 1 
main : run as user is nobody 
main : requested yarn user is druid 

Nous essayons d'exécuter un travail d'indexation.

Toute aide sera appréciée. Quelqu'un at-il eu du succès dans la même configuration?

Répondre

0

Qu'est-ce qui se passe est que la version de jackson-datatype-guava a une version mineure différente de jackson-databind; probablement le goyave est plus récent. Les versions doivent correspondre, bien que certaines combinaisons fonctionnent; celui que vous avez n'a pas. Ce qui se produit probablement est qu'une version antérieure de jackson-databind a une méthode spécifique comme final, mais la limitation a été assouplie dans une version ultérieure.