我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

这篇文章主要介绍“HBase协处理器加载的方式有哪些”,在日常操作中,相信很多人在HBase协处理器加载的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HBase协处理器加载的方式有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

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

Shell加载

上传HDFS

将打包好的HelloCoprocessor-0.0.1.jar上传服务器,然后放到HDFS上。

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

$ hdfs dfs -mkdir /usr/hbase/coprocessor

$ hdfs dfs -put HelloCoprocessor-0.0.1.jar /usr/hbase/coprocessor

Shell 加载协处理器

我们假设其协处理器类的包名为:

org.myname.hbase.Coprocessor.RegionObserverExample

Shell 操作如下:

hbase> disable 'mytable' # 禁用表,可选

hbase> alter 'mytable', METHOD => 'table_att', 'coprocessor' => '/usr/hbase/coprocessor/HelloCoprocessor-0.0.1.jar'|org.myname.hbase.Coprocessor.RegionObserverExample|1001|arg1=1,arg2=2'

hbase> enable 'mytable' # 禁用表后启用表,可选

结构如下:

hbase> alter 'mytable', METHOD => 'table_att', 'coprocessor' => ①|②|③|④'  

解释下上面各个参数:

①:协处理器Jar包路径,要保证所有的RegionServer可读取到。也可以是本地路径,不过建议是放在HDFS上。

②:协处理器的完整类名。

③:协处理器优先级,整数表示。可以为空。

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

注:各参数间不要有空格。

验证是否加载协处理器

hbase> desc 'mytable'

Table mytable is ENABLE

mytable, {TABLE_ATTRIBUTES => {coprocessor$1 => '/usr/hbase/coprocessor/HelloCoprocessor-0.0.1.jar'|org.myname.hbase.Coprocessor.RegionObserverExample|1001|arg1=1,arg2=2'}}

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

卸载协处理器

hbase> disable 'mytable' # 禁用表,可选

hbase> alter 'mytable', METHOD => 'table_att_unset', NAME => 'coprocessor$1'

hbase> enable 'mytable' # 禁用表后启用表,可选

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

Api 加载

具体方法是调用HtableDescriptor的addCoprocessor方法。该方法有两个重载方法:

addCoprocessor(String className)

addCoprocessor(className,jarPath,priority,kvs)

第二个重载方法提供了上述Shell中所需的各个参数①②③④,方法一则需要用户手动将jar包分发到各个RegionServer的lib目录下。

示例代码如下:

TableName tableName = TableName.valueOf("mytable");

Path path = new Path("hdfs://<namenode>:<port>/usr/hbase/coprocessor/HelloCoprocessor-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()方法设置协处理器的值。这将删除附加到表的任何协处理器。

配置文件加载

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

1 RegionObservers/Endpoints

<property>

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

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

</property>

2 WALObservers

<property>

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

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

</property>

3 MasterObservers

<property>

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

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

</property>

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

添加Jar包

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

重启HBase生效。

静态卸载

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

重启HBase。

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

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

本文主要给大家罗列了HBase协处理器加载的三种方式:Shell加载(动态)、Api加载(动态)、配置文件加载(静态)。其中静态加载方式需要重启HBase。我们假设我们已经有一个现成的需要加载的协处理器Jar包:HelloCoprocessor-0.0.1.j
HBase协处理器加载的三种方式
2014-07-01

js延迟加载的方式有哪些

这篇文章主要介绍“js延迟加载的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“js延迟加载的方式有哪些”文章能帮助大家解决问题。1. defer 属性HTML 4.01 为