今天给大家带来的是大数据开发-HBase关系对比,相信大家也都发现了,有很多框架的用处都差不多,为什么只用这个而不用那个呢?这就是两者之间的一些不同之处的对比,然后选择一个最适用的,本期就是关系对比,为什么它最适用!一、HBase基础知识(1)HBase依赖和NoSQLHBase依赖于HDFS做底层的数据存储,BigTable依赖GoogleGFS做数据存储HBase依赖于MapReduce做数据计算,BigTable依赖GoogleMapReduce做数据计算HBase依赖于ZooKeeper做服务协调,BigTable依赖GoogleChubby做服务协调NoSQL=NOSQLNoSQL=NotOnlySQL:会有一些把NoSQL数据的原生查询语句封装成SQL,比如HBase就有Phoenix工具关系型数据库和非关系型数据库的典型代表NoSQL:hbase,redis,mongodbRDBMS:mysql,oracle,sqlserver,db2(2)NoSQL数据库的要点:1.它介于NoSQL和RDBMS之间,仅能通过主键(rowkey)和主键的range来检索数据2.HBase查询数据功能很简单,不支持join等复杂操作3.不支持复杂的事务,只支持行级事务(可通过hive支持来实现多表join等复杂操作)。4.HBase中支持的数据类型:byte[](底层所有数据的存储都是字节数组)5.主要用来存储结构化和半结构化的松散数据。(3)结构化、半结构化和非结构化区别:结构化:数据结构字段含义确定,清晰,典型的如数据库中的表结构半结构化:具有一定结构,但语义不够确定,典型的如HTML网页,有些字段是确定的(title),有些不确定(table)非结构化:杂乱无章的数据,很难按照一个概念去进行抽取,无规律性与Hadoop一样,HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。二、HBase与Hadoop的关系(1)HDFS1.为分布式存储提供文件系统2.针对存储大尺寸的文件进行优化,不需要对HDFS上的文件进行随机读写3.直接使用文件4.数据模型不灵活5.使用文件系统和处理框架6.优化一次写入,多次读取的方式(2)HBase1.提供表状的面向列的数据存储2.针对表状数据的随机读写进行优化3.使用key-value操作数据4.提供灵活的数据模型5.使用表状存储,支持MapReduce,依赖HDFS6.优化了多次读,以及多次写三、RDBMS与HBase的对比关系型数据库(1)结构:1.数据库以表的形式存在2.支持FAT、NTFS、EXT、文件系统3.使用Commitlog存储日志4.参考系统是坐标系统5.使用主键(PK)6.支持分区7.使用行、列、单元格(2)功能:1.支持向上扩展2.使用SQL查询3.面向行,即每一行都是一个连续单元4.数据总量依赖于服务器配置5.具有ACID支持6.适合结构化数据7.传统关系型数据库一般都是中心化的8.支持事务9.支持JoinHBase(1)结构:1.数据库以region的形式存在2.支持HDFS文件系统3.使用WAL(Write-AheadLogs)存储日志4.参考系统是Zookeeper5.使用行键(rowkey)6.支持分片7.使用行、列、列族和单元格(2)功能:1.支持向外扩展2.使用API和MapReduce来访问HBase表数据3.面向列,即每一列都是一个连续的单元4.数据总量不依赖具体某台机器,而取决于机器数量5.HBase不支持ACID(Atomicity、Consistency、Isolation、Durability)6.适合结构化数据和非结构化数据7.一般都是分布式的8.HBase不支持事务9.不支持Join好了以上就是本期的所有内容了,大数据开发的关系对比了解的清楚才能更好的选择适合自己的,知己知彼百战百胜。希望大家点个
转载请注明:http://www.aierlanlan.com/rzgz/6644.html