假设这个案子。
我在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中为每个表声明,但如果我有许多表要应用新的协处理器,我认为这不是一个可以考虑的选项。
2条答案
按热度按时间zaqlnxep1#
您可以用相同的名称替换jar文件,并使用滚动重启来避免停机。这样,你所有的jar都会重新装好。但是,在加载协处理器类时,请注意不要出现异常;否则,应该停止hbase集群并复制已更正的jar,然后启动集群。
jyztefdp2#
可以将协处理器加载到特定的htable:htabledescriptor.addcoprocessor(classname,path,coprocessor.priority\u user,null);这样,您只需要禁用表、添加协处理器和enable表。