HBase协处理器加载的方式有哪些

技术HBase协处理器加载的方式有哪些这篇文章主要介绍“HBase协处理器加载的方式有哪些”,在日常操作中,相信很多人在HBase协处理器加载的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

本文主要介绍“HBase协处理器的加载方法有哪些”。在日常操作中,相信很多人对HBase协处理器的加载方式有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“HBase协处理器的加载方式有哪些”的疑惑!接下来,请和边肖一起学习!

加载HBase协处理器的三种方法

外壳装载

1.上传HDFS

将打包的hello processor-0 . 0 . 1 . jar上传到服务器,并将其放在HDFS上。

#切换hadoop用户以创建演示目录

$ HDFS DFS-mkdir/usr/hbase/协处理器

$ HDFS DFS-put hello processor-0 . 0 . 1 . jar/usr/hbase/协处理器

2.外壳加载协处理器

让我们假设它的协处理器类的包名是:

org.myname.hbase .协处理器. RegionObserverExample

壳牌的运作方式如下:

禁用“我的表”#禁用表,可选

hbase alter 'mytable ',METHOD='table_att ','协处理器'='/usr/hbase/协处理器/hello processor-0 . 0 . 1 . jar ' | org . myname . hbase .协处理器. regionobserverexcample | 1001 | arg 1=1,arg2=2 '

Hbase enable 'mytable' #禁用表格后启用表格,可选。

结构如下:

hbase alter 'mytable ',METHOD='table_att ','协处理器'=|||'

解释上述参数:

:协处理器Jar包的路径,应该是所有RegionServer都可读的。也可以是本地路径,但建议放在HDFS。

:完整的协处理器类名。

:协处理器优先级,整数。可以是空的。

:传递给协处理器的参数可以为空。

注意:参数之间不应有空格。

3.验证协处理器是否已加载。

desc '我桌子'

表mytable已启用

mytable,{ TABLE _ ATTRIBUTES={协处理器$ 1='/usr/hbase/协处理器/hello processor-0 . 0 . 1 . jar“| org . my name . hbase .协处理器. regionobserverexcample | 1001 | arg 1=1,arg2=2'}}

这种验证不能保证协处理器能够正常工作:shell命令不能保证jar文件存在于特定的位置,也不能验证给定的类是否实际包含在jar文件中。

4.卸载协处理器

禁用“我的表”#禁用表,可选

hbase alter 'mytable ',METHOD='table_att_unset ',NAME='协处理器$1 '

Hbase enable 'mytable' #禁用表格后启用表格,可选。

Pit:如果修改协处理器代码,在不重启HBase的情况下重新加载协处理器,请重命名协处理器Jar包,否则不会生效。(因为当前的JVM引用了现有的协处理器,所以需要通过重新启动RegionServer来重新启动JVM,以便替换它。)

Api加载

方法是调用HtableDescriptor的add协处理器方法。此方法有两个重载方法:

添加协处理器(字符串类名)

添加协处理器(类名、jarPath、优先级、kvs)

第二种重载方法提供了上述Shell中所需的所有参数 。第一种方法需要用户手动将jar包分发到每个RegionServer的lib目录中。

示例代码如下:

TableName TableName=TableName . value of(' my table ');

Path Path=new Path(' HDFS ://NameNode : port/usr/hbase/协处理器/hello proc

essor-0.0.1.jar");

Configuration conf = HBaseConfiguration.create();

Connection connection = ConnectionFactory.createConnection(conf);

Admin admin = connection.getAdmin();

admin.disableTable(tableName);

HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);

HColumnDescriptor columnFamily1 = new HColumnDescriptor("f1");

columnFamily1.setMaxVersions(1);

hTableDescriptor.addFamily(columnFamily1);

HColumnDescriptor columnFamily2 = new HColumnDescriptor("f2");

columnFamily2.setMaxVersions(3);

hTableDescriptor.addFamily(columnFamily2);

hTableDescriptor.addCoprocessor('org.myname.hbase.Coprocessor.RegionObserverExample', path,

Coprocessor.PRIORITY_USER, null);

admin.modifyTable(tableName, hTableDescriptor);

admin.enableTable(tableName);

重新加载表定义,无需使用addCoprocessor()方法设置协处理器的值。这将删除附加到表的任何协处理器。

配置文件加载

1. 修改配置文件:hbase-site.xml,配置项如下:

1.1 RegionObservers/Endpoints

<property>

    <name>hbase.coprocessor.region.classes</name>

    <value>org.myname.hbase.Coprocessor.RegionObserverExample</value>

</property>

1.2 WALObservers

<property>

    <name>hbase.coprocessor.wal.classes</name>

    <value>org.myname.hbase.Coprocessor.RegionObserverExample</value>

</property>

1.3 MasterObservers

<property>

    <name>hbase.coprocessor.master.classes</name>

    <value>org.myname.hbase.Coprocessor.RegionObserverExample</value>

</property>

如果想同时配置多个协处理器,可以用逗号分隔多个协处理器的类名。

2. 添加Jar包

将您的代码放在HBase的类路径上。一种简单的方法是将jar(包含代码和所有依赖项)放入HBase的安装目录lib/中。

3. 重启HBase生效。

4. 静态卸载

从hbase-site.xml中删除协处理器的元素,包括子元素。

重启HBase。

从类路径或HBase的lib/目录中删除协处理器的JAR文件。(可选)

到此,关于“HBase协处理器加载的方式有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/138731.html

(0)

相关推荐

  • django项目怎么安装(django的安装教程怎么进入d盘)

    技术django如何安装和实现第一个页面小编给大家分享一下django如何安装和实现第一个页面,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!w

    攻略 2021年12月20日
  • mysql企业备份工具mysqlbackup如何安装使用

    技术mysql企业备份工具mysqlbackup如何安装使用这篇文章主要介绍mysql企业备份工具mysqlbackup如何安装使用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    攻略 2021年11月3日
  • MySQL学习笔记:九、子查询

    技术MySQL学习笔记:九、子查询 MySQL学习笔记:九、子查询子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入。
    SQL 中子查询的使用大大增强了 SEL

    礼包 2021年12月15日
  • 数据库中表连接方式有哪些

    技术数据库中表连接方式有哪些这篇文章将为大家详细讲解有关数据库中表连接方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1 nested loop

    攻略 2021年11月20日
  • DM7如何指定外部表?

    技术DM7外部表怎么指定本篇内容主要讲解“DM7外部表怎么指定”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DM7外部表怎么指定”吧!DM7 外部表需指定如下信息:1. 表名

    攻略 2021年12月21日
  • C++中默认操作怎么定义

    技术C++中默认操作怎么定义本篇内容主要讲解“C++中默认操作怎么定义”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++中默认操作怎么定义”吧!C.21:默认操作要定义就全

    攻略 2021年11月29日