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)

相关推荐

  • mysql管理中的运行权限

    技术mysql管理中的运行权限mysql管理中的运行权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。mysql 管理:mysql 运行权限(转)[@mor

    攻略 2021年11月20日
  • Python中选择结构是怎么样的

    技术Python中选择结构是怎么样的这篇文章主要介绍了Python中选择结构是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、选择结构通过判断条

    攻略 2021年10月31日
  • CentOS 7.4如何安装redis 4.0

    技术CentOS 7.4如何安装redis 4.0这篇文章主要为大家展示了“CentOS 7.4如何安装redis 4.0”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Cen

    攻略 2021年11月10日
  • Mybatis,二)

    技术Mybatis,二) Mybatis(二)Mybatis(二)三、优化 Mybatis 配置
    我们已经在之前的学习中,学会了如何编写一个简单的 Mybatis 项目。很显然这还远远没有正真了解 My

    礼包 2021年11月26日
  • 两位数的乘法,快速算出两位数乘法的方法

    技术两位数的乘法,快速算出两位数乘法的方法两位数乘法速算技巧原理:设两位数分别为10A B,10C D,其积为S,根据多项式展开:S=(10A B)×(10C D)=10A×10C B×10C 10A×D B×D,而所谓

    生活 2021年10月28日
  • html5如何使一段代码无效

    技术html5怎么让一段代码无效小编给大家分享一下html5怎么让一段代码无效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    攻略 2021年12月19日