HBase(Hadoop 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),后者相对来说较差。
- 上一篇: VBA:日期转换工具
- 下一篇: Hadoop之MapReduce
评论