在HBase上运行Hadoop MapReduce作业时出现NoServerForRegionException

时间:2013-02-01 12:35:32

标签: hadoop mapreduce hbase

我正在使用HBase作为输入和输出执行一个简单的Hadoop MapReduce程序。 我收到了错误:

java.lang.RuntimeException: org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find region for OutPut,,99999999999999 after 10 tries.

4 个答案:

答案 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