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(4)--Hbase的更多相关文章

  1. CDH(Cloudera)与hadoop(apache)对比

    本文出自:CDH(Cloudera)与hadoop(apache)对比http://www.aboutyun.com/thread-9225-1-1.html(出处: about云开发)   问题导读 ...

  2. Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型

    Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', ...

  3. Hbase总结(五)-hbase常识及habse适合什么场景

    当我们对于数据结构字段不够确定或杂乱无章非常难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,假设我们使用的传统数据库,肯定留有多余的字段.10个不行,20个,可是这个严重影响了质量. 而 ...

  4. (转)HBase 常用Shell命令

    转自:http://my.oschina.net/u/189445/blog/595232 hbase shell命令                             描述  alter 修改 ...

  5. HBase(一)——HBase介绍

    HBase介绍 1.关系型数据库与非关系型数据库 (1)关系型数据库 ​ 关系型数据库最典型的数据机构是表,由二维表及其之间的联系所组成的一个数据组织 ​ 优点: ​ 1.易于维护:都是使用表结构,格 ...

  6. 大数据学习笔记之Hadoop(一):Hadoop入门

    文章目录 大数据概论 一.大数据概念 二.大数据的特点 三.大数据能干啥? 四.大数据发展前景 五.企业数据部的业务流程分析 六.企业数据部的一般组织结构 Hadoop(入门) 一 从Hadoop框架 ...

  7. HBase 系列(三)HBase Shell

    HBase 系列(三)HBase Shell ./hbase shell # 进入 hbase 命令行 (1) HBase 命令帮助 help # 查看 HBase 所有的命令 create # 或 ...

  8. Hadoop(2)--hdfs

    Hadoop(2) Hadoop底层封装的的是HDFS和MapReduce两种框架 在Hdfs中采用的是主从结构(Madter-slaver)就像领导和员工一样,领导负责整个公司的管理工作,而员工就负 ...

  9. 基于Docker搭建大数据集群(七)Hbase部署

    基于Docker搭建大数据集群(七)Hbase搭建 一.安装包准备 Hbase官网下载 微云下载 | 在 tar 目录下 二.版本兼容 三.角色分配 节点 Master Regionserver cl ...

随机推荐

  1. C语言指针的陷阱

    C语言指针的陷阱   分类: C/Cpp 转自:http://blog.csdn.net/porscheyin/article/details/3461670 “C语言诡异离奇,陷阱重重,却获得了巨大 ...

  2. dedecms 去掉栏目页的预览功能

    首先找到include/typeunit.class.admin.php 再找到 ListAllType 方法,该方法的功能是“读出所有分类” 找到并将该方法内的所以以下代码注释或者删除”<a ...

  3. JS教程之实现加载图片时百分比进度

    思路:思路其实很简单,ajax执行时,会生成一个event对象,其中会包含要加载的文件的大小和当前已经加载完成部分的大小,通过这两个值即可计算出百分比 事件介绍onprogress 当浏览器正在加载媒 ...

  4. c++中的const用法(很详细)——转

    http://www.cnblogs.com/ymy124/archive/2012/04/16/2451433.html const给人的第一印象就是定义常量. (1)const用于定义常量. 例如 ...

  5. bash: ./adb: No such file or directory

    运行adb出现这种错误: bash: ./adb: No such file or directory   但adb确实存在. 可能1.你用的是64位的Linux,没装32位运行时库,安装 $ sud ...

  6. C++11之 Move semantics(移动语义)(转)

    转https://blog.csdn.net/wangshubo1989/article/details/49748703 按值传递的意义是什么? 当一个函数的参数按值传递时,这就会进行拷贝.当然,编 ...

  7. (转)Wireshark基本介绍和学习TCP三次握手

    原地址https://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html#filter 阅读目录 wireshark介绍 wireshar ...

  8. xHTML与HTML的写法有什么不同?

    全部标签都必须小写 在XHTML中,全部的标签都必须小写.不能大写和小写穿插当中.也不能全部都是大写. 事比例如以下. 错误:<Head></Head><Body> ...

  9. winform 实现彩票功能

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/MrTraum/article/details/32702319 watermark/2/text/a ...

  10. win10的host设置

    路径:C:\Windows\System32\drivers\etc\hosts 例如: 127.0.0.1       localhost 10.201.3.177 apmdbm1