捆绑协处理器
您可以将协处理器的所有类捆绑到 RegionServer 的类路径上的单个 JAR 中,以便于部署。否则,将所有依赖项放在 RegionServer 的类路径中,以便在 RegionServer 启动期间加载它们。 RegionServer 的类路径在 RegionServer 的hbase-env.sh
文件中设置。
自动化部署
您可以使用 Puppet,Chef 或 Ansible 等工具将协处理器的 JAR 发送到 RegionServers 文件系统上的所需位置,然后重新启动每个 RegionServer,以自动执行协处理器部署。此类设置的详细信息超出了本文档的范围。
更新协处理器
部署新版本的给定协处理器并不像禁用它,更换 JAR 和重新启用协处理器那么简单。这是因为除非删除对它的所有当前引用,否则无法在 JVM 中重新加载类。由于当前 JVM 引用了现有的协处理器,因此必须通过重新启动 RegionServer 来重新启动 JVM,以便替换它。预计此行为不会更改。
协处理器日志记录
协处理器框架不提供用于超出标准 Java 日志记录的 API。
协处理器配置
如果您不想从 HBase Shell 加载协处理器,可以将其配置属性添加到hbase-site.xml
。在中使用 HBase Shell ,设置了两个参数:arg1=1,arg2=2
。这些可以添加到hbase-site.xml
中,如下所示:
<property>
<name>arg1</name>
<value>1</value>
</property>
<property>
<name>arg2</name>
<value>2</value>
</property>
然后,您可以使用以下代码读取配置:
Configuration conf = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(conf);
TableName tableName = TableName.valueOf("users");
Table table = connection.getTable(tableName);
Get get = new Get(Bytes.toBytes("admin"));
Result result = table.get(get);
for (Cell c : result.rawCells()) {
System.out.println(Bytes.toString(CellUtil.cloneRow(c))
+ "==> " + Bytes.toString(CellUtil.cloneFamily(c))
+ "{" + Bytes.toString(CellUtil.cloneQualifier(c))
+ ":" + Bytes.toLong(CellUtil.cloneValue(c)) + "}");
}
Scan scan = new Scan();
ResultScanner scanner = table.getScanner(scan);
for (Result res : scanner) {
for (Cell c : res.rawCells()) {
System.out.println(Bytes.toString(CellUtil.cloneRow(c))
+ " ==> " + Bytes.toString(CellUtil.cloneFamily(c))
+ " {" + Bytes.toString(CellUtil.cloneQualifier(c))
+ ":" + Bytes.toLong(CellUtil.cloneValue(c))
+ "}");
}
}