欢迎投稿

今日深度:

Hbase调优,

Hbase调优,


数据块大小的配置

随机查询:数据块越小,索引越大,占用内存也越大,加载进内存的数据小,查找性能更好
顺序查询:更好的顺序扫描,需要更大的数据块

> create "stu",{NAME => "cf",BLOCKSIZE =>"65536"}

数据块缓存的配置

如果经常顺序访问或很少被访问,可以关闭列族的缓存,列族缓存默认打开

> create "stu",{NAME => "cf",BLOCKCACHE =>"false"}

激进缓存的配置

可以选择一个列族赋予更高的优先级缓存

> create "stu",{NAME => "cf",IN_MEMORY =>"true"}

布隆过滤器的配置

减少硬盘读取数据带来的开销,对储存的数据块做反向测试,占用额外的空间

> create "stu",{NAME => "cf",BLOOMFILTER =>"ROWCOL"}

生存时间配置(TTL)

超过这个时间设置的就会在下一次大合并中被删除

> create "stu",{NAME => "cf",TTL =>"18000"}

压缩

压缩可以节省空间,读写数据会增加CPU的使用率 LZO,SNAPPY,GZIP

> create "stu",{NAME => "cf",COMPRESSION =>"GZIP"}

单元时间版本

默认维护一个时间版本

> create "stu",{NAME =>"cf",VERSIONS =>5}

设置hdfs中data的存储路径为多路径

修改hdfs-site.xml中的dfs.data.dir

设置java垃圾回收时的heap

修改hbase-env.sh中的HBASE_HEAPSIZE=8000

修改RegionServer与Zookeeper间的连接超时时间

zookeeper.session.timeout=180000

Hbase客户端优化

AutoFlush

将HTable的setAutoFlush设为false(默认是true),可以支持客户端批量更新。即当Put填满客户端flush缓存时,才发送到服务端。

Scan Caching

scanner一次缓存多少数据来scan(从服务端一次抓多少数据回来scan)。默认值是 1,一次只取一条。

Scan Attribute Selection

scan时建议指定需要的Column Family,减少通信量,否则scan操作默认会返回整个row的所有数据(所有Coulmn Family)。

机架感知配置

修改对应的topology.data的路径

增加执行权限

配置core-site.xml

toploygy.script.file.name=/usr/local/…/toploygy.sh

同步到集群其它节点

增加区域服务器的处理线程数

本质增大RPC数量hbase-site.xml

<property>
  <name>hbase.regionserver.handler.count</name>
  <value>40</value>

</property>更多精彩原创文章,详见红象云腾社区

www.htsjk.Com true http://www.htsjk.com/hbase/40333.html NewsArticle Hbase调优, 数据块大小的配置 随机查询:数据块越小,索引越大,占用内存也越大,加载进内存的数据小,查找性能更好 顺序查询:更好的顺序扫描,需要更大的数据块 create "stu",{N...
相关文章
    暂无相关文章
评论暂时关闭