我正在使用 HBase 1.1.2,并尝试重新部署自定义端点协处理器来修复 Java 代码中的错误。我对协处理器代码进行了一些更改,并通过以下步骤重新部署它:
- 重建协处理器 jar
- 将其复制到 HDFS 上的某个位置
- 删除现有的协处理器:
alter 'table', METHOD => 'table_att_unset',NAME => 'coprocessor$1'
- 通过 HBase UI 确认该表没有附加协处理器
- 通过禁用表并运行来添加新的协处理器
alter 'table', METHOD => 'table_att', 'coprocessor'=>'hdfs:///user/bwatson/sum-coprocessor-0.1.0-SNAPSHOT.jar|uk.co.hadoopathome.coprocessor.SumAndCountEndpoint||'
- 重新启用表
- 通过 HBase UI 确认协处理器已附加
当我重新运行与协处理器通信的客户端代码时,我可以在区域服务器日志中清楚地看到旧的协处理器代码仍在运行。
如果我在托管我的表的区域服务器上本地搜索该 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/
被删除,我的下一次部署成功了。
这是 HBase 中的一个错误,无论是在文档中还是在代码中。我将向 HBase Jira 提出请求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)