协处理器部署:替换jar而不重新启动hbase会生效吗?

mf98qq94  于 2021-06-09  发布在  Hbase
关注(0)|答案(2)|浏览(557)

假设这个案子。
我在hbase-site.xml中声明了一个协处理器

<property>
<name>hbase.coprocessor.region.classes</name>
<value>my.co.processor</value>
<property>

在hbase-env.sh中,我这样声明了协处理器类路径

export HBASE_CLASSPATH="${HBASE_HOME}/lib/coprocessor.jar"

如果我以后在协处理器中发现一个bug,我能在所有区域服务器中替换这个jar文件而不重新启动整个hbase吗?
如果我想添加另一个协处理器,那么我想我必须重新启动整个hbase,对吗?我知道我可以在hbase shell中为每个表声明,但如果我有许多表要应用新的协处理器,我认为这不是一个可以考虑的选项。

zaqlnxep

zaqlnxep1#

您可以用相同的名称替换jar文件,并使用滚动重启来避免停机。这样,你所有的jar都会重新装好。但是,在加载协处理器类时,请注意不要出现异常;否则,应该停止hbase集群并复制已更正的jar,然后启动集群。

jyztefdp

jyztefdp2#

可以将协处理器加载到特定的htable:htabledescriptor.addcoprocessor(classname,path,coprocessor.priority\u user,null);这样,您只需要禁用表、添加协处理器和enable表。

相关问题