Hi Ted,

I got our HBase test cluster set up and encountered the same problems you did 
at first, but I've got it working now.  Here's what I found out (I have updated 
the wiki accordingly).

1.  You MUST use the same HBase version consistently for client and server.  
Most likely this is your problem.  I was initially trying with an 0.20.4-dev 
version on the cluster and 0.20.3 on the Hive client, and consistently getting 
MasterNotRunningException.  Then I rebuilt the handler against 0.20.4-dev and 
ran with that, and problem solved.  So delete the jars from hbase-handler/lib, 
replace them with the ones which correspond to your HBase version, and then run 
ant clean and ant package again.  (If you get build failures, you'll have to 
upgrade your HBase cluster or figure out how to make the handler backward 
compatible.)  Browsing the HBase JIRA, I found that the RPC protocol has 
changed quite a bit, so I guess this is the reason for the incompatibilities 
(it would be nice if the handshake failed fast with an accurate error message 
instead of saying that the master is not running when in fact it is).

2.  The only configuration necessary is to set hbase.zookeeper.quorum.  Do not 
set hbase.master for talking to a cluster.  And you don't need to set 
hbase.zookeeper.property.clientPort (assuming you are using the default on the 
zookeeper servers).

3.  Make sure there is no firewall weirdness in between client and server.  I 
hit this when I tested from my laptop over VPN to the cluster.  In the firewall 
case, MasterNotRunningException had null for its message, whereas in the 
inconsistent client/server version case, MasterNotRunningException had the 
correct IP:port for its message.

Let me know how it goes.

JVS

Reply via email to