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

时间:2015-05-08 09:45:24

标签: hbase

让我们假设这种情况。

我在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"
  1. 如果我稍后在该协处理器中发现错误,我是否可以在不重新启动整个hbase的情况下替换所有区域服务器中的该jar文件?

  2. 如果我想添加另一个协处理器,那么我想我必须重新启动整个Hbase,我是否正确? 我知道我可以在每个表的hbase shell中声明,但我认为如果我有很多表来应用新的协处理器,那么就不会考虑这个。

2 个答案:

答案 0 :(得分:0)

您可以使用相同的名称替换jar文件,并使用滚动重启来避免停机。通过这种方式,您的所有罐子都将被重新加载。但是,在加载协处理器类时要小心没有Exception;否则,您应该停止hbase集群并复制更正后的jar并启动集群。

答案 1 :(得分:-1)

您可以将协处理器加载到特定的HTable: hTableDescriptor.addCoprocessor(className,path,Coprocessor.PRIORITY_USER,null); 这样,您只需要禁用表,添加协处理器和启用表。