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. 汽车后市场SWOT分析

    客户接待系统SWOT分析 版本  V0.1 所有人: 王超 S  客户接待系统符合市场的目前阶段需求.填补了市场的空白部分. W 市场推广的力度差异,市场由蓝海编成红海,多种厂商参与,创业团队不断进入 ...

  2. Java—集合框架List

    集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组 ...

  3. monkeyrunner之安卓开发环境搭建(二)

    在上一篇文章-安卓开发环境搭建中,我们创建并启动了eclipse自带的安卓模拟器,该模拟器不仅启动慢,而且在使用过程中的反应速度也是出奇的差,经常出现卡机现象.为了解决这种现象,因此,我们又寻找到了更 ...

  4. raw_input与input的区别

    1. 版本差异 raw_input——>python2版本 input——>python3版本 2. 输入格式差异 就是raw_input()随便输都是字符串,而input()必须按照Py ...

  5. Do the Untwist

      Do the Untwist Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. Android(java)学习笔记30:泛型接口的概述和使用

    1. 泛型接口的概述和使用: package cn.itcast_06; /* * 泛型接口:把泛型定义在接口上 */ public interface Inter<T> { public ...

  7. Android仿QQ复制昵称效果

    本文同步自http://javaexception.com/archives/76 背景: 这几天做一个复制文本的需求,突然看到QQ上复制昵称跟QQ号的效果,觉得很不错,就想要模仿一波,办法比较简单粗 ...

  8. context.RewritePath

    context.RewritePath原理修改HttpRequest类中的Path属性

  9. 【洛谷P2577】[ZJOI2005]午餐

    午餐 题目链接 DP题都辣么毒瘤的么.. 首先,看一下题解 我们就有了思路: 贪心:显然,让吃饭慢的先打饭,sort一遍(证明?不存在的.. DP:f[i][j][k]表示前i个人,窗口1的打饭时间为 ...

  10. HDU 1210 Eddy's 洗牌问题(找规律,数学)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1210 Eddy's 洗牌问题 Time Limit: 2000/1000 MS (Java/Other ...