I am unable to launch the mapreduce copytable job on hbase (src cluster
0.94.6.1) to copy a table across to dest cluster 0.98.6
In our current src cluster, zookeeper is being managed by hbase with
following property in hbase-site.xml
--snip--
<property>
<name>hbase.zookeeper.quorum</name>
<value>hb-trgt00</value>
</property>
--snip--
I suspect there is a misconfiguration, that I am unable to nail down...
% pwd
/home/hduser/hbase-0.94.6.1
# my copytable command #
% HADOOP_HOME=/home/hduser/hadoop-1.2.1 \
bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable \
-Dhbase.zookeeper.quorum=hb-trgt00:2181:/hbase \ <---- src cluster
zookeeper
-Dmapred.map.tasks.speculative.execution=false \
-Dhbase.client.scanner.caching=100
\
--peer.adr=trgt-master00:2181:/hbase \ <---- dst cluster
zookeeper
customer_crm
I see the output logs
--snip--
15/03/11 11:53:01 DEBUG
client.HConnectionManager$HConnectionImplementation: Looked up root region
location,
connection=org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@e0d5eb7;
serverName=
** why is serverName empty?? **
15/03/11 11:53:01 DEBUG
client.HConnectionManager$HConnectionImplementation: locateRegionInMeta
parentTable=.META., metaLocation=null, attempt=0 of 10 failed; retrying
after sleep of 1004 because: Unable to find region for
customer_crm,,99999999999999 after 10 tries.
and after 10 tries I get the exception ---
Exception in thread "main" java.lang.RuntimeException:
org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find
region for customer_crm,,99999999999999 after 10 tries.
at
org.apache.hadoop.hbase.mapreduce.TableOutputFormat.setConf(TableOutputFormat.java:206)
at
org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
at
org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:884)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at
org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
at
org.apache.hadoop.hbase.mapreduce.CopyTable.main(CopyTable.java:237)
Caused by: org.apache.hadoop.hbase.client.NoServerForRegionException:
Unable to find region for customer_crm,,99999999999999 after 10 tries.
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:980)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:885)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:987)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:889)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:846)
at
org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:234)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:174)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:133)
at
org.apache.hadoop.hbase.mapreduce.TableOutputFormat.setConf(TableOutputFormat.java:201)
... 11 more
--snip--
complete log output is here:
https://gist.github.com/maaand/20a2b661197ca4898d04
Is the MR job ignoring "-Dhbase.zookeeper.quorum=hb-trgt00:2181:/hbase"
cmd line option?
as the serverName key is empty?
Any pointers?
thanks
PS: "bin/hbase shell" works fine and I am able to scan table on src cluster
without any issues.
PS: hostname resolutions are setup correctly