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)

相关推荐

  • 如何理解分布式系统下基于Redis的分布式锁

    技术如何理解分布式系统下基于Redis的分布式锁这篇文章主要介绍“如何理解分布式系统下基于Redis的分布式锁”,在日常操作中,相信很多人在如何理解分布式系统下基于Redis的分布式锁问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年10月29日
  • linux如何获取脚本名称(linux怎么获取某一行的信息)

    技术怎么写linux脚本提取满足某个条件的行这篇文章主要介绍“怎么写linux脚本提取满足某个条件的行”,在日常操作中,相信很多人在怎么写linux脚本提取满足某个条件的行问题上存在疑惑,小编查阅了各式资料,整理出简单好

    攻略 2021年12月23日
  • Python捕捉异常举例分析

    技术Python捕捉异常举例分析这篇文章主要讲解了“Python捕捉异常举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python捕捉异常举例分析”吧!1.pyt

    2021年12月8日
  • mysql如何实现用户创建、修改、删除及授权操作

    技术mysql如何实现用户创建、修改、删除及授权操作这篇文章主要介绍了mysql如何实现用户创建、修改、删除及授权操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起

    攻略 2021年10月30日
  • 氯化钙是沉淀吗,氯化钙静止时间长会不会产生沉淀

    技术氯化钙是沉淀吗,氯化钙静止时间长会不会产生沉淀不会与氯化钙的密度一类的有关了,温度啊,通风情况啊,都有一定的关系,与CO2加入石溶液是一样的道理氯化钙是沉淀吗。 CO2与SO2加入水中会生成碳酸和亚硫酸,酸与盐反应生

    生活 2021年10月20日
  • c++语言(c++代码)

    技术C++ Date类的实现方法有哪些本篇内容主要讲解“C++ Date类的实现方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++ Date类的实现方法有哪些”吧

    攻略 2021年12月14日