我对servicemix和osgi还比较陌生,我想知道是否有人在servicemix中成功地使用了camel hdfs组件和hadoop2.x集群。
我试图这样做,但得到了一个ipc版本错误的问题。为了绕开它,我分叉了camel hdfs组件,修改了hadoop依赖项,并且对该组件进行了很少的更改,使其在作为独立应用程序部署且所有测试都通过的情况下工作。
现在的挑战是在servicemix中运行它,尽管我使用wrap:*命令将依赖的hadoop库 Package 为一个包,但是初始化hadoop类时仍然存在问题。我得到的一个例外是
Exception in thread "SpringOsgiExtenderThread-78" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/HdfsBlockLocation
at
org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:125)
.....
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.HdfsBlockLocation not found by wrap_mvn_org.apache.hadoop_hadoop-common_2.0.0-cdh4.2.0 [441]
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:812)
1条答案
按热度按时间nfeuvbwi1#
camel hdfs支持hadoop1.1或1.2(取决于使用的camel版本)。此组件尚未升级为支持hadoop 2。
当您在servicemix中运行时,您将需要hadoop2的osgi包。将它们作为 Package 安装并不总是可行的。
所以答案是,hadoop还不支持camel hdfs。