As Ted suggests it's best to recompile the source distribution of HBase
against more recent versions of Hadoop then what we've compiled our
convenience binaries against. Hadoop often makes incompatible changes
across point releases, which can also extend to dependencies (versions of
guava or protobuf libraries used to build Hadoop might be newer than those
provided in the HBase binary distribution, etc), so building from source
with -Dhadoop-two.version=<the_version_you_want> is best in my opinion.

Even so there might still be an issue lurking. Hadoop 2.6.0 is pretty new
and I'm not sure we have done any significant testing with it. If you
rebuild against Hadoop 2.6.0 and are still seeing this problem please open
a ticket on our issue tracker: https://issues.apache.org/jira/browse/HBASE


On Mon, Feb 9, 2015 at 8:48 PM, Ted Yu <yuzhih...@gmail.com> wrote:

> What command did you use to build against hadoop 2.6.0 ?
> hadoop-2.0 is the default profile.
>
> Adding '-Dhadoop-two.version=2.6.0' to command line should do.
>
> Cheers
>
> On Mon, Feb 9, 2015 at 7:45 PM, Tong Pham <tp...@quantcast.com> wrote:
>
> > Hi everyone,
> >
> > I am currently trying to set up an Hbase 0.98.9 cluster to run against a
> > Hadoop 2.6.0 HDFS filesystem.
> > The problem is, according to
> > http://hbase.apache.org/book.html#basic.prerequisites :
> >
> > In distributed mode, it is critical that the version of Hadoop that is
> out
> > on your cluster match what is under HBase. Replace the hadoop jar found
> in
> > the HBase lib directory with the hadoop jar you are running on your
> cluster
> > to avoid version mismatch issues. Make sure you replace the jar in HBase
> > everywhere on your cluster. Hadoop version mismatch issues have various
> > manifestations but often all looks like its hung up.
> >
> > When I tried replacing the lib/hadoop.*.jar files that came with Hbase,
> > and which are labeled as version 2.2.0,
> > with their 2.6.0 counterparts, I encountered this error starting up a
> > brand new Hbase master:
> >
> > @4000000054d9777010e182a4 2015-02-10T03:13:42.283+0000 DEBUG
> > master.ActiveMasterManager A master is now available
> > @4000000054d97770113b9d0c 2015-02-10T03:13:42.288+0000 INFO
> > Configuration.deprecation fs.default.name is deprecated. Instead, use
> > fs.defaultFS
> > @4000000054d97770140e50c4 2015-02-10T03:13:42.334+0000 FATAL
> > master.HMaster Unhandled exception. Starting shutdown.
> > @4000000054d97770140e54ac java.lang.IllegalStateException
> > @4000000054d97770140e5894       at
> > com.google.common.base.Preconditions.checkState(Preconditions.java:133)
> > @4000000054d97770140e5894       at
> > org.apache.hadoop.ipc.Client.setCallIdAndRetryCount(Client.java:117)
> > @4000000054d97770140e5c7c       at
> >
> org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:99)
> > @4000000054d97770140e5c7c       at
> > com.sun.proxy.$Proxy19.setSafeMode(Unknown Source)
> > @4000000054d97770140eaa9c       at
> > org.apache.hadoop.hdfs.DFSClient.setSafeMode(DFSClient.java:2430)
> > @4000000054d97770140eae84       at
> >
> org.apache.hadoop.hdfs.DistributedFileSystem.setSafeMode(DistributedFileSystem.java:1036)
> > @4000000054d97770140eae84       at
> >
> org.apache.hadoop.hdfs.DistributedFileSystem.setSafeMode(DistributedFileSystem.java:1020)
> > @4000000054d97770140eb26c       at
> > org.apache.hadoop.hbase.util.FSUtils.isInSafeMode(FSUtils.java:447)
> > @4000000054d97770140ebe24       at
> > org.apache.hadoop.hbase.util.FSUtils.waitOnSafeMode(FSUtils.java:895)
> > @4000000054d97770140ec20c       at
> >
> org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:442)
> > @4000000054d97770140ec20c       at
> >
> org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:153)
> > @4000000054d97770140ed97c       at
> >
> org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:129)
> > @4000000054d97770140edd64       at
> >
> org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:881)
> > @4000000054d97770140edd64       at
> > org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:684)
> > @4000000054d97770140edd64       at java.lang.Thread.run(Thread.java:724)
> > @4000000054d97770140ee14c 2015-02-10T03:13:42.336+0000 INFO
> master.HMaster
> > Aborting
> > @4000000054d977701410d934 2015-02-10T03:13:42.336+0000 DEBUG
> > master.HMaster Stopping service threads
> >
> > Putting the 2.2.0 Hadoop jars back into HBase’s lib/ directory to replace
> > the 2.6.0 ones allowed HBase master to run again.
> >
> > The documentation does not mention that 0.98.9 supports 2.6.0 (it lists
> > ’S’ for up to 2.5.x). Does this mean that we cannot run HBase against
> 2.6.0
> > HDFS at the moment?
> > Has anyone managed to do this? I’ve also tried building HBase from source
> > against 2.6.0, and then replacing the lib/hbase*.jar files accordingly
> > whilst keeping those hadoop.*2.6.0.jar files, but I still have the same
> > problem.
> >
> > Thank you!
> >
> > Regards,
> > Tong
> >
>



-- 
Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)

Reply via email to