首页 最新文章大数据正文

Hadoop之HBase&Hive

  HBaseHadoop database),是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。其底层的文件系统是HDFS,使用阿里的开源框架——动物园管理zookeeper来管理集群间的HMaster和各Region server之间的通信,监控各Region server的状态,存储各Region的入口地址等。

  HBase是Key-Value形式的数据库(类似于java里的Map)。既然是数据库,HBase中的表大概有以下几个特点,是区别于传统关系型数据库的最大差异:

        1、大:一个表可以有上亿行,上百万列(列多时,插入变慢)。主要是面向列(族)具有存储和权限控制,列(族)独立检索。

        2、稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

        3、每个cell中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳。

        4、HBase中的数据都是字节,没有类型(因为系统需要适应不同种类的数据格式和数据源,不能预先严格定义模式)

  博主按:如上特点和大规模稀疏的Hamilton矩阵的特征很类似,求其特征值有无实际意义?大数据算法的运行基础是并行运算,这和大规模稀疏矩阵的并行处理机制如出一辙。

  Hive的是基于Hadoop上的数据仓库的基础构架,利用HQL(简单的SQL语句)来查询、分析存储在HDFS的数据。并且把SQL语句转换成mapreduce程序来数据的处理。可以不太精确描述为HDFS原始存储+DB Schema信息存储+SQL解析引擎+底层计算框架组成的数据仓库

  Hive与传统的关系数据库主要区别在以下几点:

        1、存储的位置 Hive的数据存储在HDFS或者Hbase中,而后者一般存储在裸设备或者本地的文件系统中。

        2、Hive是不支持更新的,一般是一次写入多次读写。

        3、执行SQL的延迟 Hive的延迟相对较高,因为每次执行HQL需要解析成MapReduce。

        4、数据的规模上 Hive一般是TB级别,而后者相对较小。

        5、可扩展性上 Hive支持UDF(User-Defined-Function)/UDAF(User- Defined Aggregation Funcation)/UDTF(User-Defined Table-Generating Functions),后者相对来说较差。

blob.png

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论