我正在使用HBase作为输入和输出执行一个简单的Hadoop MapReduce程序。 我收到了错误:
java.lang.RuntimeException: org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find region for OutPut,,99999999999999 after 10 tries.
答案 0 :(得分:4)
当hbase版本存在差异时,我们会看到此异常。
我们的代码是使用0.94.X版本的hbase jar构建的。而hbase服务器运行在0.90.3。
当我们使用正确版本(0.90.3)的hbase jar更改我们的pom文件时,它开始正常工作。
答案 1 :(得分:0)
查询bin/hbase hbck
并查找哪台计算机正在运行区域服务器。
确保所有Region服务器都已启动并正在运行。
使用start regionserver
启动区域服务器
答案 2 :(得分:0)
即使机器上的Regionserver启动,也可能因时间同步而失败。
确保在所有Regionserver节点和HbaseMaster节点上安装了NTP。
由于Hbase在键值对上工作,它使用时间戳作为索引,因此它允许时间偏差小于3秒。
答案 3 :(得分:0)
在我们的案例中删除(或转移到/ tmp)WAL日志有帮助:
hdfs dfs -mv /apps/hbase/data/MasterProcWALs/state-*.log /tmp