重新部署后 HBase 协处理器未更新

HBase coprocessor not updating after redeploy

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

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

当我重新 运行 与协处理器通信的客户端代码时,我可以在区域服务器日志中清楚地看到旧的协处理器代码仍然是 运行ning。

如果我在托管我的 table 的区域服务器上本地搜索 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 中的错误吗?我该如何解决这个问题?

重新启动 HBase 成功了; /tmp/hbase-hbase/local/jars/tmp/ 中的 jar 已删除,我的下一次部署成功。

这是 HBase 中的一个错误,可能存在于文档中,也可能存在于代码中。我会用 HBase Jira 提出一个问题。

您需要重启 hbase 服务器。

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

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