Hadoop--Hbase
Posted dsjxb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop--Hbase相关的知识,希望对你有一定的参考价值。
Hadoop 其它组成角色介绍--Hbase 在apache的官方网站上,对于Hbase的定义是他是Hadoop的第一个分布式、可扩展的大数据存储的数据库,他的目标是将非常大的表托管到一个集群中进行相应的存储,区别于mysql等数据库,它是一个非关系型数据库,但是不支持sql语句的编写 HBase的架构 (RPC:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议) 客户端Client 整个集群的访问入口 ,使用HBase的RPC机制与HMaster和HRegionServer进行通信。对于管理类操作,Client 与HMaster 进行RPC 通信;对于数据读写类操作,Client 与RegionServer 进行RPC 交互。包含访问HBase的接口,并维护cache来加强对HBase的访问。 协调服务组件ZooKeeper ZooKeeper (队列)负责管理HBase 中多HMaster 的选举、服务器之间状态同步等。HBase 中ZooKeeper 实例存储HBase 元数据信息、实时监控RegionServer、存储所有Region 的寻址入口.保证任何时候集群中只有一个HMaster。 主节点HMaster HMaster没有单节点问题,Hbase中可以启动多个HMaster,通过Zookeeper的Master Election 机制保证总有一个Master在运行,主要负责Table和Region的管理工作。管理用户对表的增删查改操作。管理HRegionServer的负载均衡,调整Region分布。Region Split之后,负责新Region的分布。在HRegionServer停机后,负责失效HRegioinServer上Region迁移工作。 Region 节点HRegionServer HRegionServer 主要负责响应用户I/O 请求,向HDFS 文件系统中读写数据 HBase的特点 1、容量大:单表可以存储大量的行、列,数据矩阵所支持的数量级可以弹性设置 2、面向列的存储方式:传统的数据库的存储方式在一开始的设计表的时候就已经将每一列的属性进行了设定,不能再动态的进行添加,而Hbase主要有Row key,Column Family两个属性组成,例如设定User表,定义列族为info,那么存储的时候就可以设定数据为info:name=zhangsan 的形式进行存储,当要添加属性的时候直接使用info:**=**进行添加就行 3、扩展性:底层存储依赖HDFS,拥有可扩展性,而且HBase的Region和RegionServer的概念可以进行分区且分区后数据不在一个节点上,也决定了Hbase是可以进行扩展操作的。Hbase的扩展是热扩展,即可以以便进行的服务一边对节点进行操作 4、高可靠性:主要在三个方面保证了Hbase中的数据的稳定,第一就是Hbase本身就提供了WAL和Replication两种机制,WAL保证了数据写入的时候不会因为集群的原因造成数据的丢失,Replication保证了当集群出现问题的时候也不会对其中的数据产生影响,第二、Hbase底层使用的是HDFS的机制,HDFS本身就拥有副本机制,传入的数据会在不同的节点上进行相应的备份,第三、Hbase使用zookeeper组件进行协调服务,erzookeeper本身就具有高可用和高可靠两种特性 5、高性能:底层的LSM(内存+顺序写磁盘)的数据结构以及列族的存储方式决定了在写方面HBase拥有非常高的性能,region切分、主键索引和缓存机制让Hbase在随机读取方面也有不错的展现。 Hbase的适应场景; Hbase虽然提供了一个强大的存储机制用来对数据进行存储,但是,事物都是两面性的,在某一些场合也是不使用Hbase的,在官方网站上,对于以下几个方面做出了不适应于使用Hbase进行存储的解释 1、数据量的大小:Hbase和关系型数据库的区别就在于存储数据的大小,当数据量不是很大的时候,使用传统的RDBMS可能是一个更好的选择,因为当数据量不是很大的时候使用Hbase 会使集群中产生资源浪费的情况,只是单纯的一到两个节点上就把所有的数据处理完了 2、确保有足够的硬件支持:即使是搭建一个最简单的集群也至少需要3个节点(虽然可以进行调整,但是HDFS的备份机制默认的节点个数为3个),所以,要想使用Hbase对数据进行存储要考虑一下自己的硬件是否能够对其进行支持 3、确保应用程序可以在Hbase下能够生存下来,因为通过RDBMS进行构建的应用程序不是简单的更改就可以移植到Hbase上的,比如JDBC驱动程序就无法进行移植以及复杂的查询语言等都在HBase中不能被使用,所以要确定可以在没有 RDBMS提供所有额外功能的情况下生存
如需交流,请加入QQ群:859121793
以上是关于Hadoop--Hbase的主要内容,如果未能解决你的问题,请参考以下文章