Jianwen WEI created HBASE-5852:
----------------------------------
Summary: Standalone HBase-0.92.1 fails to start master when
coexisting with Hadoop-1.0.1, unnecessarily trying connecting to namenode.
Key: HBASE-5852
URL: https://issues.apache.org/jira/browse/HBASE-5852
Project: HBase
Issue Type: Bug
Components: master
Affects Versions: 0.92.1
Environment: Scientific Linux 6.2 x86_64 with Oracle JDK 1.6
Mac OS X Lion 10.7.1 with Oracle JDK 1.6
Reporter: Jianwen WEI
I want to run a standalone HBase instance for development test purpose, which
requires no HDFS. It works well on my server. However, when I add a hadoop
directory into my server, HBase seems to notice that change and try to connect
to Hadoop's namenode. The failures of HBase's connecting to Hadoop NameNode
cause MHBase fail to start.
I extracted HBase-0.92.1 to my home directory:
~/hbase -> ~/hbase-0.92.1
In configuration file ~/hbase/config/hbase-site.xml, I set HBase to standalone
mode and specify the data directory it uses.
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/jianwen/.hbase.data</value>
</property>
</configuration>
Then I start HBase service with start-hbase.sh, enter HBase shell. Tests go
well.
But things change when I install Hadoop into the same server. Hadoop-1.0.1 lies
in my home directory too.
~/hadoop -> ~/hadoop-1.0.1
In configuration file ~/hadoop/config/core-site.xml, I set Hadoop to run in a
pseudo distributed environment and specify the data directory for HDFS.
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/jianwen/.hdfs.data</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
Then I format namenode, start hadoop service, run some MapReduce test programs,
such as Pi, grep, et al. Hadoop works on my pesudo distributed environment.
Then I stop hadoop service.
Since I add hadoop in my home directory, HBase fails to start. HBase log shows
that HBase tries to connect to Hadoop NameNode when starting up, then fails.
That's ridiculous because HBase in standalone mode should have NOTHING about
NameNode and HDFS.
In summary, there may be two problems:
- Standalone HBase attempts to connect to Hadoop NameNode at starting up when
hadoop directory is co-located in home.
- Not stating in HBase's configuration files, HBase seems to implicitly search
hadoop directory around it and read the configuration information, such as
NameNode in file core-site.xml. This unclear behavior confuses me a lot.
Log for standalone HBase starting up:
...
2012-04-22 11:50:41,078 DEBUG
org.apache.hadoop.hbase.master.LogCleaner: Add log cleaner in chain:
org.apache.hadoop.hbase.master.TimeToLiveLogCleaner
2012-04-22 11:50:41,115 INFO org.mortbay.log: Logging to
org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
2012-04-22 11:50:41,160 INFO org.apache.hadoop.http.HttpServer: Added
global filtersafety (class=org.apache.hadoop.http.HttpServer$QuotingInputFilter)
2012-04-22 11:50:41,165 INFO org.apache.hadoop.http.HttpServer: Port
returned by webServer.getConnectors()[0].getLocalPort() before open() is -1.
Opening the listener on 60010
2012-04-22 11:50:41,165 INFO org.apache.hadoop.http.HttpServer:
listener.getLocalPort() returned 60010
webServer.getConnectors()[0].getLocalPort() returned 60010
2012-04-22 11:50:41,165 INFO org.apache.hadoop.http.HttpServer: Jetty
bound to port 60010
2012-04-22 11:50:41,165 INFO org.mortbay.log: jetty-6.1.26
2012-04-22 11:50:41,548 INFO org.mortbay.log: Started
[email protected]:60010
2012-04-22 11:50:41,548 DEBUG org.apache.hadoop.hbase.master.HMaster:
Started service threads
2012-04-22 11:50:41,790 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 0 time(s).
2012-04-22 11:50:42,792 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 1 time(s).
2012-04-22 11:50:43,050 INFO
org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to
checkin
2012-04-22 11:50:43,794 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 2 time(s).
2012-04-22 11:50:44,551 INFO
org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to
checkin
2012-04-22 11:50:44,795 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 3 time(s).
2012-04-22 11:50:45,796 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 4 time(s).
2012-04-22 11:50:46,052 INFO
org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to
checkin
2012-04-22 11:50:46,798 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 5 time(s).
2012-04-22 11:50:47,554 INFO
org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to
checkin
2012-04-22 11:50:47,800 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 6 time(s).
2012-04-22 11:50:48,801 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 7 time(s).
2012-04-22 11:50:49,055 INFO
org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to
checkin
2012-04-22 11:50:49,803 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 8 time(s).
2012-04-22 11:50:50,556 INFO
org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to
checkin
2012-04-22 11:50:50,805 INFO org.apache.hadoop.ipc.Client: Retrying
connect to server: localhost/127.0.0.1:9000. Already tried 9 time(s).
2012-04-22 11:50:50,806 ERROR
org.apache.hadoop.hbase.master.HMasterCommandLine: Failed to start master
java.net.ConnectException: Call to localhost/127.0.0.1:9000 failed on
connection exception: java.net.ConnectException: Connection refused
at org.apache.hadoop.ipc.Client.wrapException(Client.java:1095)
at org.apache.hadoop.ipc.Client.call(Client.java:1071)
...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira