获取NoServerForRegionException:尝试从MySQL导入到HBase时找不到区域

获取NoServerForRegionException:尝试从MySQL导入到HBase时找不到区域,hbase,sqoop,Hbase,Sqoop,使用Sqoop将表从MySQL导入HBase时遇到问题。 我在一个有3个节点(1个主节点,2个从节点)的集群中工作 当我尝试运行此命令时: sqoop import --hbase-create-table --hbase-table (any_tablename) --column-family (any_cf) --hbase-row-key (any_rowkey) --connect jdbc:mysql://(mysqlserver_machine_IP)/(a

使用Sqoop将表从MySQL导入HBase时遇到问题。 我在一个有3个节点(1个主节点,2个从节点)的集群中工作

当我尝试运行此命令时:

    sqoop import --hbase-create-table --hbase-table (any_tablename)

   --column-family (any_cf) --hbase-row-key (any_rowkey) --connect 
   jdbc:mysql://(mysqlserver_machine_IP)/(any_db) --username root -P --table (any_table) 

-m 1
我得到以下错误:

...13/07/30 12:13:36 INFO zookeeper.ZooKeeper: Session: 0x1402df83cc5000a closed
13/07/30 12:13:36 INFO zookeeper.ClientCnxn: EventThread shut down
13/07/30 12:13:42 INFO mapred.JobClient: Running job: job_201307301159_0001
13/07/30 12:13:43 INFO mapred.JobClient:  map 0% reduce 0%
13/07/30 12:28:12 INFO mapred.JobClient: Task Id : attempt_201307301159_0001_m_000000_0, Status : FAILED
java.lang.RuntimeException: Could not access HBase table mypop
    at org.apache.sqoop.hbase.HBasePutProcessor.setConf(HBasePutProcessor.java:121)
    at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
    at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
    at org.apache.sqoop.mapreduce.DelegatingOutputFormat$DelegatingRecordWriter.<init>(DelegatingOutputFormat.java:107)
    at org.apache.sqoop.mapreduce.DelegatingOutputFormat.getRecordWriter(DelegatingOutputFormat.java:82)
    at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:628)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:753)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    at org.apache.hadoop.mapred.Child.main(Child.java:249)
Caused by: org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find region for mypop,,99999999999999 after 10 tries.
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:991)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:896)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:998)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:900)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:857)
    at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:233)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:173)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:132)
    at org.apache.sqoop.hbase.HBasePutProcessor.setConf(HBasePutProcessor.java:119)
    ... 12 more
…13/07/30 12:13:36信息zookeeper.zookeeper:会话:0x1402df83cc5000a已关闭
13/07/30 12:13:36信息zookeeper.ClientCnxn:EventThread关闭
13/07/30 12:13:42信息映射。作业客户端:正在运行作业:作业\u 201307301159\u 0001
13/07/30 12:13:43信息映射。作业客户端:映射0%减少0%
13/07/30 12:28:12 INFO mapred.JobClient:任务Id:尝试\u 201307301159\u 0001\u m\u000000\u 0,状态:失败
java.lang.RuntimeException:无法访问HBase表mypop
位于org.apache.sqoop.hbase.HBasePutProcessor.setConf(HBasePutProcessor.java:121)
位于org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
位于org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
位于org.apache.sqoop.mapreduce.DelegatingOutputFormat$DelegatingRecordWriter(DelegatingOutputFormat.java:107)
位于org.apache.sqoop.mapreduce.DelegatingOutputFormat.getRecordWriter(DelegatingOutputFormat.java:82)
位于org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector。(MapTask.java:628)
位于org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:753)
位于org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
位于org.apache.hadoop.mapred.Child$4.run(Child.java:255)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.security.auth.Subject.doAs(Subject.java:415)
位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
位于org.apache.hadoop.mapred.Child.main(Child.java:249)
原因:org.apache.hadoop.hbase.client.NoServerForRegionException:无法找到mypop的区域,尝试10次后为9999999999。
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionMeta(HConnectionManager.java:991)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:896)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionMeta(HConnectionManager.java:998)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:900)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:857)
位于org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:233)
位于org.apache.hadoop.hbase.client.HTable.(HTable.java:173)
位于org.apache.hadoop.hbase.client.HTable.(HTable.java:132)
位于org.apache.sqoop.hbase.HBasePutProcessor.setConf(HBasePutProcessor.java:119)
... 还有12个

看起来您的Sqoop无法联系保存此表区域的RegionServer。请确保RegionServer运行正常,并且没有网络相关问题。将hbase-*.jar添加到您的SQOOP_HOME/lib文件夹中


通过将web浏览器指向hmaster_machine:60010访问HBase webui,查看您的区域服务器是否在此处列出。如果区域服务器日志未运行,请尝试挖掘它们。

您是否正确配置了hbase-site.xml?谢谢您的回复。实际上,在webui(master:60010)中,这里列出了所有我的RegionServer,它们都是为区域服务的在线服务器。我还在我的SQOOP_HOME/lib文件夹中添加了hbase-*.jar。但是,我还是犯了同样的错误。这些天来我一直在努力解决这个问题,但我被卡住了。。也许,这是某种与网络有关的问题。。。但是,什么样的网络相关问题可能导致这个问题呢?谢谢