首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HBaseTestingUtility中测试协处理器

在HBaseTestingUtility中测试协处理器
EN

Stack Overflow用户
提问于 2018-03-23 15:27:36
回答 1查看 188关注 0票数 0

我制作了一个HBase端点协处理器,它与给定的这里示例密切相关。我想使用HBaseTestingUtility对其进行测试,但是没有任何关于加载协处理器的建议似乎会在此设置中工作。

我通过以下方式启动该专题组:

代码语言:javascript
复制
HBaseTestingUtility hbaseUtility = new HBaseTestingUtility();
hbaseUtility.startMiniCluster();
hbaseUtility.createTable(TableName.valueOf("test"), "a");

在线部署建议包括:

  1. 将协处理器jar放在HDFS上并使用HBase外壳。
  2. hbase-site.xml添加一个属性,将协处理器jar放在HBase库dir中,并重新启动HBase。
  3. 将协处理器jar放在HDFS上并使用hTableDescriptor.addCoprocessor(...)

3.听起来是唯一可行的选择,但是我必须让协处理器jar位于一个已知的位置,并且必须设置一个本地HDFS集群。我更希望能够从本地Maven repo中插入协处理器jar,并从本地位置部署它。

有人能推荐使用HBaseTestingUtility测试协处理器的最佳方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-23 15:46:01

HTableDescriptor有一个方法,它将在类路径上找到协处理器。我的测试课程现在看起来如下:

代码语言:javascript
复制
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类是实现Coprocessor的类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49453200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档