【问题标题】:HBase coprocessor not updating after redeployHBase 协处理器在重新部署后未更新
【发布时间】:2018-04-03 19:06:13
【问题描述】:

我正在使用 HBase 1.1.2,并尝试重新部署自定义端点协处理器来修复我的 Java 代码中的错误。我对协处理器代码进行了一些更改,并通过以下步骤重新部署了它:

  1. 重建协处理器 jar
  2. 将其复制到 HDFS 上的某个位置
  3. 删除现有的协处理器:alter 'table', METHOD => 'table_att_unset',NAME => 'coprocessor$1'
  4. 通过 HBase UI 确认表没有附加协处理器
  5. 通过禁用表并运行alter 'table', METHOD => 'table_att', 'coprocessor'=>'hdfs:///user/bwatson/sum-coprocessor-0.1.0-SNAPSHOT.jar|uk.co.hadoopathome.coprocessor.SumAndCountEndpoint||' 添加新的协处理器
  6. 重新启用表格
  7. 通过 HBase UI 确认协处理器已附加

当我重新运行与协处理器对话的客户端代码时,我可以在 regionserver 日志中清楚地看到旧的协处理器代码仍在运行。

如果我在托管我的表的区域服务器上本地搜索 jar,我发现 jar 仅在一个位置:

find / -name "*um-coprocesso*"
/tmp/hbase-hbase/local/jars/tmp/.2107072457.sum-coprocessor-0.1.0-SNAPSHOT.jar.1522237762363.jar
/tmp/hbase-hbase/local/jars/tmp/..2107072457.sum-coprocessor-0.1.0-SNAPSHOT.jar.1522237762363.jar.crc

我可以从这个罐子的日期和大小确认它是旧版本。

这是 HBase 中的错误吗?我该如何解决这个问题?

【问题讨论】:

  • 值得指出的是,3pillarglobal.com/insights/hbase-coprocessors 表示上述是部署协处理器的动态方法,不需要重新启动 HBase。我在工作中没有重新启动 HBase 的权限,所以我提出了一个请求,看看这是否会改变任何事情。
  • 我建议您在更新 jar 版本后尝试,以避免任何类型的缓存问题。例如*sum-coprocessor-0.2.0*
  • 我希望路径hdfs:///user/bwatson/sum-coprocessor-0.1.0-SNAPSHOT.jar是正确的(我通常发现它们为hdfs://localhost/user...hdfs://<domain>/<folder>

标签: hadoop hbase


【解决方案1】:

重启 HBase 就成功了; /tmp/hbase-hbase/local/jars/tmp/中的jar被移除了,我的下一次部署成功了。

这是 HBase 中的一个错误,无论是在文档中还是在代码中。我将向 HBase Jira 提出请求。

【讨论】:

    【解决方案2】:

    您需要重新启动 hbase 服务器。

    cd $HBASE_HOME/bin
    $sh stop-hbase.sh
    $sh start-hbase.sh
    

    当 hbase 运行时,您不能更改协处理器 jar 文件。所以你应该在第 6 步之后重新启动 hbase 服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多