其他
HBase调优及优化的10种方式
The following article is from 大数据技术博文 Author 大数据技术博文
2)LZO的压缩率居中,比GZIP要低一些,但是压缩和解压速度明显要比GZIP快很多,其中解压速度快的更多;
3)Zippy/Snappy的压缩率最低,而压缩和解压速度要稍微比LZO要快一些
create 'test', {NAME => 'info', VERSIONS => 1, COMPRESSION => 'snappy'}
disable 'test'
alter 'test', NAME => 'info', COMPRESSION => 'snappy'enable 'test'
major_compact 'test'
((RS Xmx) * hbase.regionserver.global.memstore.size) / (hbase.hregion.memstore.flush.size * (# column families))
region下面的某个storefile过大之后,就会进行split操作. 多个列族会形成更多的hfile小文件 不同列族会共享region,split操作会导致io增加. 一个列族触发flush时,其它列族也会进行flush,导致io压力增加 会形成更多小文件,增加hdfs压力 查询CF时,会出现跨多个region,查询效率变低 多个CF会有多个Memstore,内存占用增大.
Bloomfilter过滤器的思想为:当一个元素被加入集合时,通过K个散列函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它了:如果这些点有任何一个0,则被检元素一定不在;如果都是1,则被检元素很可能在
Bloomfilter根据key随机读时,在StoreFile级别进行过滤
Bloomfilter主要用来过滤不存在待检索RowKey或者Row-Col的HFile文件,避免无用的IO操作。它会告诉你在这个HFile文件中是否可能存在待检索的KV,如果不存在,就可以不用消耗IO打开文件进行seek。通过设置Bloomfilter可以提升随机读写的性能,在使用Bloom Filter判断一个元素是否属于某个集合时,会有一定的错误率,不过这种错误率很低. 也就是说除了空间换时间、时间换空间之外,Bloomfilter使用了一种用很低的错误率来减少空间并且快速查询.
create 'test',{NAME=>'INFO,BLOOMFILTER=>'ROWCOL'}
create 'test1',{NAME=>'INFO,BLOOMFILTER=>'ROW'}
rowkey的长度尽量短. 散列原则,将数据分散到不同region中. 表设计要考虑好热点问题 rowkey唯一原则,要保证rowkey是唯一的
-XX:+UseG1GC
-XX:+PrintFlagsFinal
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-XX:+PrintAdaptiveSizePolicy
-XX:+PrintReferenceGC
hbase> set_quota TYPE => THROTTLE, USER => 'u1', LIMIT => '10req/sec'
hbase> set_quota TYPE => THROTTLE, THROTTLE_TYPE => READ, USER => 'u1', LIMIT => '10req/sec'
hbase> set_quota TYPE => THROTTLE, USER => 'u1', LIMIT => '10M/day'
hbase> set_quota TYPE => THROTTLE, THROTTLE_TYPE => WRITE, USER => 'u1', LIMIT => '10M/sec'
hbase> set_quota TYPE => THROTTLE, USER => 'u1', TABLE => 't2', LIMIT => '5K/min'
hbase> set_quota TYPE => THROTTLE, THROTTLE_TYPE => READ, USER => 'u1', TABLE => 't2', LIMIT => '10req/sec'
hbase> set_quota TYPE => THROTTLE, USER => 'u1', NAMESPACE => 'ns2', LIMIT => NONE
hbase> set_quota TYPE => THROTTLE, NAMESPACE => 'ns1', LIMIT => '10req/hour'
hbase> set_quota TYPE => THROTTLE, TABLE => 't1', LIMIT => '10T/hour'
hbase> set_quota TYPE => THROTTLE, USER => 'u1', LIMIT => NONE
hbase> list_quotas USER => 'u1, NAMESPACE => 'ns2'
hbase> list_quotas NAMESPACE => 'ns2'
hbase> list_quotas TABLE => 't1'
hbase> list_quotas
balance_switch status
balance_switch true
balance_switch false
move [regionid] [servername]
猜你喜欢
数据同步之道(Sqoop、dataX、Kettle、Canal、StreamSets)
数仓社区
技术团队
http://tech.shucang.com
长按二维码关注我们
温馨提示
如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我们哦。
更多精彩
如果您对文章感兴趣,欢迎加入大数据技术交流群。进群方式:请加小助微信(微信号:iom1128),回复:大数据,备注行业-职位-城市,审核通过 会自动拉你进群。也可领取大数据学习资料哦。