我正在使用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确认已连接协处理器
当我重新运行与协处理器对话的客户机代码时,我可以在regionserver日志中清楚地看到旧的协处理器代码仍在运行。
如果在托管表的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
我可以从这个jar的日期和大小来确认它是旧版本的。
这是hbase中的错误吗?我怎么才能避开这个?
2条答案
按热度按时间svgewumm1#
重启hbase成功了;jar在里面
/tmp/hbase-hbase/local/jars/tmp/
已删除,我的下一次部署成功。无论是在文档中还是在代码中,这都是hbase中的一个bug。我要向赫伯斯·吉拉开罚单。
kkih6yb82#
您需要重新启动hbase服务器。
在hbase运行时不能更改协处理器jar文件。因此,您应该在步骤6之后重新启动hbase服务器。