温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

hbase性能优化的示例分析

发布时间:2021-12-08 15:17:42 来源:亿速云 阅读:127 作者:小新 栏目:云计算

这篇文章给大家分享的是有关hbase性能优化的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

查询缓存

Scan的caching属性默认值是1,意味着扫描器每次从region服务器抓取1条记录进行匹配。我们可以设置caching为比1大得多的值。例如,设置为500,则一次可以抓取500条,需要注意的是该值设得越大服务器的内存开销会越多。

HTableInterface hTable=getHTable(tableName);

Scan scan=new Scan();

/*设置缓存*/

scan.setCaching(StaticConfig.getIControl_hbase_cache());

ResultScanner scanner= hTable.getScanner(scan);

多线程配置

Hbase.regionser.handler.count

RegionServer中RPC监听器实例的数量。对于master来说,这个属性是master受理的处理线程(handler)数量。默认值是10。

根据调控层的业务场景,1条运价的匹配查询就会产生4条hbase并发查询。如果有20条,就可能有80条并发,这个并发量是相当的。除了将该参数适当调大可以增加并发处理能力外,还跟集群的数量和服务器的配置有直接的关系,预计集群数量越多,服务器CPU核数越高,并发处理能力越强。

预分区

HRegion是Hbase中分布式存储和负载均衡的最小单元。最小单元就表示不同的Hregion可以分布在不同的HRegion server上。但一个Hregion是不会拆分到多个server上的。

Hbase.hregion.max.filesize

HstoreFile的最大值。Region中任何一个列族的存储文件如果超过了这个上限,就会被拆分成两个region。默认:268435456(256x1024x1024),即256M。

我们的调控文件比较小,要达到分区最大上限256M需要较多的调控文件。为了提高并发量,我们需要在没有达到分区上限的情况下,产生多个hregion来保存和处理数据,这里就用hbase的预分区功能。

示例:

Configuration conf = HBaseConfiguration.create()

HBaseAdmin admin = new HBaseAdmin(conf);

HTableDescriptor desc = new HTableDescriptor(

            Bytes.toBytes(tablename));

HColumnDescriptor coldef = new HColumnDescriptor(

            Bytes.toBytes(colfamily));

admin.createTable(desc, Bytes.toBytes(1L),Bytes.toBytes(10L), 10);

//以第一位字符不同划分区

desc.setValue(HTableDescriptor.SPLIT_POLICY,

                     KeyPrefixRegionSplitPolicy.class.getName());

                     desc.setValue("prefix_split_key_policy.prefix_length","1");

感谢各位的阅读!关于“hbase性能优化的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI