我试图在Hadoop 2(分发安装)上设置Hbase 0.94。我使用命令HBase重新编译了支持Hadoop 2的mvn -Dhadoop.profile=2.0 -DskipTests install
我将HBase/lib中的所有Hadoop -*..jars替换为Hadoop 2.2中的相应版本。但是,我仍然无法得到HMaster running.The,下面发生了错误
FATAL org.apache.hadoop.hbase.master.HMaster: HBase is having a problem with its Hadoop jars. You may need to recompile HBase against Hadoop version 2.2.0 or change your hadoop jars to start properly
java.lang.NoClassDefFoundError: org/apache/hadoop/hdfs/protocol/FSConstants$SafeModeAction
at org.apache.hadoop.hbase.util.FSUtils.waitOnSafeMode(FSUtils.java:529)
at org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:333)
at org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:130)
at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:115)
at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:514)
at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:376)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hdfs.protocol.FSConstants$SafeModeAction
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 7 more如何解决这个问题?
发布于 2013-12-20 07:23:36
这是通过使用maven进行一个干净的构建来解决的。以下命令工作正常
mvn clean package assembly:assembly -DskipTests -Dhadoop.profile=2.0https://stackoverflow.com/questions/20655616
复制相似问题