美文网首页Hadoop
104.用HBase的Quotas设置资源请求限制

104.用HBase的Quotas设置资源请求限制

作者: 大勇任卷舒 | 来源:发表于2022-02-22 09:43 被阅读0次

    104.1 演示环境介绍

    • CM版本:5.14.3
    • CDH版本:5.14.3
    • Redhat版本:7.4
    • 已启用Kerberos

    104.2 操作演示

    1.启用Quotas

    • 进入HBase服务配置界面,在搜索栏输入hbase-site.xml,增加如下配置:
    <property>
        <name>hbase.quota.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.quota.refresh.period</name>
        <value>10000</value>
    </property>
    
    • hbase.quota.refresh.period该参数主要是用于设置quota设置的刷新周期
      • 默认为5min,如果需要设置的quota及时生效,则将该参数设置小一些
    • 完成如上配置后,根据提示重启HBase服务

    2.HBase Request Quotas

    • 使用admin用户为testcf用户设置每分钟2个Read和Write
      • 该操作是针对用户进行限制,主要限制用户的请求频率
    set_quota TYPE => THROTTLE, THROTTLE_TYPE => READ, USER => 'testcf', LIMIT => '2req/min'
    set_quota TYPE => THROTTLE, THROTTLE_TYPE => WRITE, USER => 'testcf', LIMIT => '2req/min'
    
    • 使用testcf用户访问HBase执行READ和WRITE操作
      • 多次执行Scan操作,在执行第三次时提示等待30s
      • 多次执行put操作,在执行第三次时提示等待30s
    • 使用admin用户为fayson用户设置每分钟1B的写入流量
      • 该操作是针对用户进行限制,限制用户的写入流量
    [root@cdh03 ~]# klist
    [root@cdh03 ~]# hbase shell
    hbase(main):001:0> set_quota TYPE => THROTTLE, THROTTLE_TYPE => WRITE, USER => 'fayson', LIMIT => '1B/min'
    hbase(main):003:0> 
    
    • 使用fayson用户向test_fayson表中插入一个超过1B的数据
    hbase(main):003:0> whoami
    fayson@FAYSON.COM (auth:KERBEROS)
        groups: fayson
    
    hbase(main):004:0> put 'test_fayson','0001','info:name','test0001'
    
    • 使用admin用户设置test_fayson表的每分钟2个请求
      • 该操作是针对表进行设置,限制指定表的请求频率或写入流量
    hbase(main):005:0> set_quota TYPE => THROTTLE, TABLE => 'test_fayson', LIMIT => '2req/min'
    hbase(main):006:0> list_quotas
    hbase(main):007:0> whoami
    
    • 使用任意用户查看test_fayson表数据
    hbase(main):015:0* whoami
    hbase(main):016:0> scan 'picHbase'
    hbase(main):017:0> scan 'picHbase'
    hbase(main):018:0> scan 'picHbase'
    hbase(main):019:0> scan 'test_fayson'
    hbase(main):020:0> scan 'test_fayson'
    
    • 使用admin用户为my_ns_admin设置每分钟3个请求限制
      • 该操作主要是针对NameSpace进行限制,可以设置NameSpace的请求数量和写入流量
    hbase(main):001:0> set_quota TYPE => THROTTLE, NAMESPACE => 'my_ns_admin', LIMIT => '3req/min'
    hbase(main):002:0> list_quotas
    hbase(main):003:0> whoami
    
    • 使用fayson用户进行如下测试,查看my_ns_admin空间下的任意表,第二次时会报错提示等待20s,一分钟3次分为每20s一次

    3.HBase NameSpace Quotas

    • 使用admin用户限制my_ns_admin空间的建表数据不超过3个
      • 新建一个NameSpace为ns2并限制建表数量为2
    hbase(main):001:0> whoami
    hbase(main):002:0> create_namespace 'ns2', {'hbase.namespace.quota.maxtables'=>'2'
    
    • 测试在ns2空间下创建表,在创建第三个表时提示已达到最大限制
    • 如果是已存在的NameSpace,需要限制建表数量则可以通过alter的操作进行设置,命令如下:
    alter_namespace 'ns2', {METHOD => 'set', 'hbase.namespace.quota.maxtables'=>'8'}
    
    • 取消限制命令如下:
    alter_namespace 'ns2', {METHOD => 'unset', NAME=>'hbase.namespace.quota.maxtables'}
    
    • 使用admin用户为NameSpace限制Region数量
      • 新建一个NameSpace为ns1并限制Region的数量为10,语句如下
    hbase(main):001:0> whoami
    hbase(main):002:0> create_namespace 'ns1', {'hbase.namespace.quota.maxregions'=>'10'}
    hbase(main):003:0>
    
    • 在ns1空间下创建表并指定Region数量测试,当执行第三建表语句时提示Region数据最大为10,超出限制
    create 'ns1:test1','info', { NUMREGIONS => 4 , SPLITALGO => 'UniformSplit' }
    create 'ns1:test2','info', { NUMREGIONS => 4 , SPLITALGO => 'UniformSplit' }
    create 'ns1:test3','info', { NUMREGIONS => 4 , SPLITALGO => 'UniformSplit' }
    
    • 如果是已存在的NameSpace,需要限制Region数量则使用如下语句,进行修改
    alter_namespace 'ns2', {METHOD => 'set', 'hbase.namespace.quota.maxregions'=>'10'}
    
    • 取消限制:
    alter_namespace 'ns2', {METHOD => 'unset', NAME=> 'hbase.namespace.quota.maxregions'}
    

    4.总结

    • HBase支持对User、NameSpace和Table进行请求数和流量配额限制
    • 限制频率可以按sec、min、hour、day
    • 对于请求大小限制示例(5K/sec,10M/min等),请求大小限制单位如下:
    B(bytes),K(kilobytes),M(megabytes),G(gigabytes),T(terabytes),P(petabytes)
    
    • 支持限制NameSpace下建表数量和Region数量,无法直接限制建表大小
    • HBase设置限额后默认生效时间为5min,如果需要尽快使其生效则调整hbase.quota.refresh.period参数,单位ms

    大数据视频推荐:
    腾讯课堂
    CSDN
    大数据语音推荐:
    企业级大数据技术应用
    大数据机器学习案例之推荐系统
    自然语言处理
    大数据基础
    人工智能:深度学习入门到精通

    相关文章

      网友评论

        本文标题:104.用HBase的Quotas设置资源请求限制

        本文链接:https://www.haomeiwen.com/subject/qbsglrtx.html