云计算参考资料

来源:互联网 发布:中国禁枪怕被推翻 知乎 编辑:程序博客网 时间:2024/06/12 01:01
比较Hbase和RDBMS性能并进行分析。
比较Hbase和RDBMS性能并进行分析实例
RDMBS
HBase 和RDBMS(关系数据库)的比较
Hbase总结(四)- Hbase与传统数据库的区别
RDBMS与NOsql的区别

HBASE 概述

使用win10安装linux系统:
http://blog.csdn.net/u010053050/article/details/52388663
https://msdn.microsoft.com/zh-cn/commandline/wsl/about



安装Hadoop框架:
http://blog.csdn.net/hliq5399/article/details/78193113?locationNum=6&fps=1

http://blog.csdn.net/chongxin1/article/details/76105472


联机事务处理OLTP(on-line transaction processing),也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。
这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即用户在终端上送入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由数据库引擎负责完成的。
OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

联机分析处理OLAP(On-Line Analytical Processing),OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果.
用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录的数据进行数据分析和信息综合,关系数据库系统已不能全部满足这一要求。
联机分析处理(OLAP)系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。


RDBMS关系数据库
RDBMS是SQL基础,并为所有现代数据库系统如MS SQL Server,IBM DB2,甲骨文,MySQL和Microsoft Access。
关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

关系模型中常用的概念:

  • 关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名

  • 元组:可以理解为二维表中的一行,在数据库中经常被称为记录

  • 属性:可以理解为二维表中的一列,在数据库中经常被称为字段

  • :属性的取值范围,也就是数据库中某一列的取值限制

  • 关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成

  • 关系模式:指对关系的描述。其格式为:关系名(属性1,属性2, ... ... ,属性N),在数据库中成为表结构

关系型数据库的优点:

  • 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解

  • 使用方便:通用的SQL语言使得操作关系型数据库非常方便

  • 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率

关系数据库的瓶颈:
  • 高并发读写需求

网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈

  • 海量数据的高效率读写

网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的

  • 高扩展性和可用性

在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展 是非常痛苦的事情,往往需要停机维护和数据迁移。


对网站来说,关系型数据库的很多特性不再需要了:

  • 事务一致性

关系型数据库在对事物一致性的维护中有很大的开销,而现在很多web2.0系统对事物的读写一致性都不高

  • 读写实时性

对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比如发一条消息之后,过几秒乃至十几秒之后才看到这条动态是完全可以接受的

  • 复杂SQL,特别是多表关联查询

任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品阶级角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能极大的弱化了


在关系型数据库中,导致性能欠佳的最主要原因是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询。为了保证数据库的ACID特性,我们 必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一个格式化的数据结构。每个元组字段的组成都是一样,即使不是每个元组都需要所有的字段, 但数据库会为每个元组分配所有的字段,这样的结构可以便于标语表之间进行链接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。

ACID是Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性。


NoSQL
NoSQL一词,用于指代那些非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。
他只适合存储一些较为简单的数据,对于需要进行较复杂查询的数据,SQL数 据库显的更为合适。
数据的持久存储,尤其是海量数据的持久存储,还是需要一种关系数据库这员老将。


Hive(数据仓库工具)和RDBMS的异同
Hive是Hadoop数据仓库,严格来说,不是数据库,主要是让开发人员能够通过SQL来计算和处理HDFS上的结构化数据,适用于离线的批量数据计算。
Hive是以基于Hadoop的一个数据仓库工具,主要针对(OLAP联机分析处理),其底层不是hbase而是hdfs分布式文件系统,重点是基于一个统一查询分析层,hive一般只用于查询分析统计。Hbase和Hive在大数据架构中处在不同位置,Hbase主要解决实时数据查询问题,Hive主要解决数据处理和计算问题,一般是配合使用。

可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的。

测试HDFS读性能-读到本地缓存,不写硬盘的性能


Hbase
hive是文件的视图,hbase是建了索引的key-value表。 
Hadoop database 的简称,也就是基于Hadoop数据库,是一种NoSQL数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等。
常用场景采集网页数据存储,由于是key-value型数据库,可以扩展到各种key-value应用场景,如:日志信息存储、内容信息不需要完全结构化出来的类CMS引用。hbase针对的任然是OLTP应用为主。

1.面向列的分布式数据库

  2. 以HDFS作为文件系统

  3. 利用MapReduce处理Hbase中海量数据

  4. ZookKeeper作为协调工具

  5. sqoop提供Hbase到关系型数据库中数据导入功能

  6. Hive和pig提供高层语言支持如HSQ


三种模式:单机模式,伪分布式模式,分布式模式

hadoop集群三种模式:本地模式(单机模式),伪分布模式,全分布式模式

    单机模式:没有守护进程,所有东西运行在jvm上,使用的是本地文件系统, 没有dfs,使用开发过程中运行mapreduce程序,是使用最少的一种模式

    伪分布模式:在一台服务器上模拟集群安装环境, 即多个进程运行在一个服务器上;使用与开发和测试环境,所有 守护进程在同一台机子上

    全分布式模式:N台主机组成一个Hadoop集群,Hadoop守护进程运行在每一台主机上;分布式模式中,主节点和从节点会分开


数据模型

1. Hbase数据库采用了和Bigtable非常类似的数据类型,表格是稀疏的;

  1. row key 行键,table的主键

  2. timestamp 时间戳,数据操作时对应的时间戳,可以看成数据的version number

  3. Column Family 列簇,每个family可以由任意多个column组成,列名是<族名>:<标签>形式;一个表格的族名时固定的,除非使用管理员权限来改变表格的族名; 不过可以在任何时候添加新的标签;

    eg:course对于表来说是一个有两个列的列族(该列族由两个列组成math和art);

 

rowkey

name

TimeStamp

course

math

art

wish

wish

t1

t2

t3

97

93

97

98

76

99

rain

rain

t4

100

90
     4.两张特殊的表  -ROOT- 和 .META.

  作用如下:(即-ROOT-记录.META.的region信息,.META.记录用户表的region信息)

原创粉丝点击