HBase客户端在JBoss AS 7.1下不起作用

dra*_*uca 5 jboss hadoop hbase jar cloudera

我有一个JBoss应用程序需要与HBase服务器远程通信.当使用简单的控制台项目时,HBase客户端可以正常工作,但是当部署在JBoss服务器中时,服务器似乎没有加载类org.apache.hadoop.hdfs.web.resources.UserProvider.任何人都可以帮助解决方法或修复??

您的回复非常感谢.

错误消息 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/ HFPlatformWeb]](http - 0.0.0.0-8080-6)StandardWrapper.Throwable:java.lang .RuntimeException:java.lang.ClassNotFoundException:org.apache.hadoop.hdfs.web.resources.UserProvider from ...

jars commons-configuration-1.6.jar commons-lang-2.5.jar commons-logging-1.1.1.jar guava-11.0.2.jar hadoop-auth-2.0.0-cdh4.4.0.jar hadoop-common- 2.0.0-cdh4.4.0.jar hadoop-core-2.0.0-mr1-cdh4.4.0.jar hadoop-hdfs-2.0.0-cdh4.4.0.jar hbase.jar log4j-1.2.17.jar protobuf-java -2.4.0a.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar zookeeper-3.4.5-cdh4.4.0.jar

Rom*_*nko 0

  • 异常跟踪中应至少有一条线索。奇怪的是你hdfs.web.resources根本需要。请从一侧查看您的异常堆栈,并从另一侧查看 cloudra JAR,以了解该类“存在”的位置。
  • 你真的已经加载了吗hadoop-hdfs?据我记得,这不是“固定”依赖关系,而是实现了一些处理 HDFS 方案的机制。
  • 我建议将 Cloudera 集群升级到 Cloudera 5 环境。从 HBase 0.96.x 和 Hadoop 2.3.x 开始迈出了相当大的一步,这确实是一个巨大的优势。对我来说,另一个区别是 YARN 基础设施作为默认的 MR 处理程序。这似乎无法解决您的问题,但如果您现在不这样做,您很快就会遇到这种升级的复杂性。它从 HBase 开始被分割为子组件而不是hbase.jarCDH4。依赖关系看起来确实不同。

警告:如果您的集群尚未处于实验阶段,最后一点只是我根据自己的经验提出的建议。