Hadoop-No.9之表和Region
影响性能与数据分布的一个因素是HBase中表的数量以及每个表的Region的数量.如果分配的不合理,集群一个节点活多个节点的负载会出现显著的不均衡.
其中比较注意的几点:
- 每个节点包含一个Region服务器
- 每个Region服务器包含多个Region
- 任何时候,一个给定的Region存在一个特定的Region服务器上
- 表被分成多个Region,而且散步在Region服务器中.一个表至少要包含一个Region
对于一个给定的表,Region的数目可以参考一下两条经验法则进行选择.这两条法则权衡了put请求的性能与Region合并时间
Put操作性能
Region服务器中所有接收到的put请求的Region都会共享Region服务器的memstore.memstore是每个HBase Region服务器都有的一种缓存结构.memstore能缓存发送到Region服务器的写入.并对他们进行排序,知道打到特定的内存值,冲刷写入磁盘.因此,Region服务器中的Region越多,每个Region可用的memstore空间就越少.这可能会导致冲刷变小,较小的冲刷又可能带来更小.更多的HFile和更多较小的合并.由此导致性能降低.默认的配置将理想的冲刷大小设置为100MB,如果确定了memstore的大小并分区,使得每个去为100MB,那么Region服务器就会合理的得到最多数量的Region.
合并时间
Region越大,合并花费的时间就越多.从经验上来说,Region的大小最多为20GB,但是也有一些非常成功的集群,Region的大小可以打到120GB
HBase表分配Region的方式有以下两种
- 默认情况下,一个表只有一个Region,并随着数据的增加自动分片
- 创建表是,指定一个Region数量,而且将Region的大小设置为一个足够大的值(比如每个Region 100GB)以避免自动分片
在选择Region分配方式之前.应该确定选择了正确的分片策略.大多数情况下,应当选择ConstantSizeRegionSplitPolicy 或者DisabledRegionSplitPolicy.
建议局限分配Region的数量(即采用第二种方式),这种可以避免分片随机进行,避免自动分片导致范围不理想,影响性能.
还有一些情况应该采用自动分片.比如,一个不断增长的数据集只更新最新的数据,那么它就更适合采用自动分片.如果该表的行键有{Salt}{SeqId}组成,那么些操作可能受到控制,分发到一系列固定的Region上.既然Region自动分片,那么久的Region也就不需要合并了(除非是基于TTL的周期性合并)
Hadoop-No.9之表和Region的更多相关文章
- HBase -ROOT-和.META.表结构(region定位原理)
在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...
- HBase -ROOT-和.META.表结构(region定位原理) 分类: B7_HBASE 2015-03-13 20:52 90人阅读 评论(0) 收藏
在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...
- hadoop大数据处理之表与表的连接
hadoop大数据处理之表与表的连接 前言: hadoop中表连接其实类似于我们用sqlserver对数据进行跨表查询时运用的inner join一样,两个连接的数据要有关系连接起来,中间必须有一个 ...
- 从零自学Hadoop(15):Hive表操作
阅读目录 序 创建表 查看表 修改表 删除表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceL ...
- hadoop执行hbase插入表操作,出错:Stack trace: ExitCodeException exitCode=1:(xjl456852原创)
在执行hbase和mapreduce融合时,将hdfs上的文本文件插入到hbase中,我没有使用"胖包"(胖包就是将项目依赖的jar包放入项目打包后的lib目录中),而是直接将hb ...
- 一起学Hadoop——实现两张表之间的连接操作
---恢复内容开始--- 之前我们都是学习使用MapReduce处理一张表的数据(一个文件可视为一张表,hive和关系型数据库Mysql.Oracle等都是将数据存储在文件中).但是我们经常会遇到处理 ...
- 【Hadoop】HIVE 数据表 使用
3 使用 3.1 数据导入 3.1.1 可以使用命令行导入,也可以直接上传到HDFS的特定目录 3.1.2 格式问题 3.1.2.1 缺失/不合法字段默认值为NULL 3.1.2.2 最好数据是格式化 ...
- hadoop Hive 的建表 和导入导出及索引视图
1.hive 的导入导出 1.1 hive的常见数据导入方法 1.1.1 从本地系统中导入数据到hive表 1.创建student表 [ROW FORMAT DELIMITED]关键字,是用来设 ...
- 利用hadoop来解决“单表关联”的问题
已知 child parent a b a c d b d c b e b f c g c h x g x h m x m n o x o n 则 c 2+c+g 2+c+h 1+a+c 1+d+c ...
随机推荐
- udb主从不同步排错
Last_SQL_Errno:1032Last_SQL_Error:Could not execute Update_rows event on table oride_data.data_syste ...
- 2019牛客暑期多校训练营(第五场)- G subsequence 1
题目链接:https://ac.nowcoder.com/acm/contest/885/G 题意:给定字符串s,t,求s中满足字典序大于t的子序列的个数. 思路:组合数学+dp.当子序列长度大于m时 ...
- [bzoj1775][Usaco2009 Dec]Vidgame 电视游戏问题_背包dp
1775: [Usaco2009 Dec]Vidgame 电视游戏问题 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1775 题解: 发 ...
- gdb移植(交叉版本)
Gdb下载地址: http://ftp.gnu.org/gnu/gdb/ termcap下载地址:http://ftp.gnu.org/gnu/termcap/tar -zxvf termcap-1. ...
- Nginx安装SSL证书,开启HTTPS加密
效果就是访问博客的时候出现一把小绿锁,更加安(好)全(看). 实现步骤如下: 申请SSL证书 阿里云可以申请一年的免费证书,下载到本地 上传证书到服务器 scp [文件名] root@[ip地址]:/ ...
- 线性基求交(2019牛客国庆集训派对day4)
题意:https://ac.nowcoder.com/acm/contest/1109/C 问你有几个x满足A,B集合都能XOR出x. 思路: 就是线性基求交后,有几个基就是2^几次方. #defin ...
- c++学习笔记之引用
引用是 C++ 的新增内容,在实际开发中会经常使用:C++ 用的引用就如同C语言的指针一样重要,但它比指针更加方便和易用,有时候甚至是不可或缺的. 同指针一样,引用能够减少数据的拷贝,提高数据的传递效 ...
- javascript的一些有用函数记录,不断更新。。。
addLoadEvent函数: 众所周知,html文档加载完后会立即执行一个onload函数.但是onload函数只能包含一个被执行的函数,也就是你需要在加载完文档后执行的一个自己的函数.在实际中ht ...
- 【记忆化搜索】Navy maneuvers
[来源]: 2008年哈尔滨区域赛题目 [题目链接]: http://acm.hdu.edu.cn/showproblem.php?pid=2452 [参考博客]: https://blog.csdn ...
- OVS+Docker
两台机器操作一样就是IP不同但是设置都是相同的: A机器:192.168.71.142 docker0:172.17.42.1 B机器:192.168.71.136 docker0:172.17.43 ...