1. Hbase中的手动切分region
split 'ns1:t1','row040'
2. Hbase手动移动region
move 'f6e6164514db53d660c5414df1f3864e','mini05,16020,1539222350164'
3. Hbase中row-key的设计
-
行健的热点问题
- 是由于行健相似、连续且数据量过大操作成单region的数据量过大,进而影响读写效率
- 行健应该尽量的随机、不要出现连续行健。
- 常见的行健设计就是,比如手机号码倒置+时间戳,比如随机前缀+关系型数据库中的主键
- 因为hbase提供的查询内容非常非常low,但是所有关于hbase的查询只能通过rowkey,所以
- 在设计行健的时候,应该考虑将尽量多的查询条件放到rowkey中去,形成的行健就成为复合键
-
列族的设计:
- cf1----->“columnFamily”
- cf2----->“cf”
- 建议hbase表是高表,不建议宽表,因为宽表拥有的列族很多,操作并跨越的文件(HFile)就很多,效率会有相应影响,
- 反之建议使用高表,列族不宜过多(列族一般使用一个)。
- 在设计表的时候,各个列/列族名称不宜过长,因为hbase需要对这些数据在内存中做缓存,做索引,进而影响内存容量,所以建议不易过长,以便能够在内存中容纳更多的数据。至于阅读性,有项目文档搞定。
4. Hbase中的Row-Key的设计
- 唯一性(row-key是唯一的)
- 长度越短越好,但是row-key的长度一般是相同的
- 散列性(均匀的分配到每个region中)