Hbase优化方案
1、预分区设计
- 真正存储数据的是region要维护一个区间段的rowkey startRow~endRowkey
- -》手动设置预分区
- create 'user_p','info','partition',SPLITS => ['101','102','103','104']
- 存在-∞ +∞
- 第一个分区 -∞ ~ 101
- 第二个分区 101~102
- 第三个分区 102~103
- 第四个分区 103~104
- 第五个分区 104 ~ +∞
- -》生成16进制序列预分区
- create 'user_p2','info','partition',{NUMREGIONS => 15,SPLITALGO => 'HexStringSplit'}
- -》按照文件中设置的规则设置预分区
- create 'user_p4','partition',SPLITS_FILE => 'splits.txt'
附:splits.txt
- a1
- b2
- c3
- d4
2、rowkey设计
- 一条数据的唯一标识是rowkey,此rowkey存储在哪个分区取决于属于哪个预分区内。
- 为什么要设计rowkey?数据倾斜
- 为了防止出现数据倾斜
- (1)生成随机数/hash/散列值
- 例如:rowkey是101 变成:dd21231dqwdqd123131d112131
- 102 变成:wqdqdq212131dqdwqwdqdw1d21
- (2)字符串反转
- 2018120800011 1100080218102
- 2018120800012 2100080218102
- (3)字符串拼接
- 2018120800011_a12e
- 2018120800012_odd12c
- 101~105 105~100000
3、HBase优化
- (1)内存优化
- 一般分配70%内存给Hbase的java堆
- 不建议分配非常大的堆内存
- 一般设置为 16~48G内存即可
- 设置:export HADOOP_PORTMAP_OPTS="-Xmx512m $HADOOP_PORTMAP_OPTS"
- 注意:etc/hadoop下 hadoop-env.sh
- (2)基础优化
- -》优化DataNode
- 最大文件打开数
- hdfs-site.xml
- 属性:dfs.datanode.max.transfer.threads
- 默认值:4096 设置大于4096
- -》优化延迟高的数据操作等待时间
- hdfs-site.xml
- 属性:dfs.image.transfer.timeout
- 默认:60000毫秒
- 调大
- -》数据写入效率
- 压缩
- 属性:mapreduce.map.output.compress
- 值:org.apache.hadoop.io.compress.GzipCodec
- -》优化Hstore的文件大小
- 属性:hbase.hregion.max.filesize
- 默认值:10GB
- 调小
Hbase优化方案的更多相关文章
- Tomcat 配置详解/优化方案
转自:http://blog.csdn.net/cicada688/article/details/14451541 Service.xml Server.xml配置文件用于对整个容器进行相关的配置 ...
- 一个网站完整详细的SEO优化方案
根据自己的个人经验完成了这篇文章,希望对SEOer有点帮助,高手直接跳过,请勿喷水... 一个完整的SEO优化方案主要由四个小组组成: 一.前端/页编人员 二.内容编辑人员 三.推广人员 四.数据分析 ...
- mysql 性能优化方案
网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
- iOS界面跳转的一些优化方案
原文地址: http://blog.startry.com/2016/02/14/Think-Of-UIViewController-Switch/ iOS界面跳转的一些优化方案 App应用程序开发, ...
- tomcat配置详解/优化方案
Service.xml Server.xml配置文件用于对整个容器进行相关的配置. <Server>元素:是整个配置文件的根元素.表示整个Catalina容器. 属性:className: ...
- mysql 性能优化方案1
网 上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
- (转)Web性能优化方案
第一章 打开网站慢现状分析 在公司访问部署在IDC机房的VIP网站时会感觉很慢.是什么原因造成的?为了缩短页面的响应时间,改进我们的用户体验,我们需要知道用户的时间花在等待什么东西上. 可以跟踪一下我 ...
- mysql 性能优化方案 (转)
网 上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
- AngularJS应用页面切换优化方案
葡萄城的一款尚在研发中的产品,对外名称暂定为X项目.其中使用了已经上市的Wijmo中SpreadJS产品,另外,在研发过程中整理了一些研发总结分享给大家.如本篇的在页面切换的过程中优化方案,欢迎大家跟 ...
随机推荐
- Flume线上日志采集【模板】
Flume线上日志采集[模板] 预装软件 Java HDFS Lzo/Lzop 系统版本 Flume 1.5.0-cdh5.4.0 系统流程图 flume-env.sh配置文件 export JAVA ...
- Bootstrap学习笔记(6)--导航居中
说明:没找到好办法 <div class="row"> <ul class="nav nav-pills col-md-offset-4"&g ...
- SNP密度分布模式
1. window=100k,step=2k 统计每个window的snp密度,然后用mixtools的normalmixEM(两个组分的混合模型)统计snp的分布模式. R command: lib ...
- 跟着百度学PHP[9]-session会话
参考:http://www.w3school.com.cn/php/php_sessions.asp session变量用于存储有关用户的会话的信息,或更改用户会话的设置,session变量保存的信息 ...
- am335x alsa codec调试
root@phyCORE-AM335x:~ aplay -l**** List of PLAYBACK Hardware Devices ****card 0: audio [PCM051 audio ...
- SDRAM基础
一. 介绍 存储器的最初结构为线性,它在任何时刻,地址线中都只能有一位有效.设容量为N×M的存储器有S0-Sn-1条地址线:当容量增大时,地址选择线的条数也要线性增多,利用地址译码虽然可有效地减少地址 ...
- string--C++ STL 学习
C++STL提供了string基本字符系列容器来处理字符串,可以把string理解为字符串类,提供了添加删除\替换\查找和比较等丰富的方法. 使用string容器,需要包含头文件声明#include ...
- hdu6134 Battlestation Operational 莫比乌斯第一种形式
/** 题目:hdu6134 Battlestation Operational 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6134 题意:f(n) = ...
- Laravel 5.1 中创建自定义 Artisan 控制台命令实例教程
1.入门 Laravel通过Artisan提供了强大的控制台命令来处理非浏览器业务逻辑.要查看Laravel中所有的Artisan命令,可以通过在项目根目录运行: php artisan list 对 ...
- JS侦测设备旋转方向
window.onload = window.onresize = function initialLoad(){updateOrientation();} function updateOrient ...