如何在Hbase上安装协处理器?

时间:2015-01-14 07:56:42

标签: hbase

我正在学习Hbase和协处理器。文档显示协处理器jar需要在hbase类路径中。这是否意味着如果我想添加我的自定义协处理器我必须重新启动hbase?如果我重启hbase会丢失数据吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

您需要将协处理器的jar复制到hdfs:

FileSystem fs = FileSystem.get(conf);
fs.copyFromLocalFile(localFile, hdfsFile);
fs.close();

然后您需要将协处理器添加到现有表(或创建新表):

HBaseAdmin admin = new HBaseAdmin(conf);
HTableDescriptor descriptor = admin.getTableDescriptor(tableName);
descriptor.addCoprocessor(MyCoprocessor.class.getName(), hdfsFile,
        Coprocessor.PRIORITY_USER, null);
admin.modifyTable(tableName, descriptor);
admin.close();

如果您想以特定用户身份执行此操作,则所有代码都应位于:

UserGroupInformation ugi = UserGroupInformation.createRemoteUser("hbase");
ugi.doAs(new PrivilegedExceptionAction<Void>() {
    @Override
    public Void run() throws Exception {
        // HERE
        return null;
    }
});