【问题标题】:NoServerForRegionException while running Hadoop MapReduce job on HBase在 HBase 上运行 Hadoop MapReduce 作业时出现 NoServerForRegionException
【发布时间】:2013-01-16 18:34:42
【问题描述】:

我正在执行一个简单的 Hadoop MapReduce 程序,并将 HBase 作为输入和输出。 我收到错误消息:

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

【问题讨论】:

  • 您的区域服务器正在运行吗?
  • 我有同样的问题,提供的答案根本没有帮助。

标签: hadoop mapreduce hbase


【解决方案1】:

查询bin/hbase hbck,查找Region server在哪台机器上运行。 确保您的所有区域服务器都已启动并正在运行。 使用start regionserver启动Region server

【讨论】:

  • start regionserver 命令在什么样的环境下工作?在 Linux 中,它通常以 sudo service hbase-regionserver start 开头。
  • 我知道。在守护进程的上下文中,我告诉过..更多内容。 hbase.apache.org/book/node.management.html..
【解决方案2】:

即使机器上的 Regionserver 启动了,它也可能因为时间同步而失败。

确保您在所有 Regionserver 节点和 HbaseMaster 节点上都安装了 NTP。

由于 Hbase 在使用时间戳作为索引的键值对上工作,因此它允许的时间偏差小于 3 秒。

【讨论】:

    【解决方案3】:

    当 hbase 版本存在差异时,我们会出现此异常。

    我们的代码是使用 0.94.X 版本的 hbase jar 构建并运行的。而 hbase 服务器在 0.90.3 上运行。

    当我们使用正确版本 (0.90.3) 的 hbase jar 更改我们的 pom 文件时,它开始正常工作。

    【讨论】:

      【解决方案4】:

      删除(或移至 /tmp)WAL 日志在我们的案例中有所帮助:

      hdfs dfs -mv /apps/hbase/data/MasterProcWALs/state-*.log /tmp
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-10
        • 2014-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-26
        相关资源
        最近更新 更多