与Jackson库的Hadoop和Druid不兼容问题

时间:2016-04-27 08:45:27

标签: azure hadoop druid

我在具有HDP洞察力2.4.1.1-3的Azure群集上运行druid 0.9.0。 hadoop客户端是2.7.1。 经过无数次尝试与杰克逊解决问题,特别是:

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

我已尝试过这里记录的所有变通方法

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

无济于事。

在面对同一问题的其他用户建议的情况下,重新编译杰克逊依赖项后,重新编译失败。

我试过的最后一个案例是添加

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

到我的索引任务的jobProperties属性,结果如下:

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

我们正在尝试运行索引作业。

任何帮助将不胜感激。有没有人在同样的设置中取得任何成功?

1 个答案:

答案 0 :(得分:0)

正在发生的事情是jackson-datatype-guava的版本与jackson-databind的版本不同;可能番石榴一个更新。版本应该匹配,虽然有些组合可行;一个你没有。可能发生的情况是某些早期版本的jackson-databind具有特定方法final,但在以后的版本中已放宽限制。