在 HBaseTestingUtility 中测试协处理器
Test a Coprocessor within HBaseTestingUtility
我已经制作了一个 HBase 端点协处理器,非常基于给定的示例 here。我想使用 HBaseTestingUtility 对其进行测试,但没有关于加载协处理器的建议,它们似乎可以在此设置中工作。
我通过以下方式启动集群:
HBaseTestingUtility hbaseUtility = new HBaseTestingUtility();
hbaseUtility.startMiniCluster();
hbaseUtility.createTable(TableName.valueOf("test"), "a");
在线部署建议包括:
- 将协处理器 jar 放在 HDFS 上并使用 HBase shell。
- 将 属性 添加到
hbase-site.xml
,将协处理器 jar 放入 HBase 库目录,然后重新启动 HBase。
- 将协处理器 jar 放在 HDFS 上并使用
hTableDescriptor.addCoprocessor(...)
。
3.
听起来像是唯一可行的远程选项,但我必须将协处理器 jar 放在已知位置,并且必须设置本地 HDFS 集群。我更希望能够从我的本地 Maven 存储库中提取协处理器 jar 并从本地位置部署它。
谁能推荐使用 HBaseTestingUtility 测试协处理器的最佳方法?
HTableDescriptor
有一个 addCoprocessor(String class)
method,它将在 class 路径上找到协处理器。我的测试 class 现在看起来像:
HBaseTestingUtility hbaseUtility = new HBaseTestingUtility();
hbaseUtility.startMiniCluster();
TableName table = TableName.valueOf("test");
hbaseUtility.createTable(table , "a");
hBaseAdmin.disableTable(table);
HTableDescriptor hTableDescriptor = new HTableDescriptor(table);
hTableDescriptor.addCoprocessor("uk.co.hadoopathome.hbase.coprocessor.SumEndpoint");
HColumnDescriptor colFam = new HColumnDescriptor("a");
hTableDescriptor.addFamily(colFam);
hBaseAdmin.modifyTable(table, hTableDescriptor);
hBaseAdmin.enableTable(table);
其中 SumEndpoint
class 是实现 Coprocessor
的 class。
我已经制作了一个 HBase 端点协处理器,非常基于给定的示例 here。我想使用 HBaseTestingUtility 对其进行测试,但没有关于加载协处理器的建议,它们似乎可以在此设置中工作。
我通过以下方式启动集群:
HBaseTestingUtility hbaseUtility = new HBaseTestingUtility();
hbaseUtility.startMiniCluster();
hbaseUtility.createTable(TableName.valueOf("test"), "a");
在线部署建议包括:
- 将协处理器 jar 放在 HDFS 上并使用 HBase shell。
- 将 属性 添加到
hbase-site.xml
,将协处理器 jar 放入 HBase 库目录,然后重新启动 HBase。 - 将协处理器 jar 放在 HDFS 上并使用
hTableDescriptor.addCoprocessor(...)
。
3.
听起来像是唯一可行的远程选项,但我必须将协处理器 jar 放在已知位置,并且必须设置本地 HDFS 集群。我更希望能够从我的本地 Maven 存储库中提取协处理器 jar 并从本地位置部署它。
谁能推荐使用 HBaseTestingUtility 测试协处理器的最佳方法?
HTableDescriptor
有一个 addCoprocessor(String class)
method,它将在 class 路径上找到协处理器。我的测试 class 现在看起来像:
HBaseTestingUtility hbaseUtility = new HBaseTestingUtility();
hbaseUtility.startMiniCluster();
TableName table = TableName.valueOf("test");
hbaseUtility.createTable(table , "a");
hBaseAdmin.disableTable(table);
HTableDescriptor hTableDescriptor = new HTableDescriptor(table);
hTableDescriptor.addCoprocessor("uk.co.hadoopathome.hbase.coprocessor.SumEndpoint");
HColumnDescriptor colFam = new HColumnDescriptor("a");
hTableDescriptor.addFamily(colFam);
hBaseAdmin.modifyTable(table, hTableDescriptor);
hBaseAdmin.enableTable(table);
其中 SumEndpoint
class 是实现 Coprocessor
的 class。