Chinaunix首页 | 论坛 | 博客
  • 博客访问: 435647
  • 博文数量: 62
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 740
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-10 21:59
个人简介

付出,终有回报!

文章分类

全部博文(62)

文章存档

2018年(6)

2017年(24)

2016年(6)

2015年(26)

分类: HADOOP

2017-02-23 22:13:18

      传统的关系型数据库处理方式是基于全面的 ACID 保证,遵循 SQL92 的标准表设计模式(范式)和数据类型,基于 SQL 语言的 DML 数据交互方式。长期以来这种基于关系型数据库的 IT 信息化建设中发展良好,但受制于关系型数据库提供的数据模型,对于逐渐出现的,为预先定义模型的数据集,关系型数据库不能很好的工作。越来越多的业务系统需要能够适应不同种类的数据格式和数据源,不需要预先范式定义,经常是非结构化的或者半结构化的(如用户访问网站的日志),这需要系统处理比传统关系型数据库高几个数量级的数据(通常是 TB 及 PB 规模级别)。传统关系型数据库能够纵向扩展到一定程度(如 Oracle 的 RAC,IBM 的 pureScale)。但这通常意味着高昂的软件许可费用和复杂的应用逻辑。

      基于系统需求发生了巨大变化,数据技术的先驱们不得不重新设计数据库,基于大数据的 NoSQL 的曙光就这样出现了,大数据及 NoSQL 的使用首先在 google、facebook 等互联网公司,随后是金融、电信行业,众多 Hadoop&NoSQL 的开源大数据项目如雨后春笋般发展,被互联网等公司用于处理海量和非结构化类型的数据。一些项目关注于快速 key-value 的键值存储,一些关注内置数据结构或者基于文档的抽象化,一些 NoSQL 数据管理技术框架为了性能而牺牲当前的数据持久化,不支持严格的 ACID,一些开源框架甚至为了性能放弃写数据到硬盘……

      Hbase 就是 NoSQL 中卓越的一员,Hbase 提供了键值 API,承诺强一致性,所以客户端能够在写入后马上看到数据。HBase 依赖 Hadoop 底层分布式存储机制,因此能够运行在多个节点组成的集群上,并对客户端应用代码透明,从而对每个开发人员来说设计和开发 Hbase 的大数据项目变得简单易行。Hbase 被设计来处理 TB 到 PB 级的数据,并针对该类海量数据和高并发访问做了优化,作为 Hadoop 生态系统的一部分,它依赖 Hadoop 其他组件提供的重要功能,如 DataNode 数据冗余和 MapReduce 批注处理。

HBase Hadoop Database,是一个构建在HDFS上的,高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBaseGoogle Bigtable的开源实现,典型的key/value系统,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。


上图描述了Hadoop EcoSystem中的各层系统,其中HBase位于结构化存储层,Hadoop HDFSHBase提供了高可靠性的底层存储支持,Hadoop MapReduceHBase提供了高性能的计算能力,ZookeeperHBase提供了稳定服务和failover机制。

此外,PigHive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。


阅读(843) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~