Hadoop(4)--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(4)--Hbase的更多相关文章
- CDH(Cloudera)与hadoop(apache)对比
本文出自:CDH(Cloudera)与hadoop(apache)对比http://www.aboutyun.com/thread-9225-1-1.html(出处: about云开发) 问题导读 ...
- Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型
Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', ...
- Hbase总结(五)-hbase常识及habse适合什么场景
当我们对于数据结构字段不够确定或杂乱无章非常难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,假设我们使用的传统数据库,肯定留有多余的字段.10个不行,20个,可是这个严重影响了质量. 而 ...
- (转)HBase 常用Shell命令
转自:http://my.oschina.net/u/189445/blog/595232 hbase shell命令 描述 alter 修改 ...
- HBase(一)——HBase介绍
HBase介绍 1.关系型数据库与非关系型数据库 (1)关系型数据库 关系型数据库最典型的数据机构是表,由二维表及其之间的联系所组成的一个数据组织 优点: 1.易于维护:都是使用表结构,格 ...
- 大数据学习笔记之Hadoop(一):Hadoop入门
文章目录 大数据概论 一.大数据概念 二.大数据的特点 三.大数据能干啥? 四.大数据发展前景 五.企业数据部的业务流程分析 六.企业数据部的一般组织结构 Hadoop(入门) 一 从Hadoop框架 ...
- HBase 系列(三)HBase Shell
HBase 系列(三)HBase Shell ./hbase shell # 进入 hbase 命令行 (1) HBase 命令帮助 help # 查看 HBase 所有的命令 create # 或 ...
- Hadoop(2)--hdfs
Hadoop(2) Hadoop底层封装的的是HDFS和MapReduce两种框架 在Hdfs中采用的是主从结构(Madter-slaver)就像领导和员工一样,领导负责整个公司的管理工作,而员工就负 ...
- 基于Docker搭建大数据集群(七)Hbase部署
基于Docker搭建大数据集群(七)Hbase搭建 一.安装包准备 Hbase官网下载 微云下载 | 在 tar 目录下 二.版本兼容 三.角色分配 节点 Master Regionserver cl ...
随机推荐
- Android实现双进程守护
做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论.这里先总结一下网上流传的各种解决方案,看看这些办法是 ...
- Exchange 域用户无权管理邮箱
将需要管理邮箱的域用户添加至“Microsoft Exchange Security Groups”用户组即可.
- 向jsp页面传值时出现乱码
在一个html页面中用表单向jsp页面传值: 这是html页面 <html> <head> <title>MyBeans.html</title> &l ...
- VC6.0静态编译注意事项
选择静态编译(工程->常规->Microsoft基础类->使用MFC作为静态链接库)的时候,会报错:MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: ...
- Flask入门flask-script 蓝本 钩子函数(三)
1 flask-script扩展库 概念: 是一个flask终端运行的解析器 ,因为项目完成以后,代码改动会有风险,所以借助终端完成不同启动项的配置 安装 pip3 install flask-scr ...
- Selenium2学习(十)-- iframe定位
前言 有很多小伙伴在拿163作为登录案例的时候,发现不管怎么定位都无法定位到,到底是什么鬼呢,本篇详细介绍iframe相关的切换 以http://mail.163.com/登录页面10为案例,详细介绍 ...
- Selenium2学习(三)-- 八种元素元素定位(Firebug和firepath)
前言 自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位.元素定位在这四个环节中是至关 ...
- log4go的一些改进设想
log4go 的 4.0.2 版本(https://github.com/ccpaging/log4go/tree/4.0.2)发布以后, 看了看别的 go 语言日志文件设计.发现了一篇好文: log ...
- 【Spring实战】—— 4 Spring中bean的init和destroy方法讲解
本篇文章主要介绍了在spring中通过配置init-method和destroy-method方法来实现Bean的初始化和销毁时附加的操作. 在java中,我们并不需要去管理内存或者变量,而在C或C+ ...
- 【转】vector中对象指针的排序
原文:http://blog.csdn.net/tanlijun37/article/details/1948493 vector中对象指针的排序,初步想法是1: 把对象指针存到vector,重载bo ...