本文主要介绍“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