HBase是面向列存储的,每个列都单独存储,所以在HBase中列是连续存储的,而行不是。
HBase ShellHBase提供了交互式命令行工具可以进行创建表、添加数据、扫描数据、删除数据等操作和其他一些管理命令。
四、HBase在集群中的定位HBase一种是作为存储的分布式文件系统,另一种是作为数据处理模型的MR框架。因为日常开发人员比较熟练的是结构化的数据进行处理,但是在HDFS直接存储的文件往往不具有结构化,所以催生出了HBase在HDFS上的操作。如果需要查询数据,只需要通过键值便可以成功访问。
五、HBase内部存储架构HBase是由row key,column family,column和cell组成,row key确定唯一的一行,column family由若干column组成,column是表的字段,cell存储了实际的值或数据。
六、HBase与Hadoop 1、HDFS* 为分布式存储提供文件系统
* 针对存储大尺寸的文件进行优化,不需要对HDFS上的文件进行随机读写
* 直接使用文件
* 数据模型不灵活
* 使用文件系统和处理框架
2、HBase
* 提供表状的面向列的数据存储
* 针对表状数据的随机读写进行优化
* 使用key-value操作数据
* 提供灵活的数据模型
* 使用表状存储,支持MapReduce,依赖HDFS
* 优化了多次读,以及多次写
七、HBase的优缺点 1、优点* 方便高效的压缩数据
* 支持快速数据检索
* 管理和配置简单,支持横向扩展,所以非常容易扩展
* 聚合查询性能非常高
* 可高效地进行分区,提供自动分区机制把大的region切分成小的subregion
2、缺点* 对JOIN以及多表合并数据的查询性能不好
* 更新过程中有大量的写入和删除操作,需要频繁合并和分裂,降低存储效率
* 对关系模型支持不好,分区和索引模式设计比较困难。
八、HBase的环境角色 1、HMaster 1、功能描述* 监控RegionServer
* 处理RegionServer故障转移
* 处理元数据的变更
* 处理region的分配或移除
* 在空闲时间进行数据的负载均衡
* 通过Zookeeper发布自己的位置给客户端
2、RegionServer 2.1、功能描述* 负责存储HBase的实际数据
* 处理分配给它的Region
* 刷新缓存到HDFS
* 维护HLog
* 执行压缩
* 负责处理Region分片
2.2、内含组件* Write-Ahead logs
HBase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定)。如果机器突然原地爆炸,把数据保存在内存中会引起数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile的文件中,然后再写入内存中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。
* HFile
这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。
* Store
HFile存储在Store中,一个Store对应HBase表中的一个列族
* MemStore