簡體   English   中英

Hadoop 2.2.0上的HBase 0.94.4

[英]HBase 0.94.4 on Hadoop 2.2.0

我正在嘗試通過Hadoop 2設置Hbase 0.94(分布式設置)。 我使用命令mvn -Dhadoop.profile=2.0 -DskipTests install重新編譯了支持Hadoop 2的HBase

我用Hadoop 2.2中的相應替換了HBase / lib中的所有hadoop-*。jar。 我仍然無法運行HMaster。發生以下錯誤

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

如何解決呢?

通過使用Maven進行干凈構建可以解決此問題。 以下命令有效

mvn clean package assembly:assembly -DskipTests -Dhadoop.profile=2.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM