大家好,又见面了,我是你们的朋友全栈君。
hbase的特点是什么?? 1)hbase是一个分布式的基于列式存储的数据库,基于Hadoop的hdfs存储,zookeeper管理。 2)hbase适合存储半结构化和非结构化数据,对于结构化数据字段不够确定或者杂乱无章很难按一个概念去抽取数据; 3)hbase为空的纪录不会被存储; 4)基于的表包含rowkey,时间戳,列族,新写入数据时,时间戳更新,同时可以查询到以前的版本; 5)hbase是主从架构,hmaster作为主节点,hregionserver作为从节点。 描述一下hbase的rowkey的设计原则 1)rowkey的长度原则 rowkey是一个二进制码流,rowkey的长度被很多开发者 建议设计在10-100字节,不过建议越短越好,不要超过16字节。 原因如下: a、数据的持久化文件hfile中是按照keyvalue存储的,如果rowkey过长比如100个字节,1000万列数据光rowkey就要占用100*100万=10亿字节,将近1G数据,着就会极大的影响hfile的存储效率。 b、menstore将缓存部分数据到内存,如果rowkey字段过长内存的有效利用效率会降低,系统将无法缓存更多的数据,这会降低检索效率,因此rowkey的长度越短越好,; c、目前操作系统都是64位系统,内存8字节对齐,控制在16字节,8字节的整数倍利用操作系统的最佳特性。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140928.html原文链接:https://javaforall.cn