HIVE的由来:

最初由Facebook基于HDFS开发出来的一套数据仓库工具。

HIVE可以干什么?

HIVE可以将已经结构化的数据映射成一张表,然后可以使用HIVE语言像写T-SQL一样查询数据。而实际上,最后的HQL语句是被解析成了MapReduce任务去执行数据抽取、转换和加载工作。

HIVE的特点:

特点就是开发成本和学习成本低。只要你会写T-SQL你就会写HQL。因为如果我们要去提取HBase的文件块或者HDFS的文件来分析数据,就必须写复杂的MapReduce过程,但是如果用HIVE,它就帮你干了生成MapReduce过程这事。可以这么理解,HIVE就是一个SQL接口,可以方便我们查询HDFS的数据。百度百科上把它定义为数据仓库工具,准确一点说它是一个BI的分析工具。为什么这么讲?因为它身上的缺点决定了它只是一个BI的分析工具。缺点就是HIVE的数据不可更改,HDFS的文件是怎样它就是怎样。它只是把HDFS的数据复制到表所在的HDFS目录中,然后再用MapReduce方法操作数据。这就决定两点,首先是延迟或者无法实时查询数据。

HIVE数据管理:

可以这么理解,HIVE具备了关系数据库的许多特性,诸如像表、执行计划和T-SQL语法。当然不同的是,最后HIVE去操作的是HDFS的文件,而不是像SQL SERVER下面的页。那么也就不难理解HIVE的数据管理了:元数据存储、数据存储、用户接口和(解析器、编译器、优化器)。

元数据存储:和关系数据库中元数据一样,记录着表的结构信息和属性,比如表所在的目录,表是否为外部表,还有像分区的信息。这部分信息是存在MySQL或者Derby中的。

数据存储:和关系数据库不一样的是,HIVE的数据是没有类型的,也可以理解就是全部都是字符,栏位是通过列分隔符,行是通过行分隔符区分的。它就像ETL中加载一个平面文件,我们需要制定特定的分隔符才可以解析文件中的数据并加载到目标表中去。那说到了数据存储,HIVE中的数据存储逻辑单位又是怎样的呢?和关系数据库有什么相同点和区别的?HIVE的数据存储模型分为:Table、External Table、Partition和Bucket。可以说如果你了解SQL Server或者Oracle这样的数据库,基本上你就明白了。

Table:也就是关系数据库的表,这点没什么讲的。唯一一点需要讲的就是Table对应了HDFS下的一个目录。

External Table:和Oracle下的External Table概念是一样的。也就是说表不是来源于HDFS或者HBase的文件,数据是外部源的。这里我还没学到。估计也是和Oracle一样支持像Excel这种外部文件。

Partition和Bucket:为什么把两个一块讲呢?因为他们有相似的地方,就是通过一种维度把Table的数据分割开来存储。Partition和SQL Server下的Partition是相似的,SQL Server下每个Partition对应着一个B-tree,而这里每个Partition则对应着一个目录。而Bucket则和Oracle的Hash分区相似,就是将表的数据进行水平拆分,这点Teradata这样的分布式关系数据库也是利用了Hash算法对数据进行均匀拆分。Partition和Bucket都是拆分数据,不同的是Partition属于range拆分或者说不均匀拆分,拆分后的数据分区数量取决于选定的栏位的数据分布,容易出现数据分布不均匀。而Bucket则是均匀拆分的特点,而且数据还是离散分布的,不会像Partition那样是聚集的。

用户接口:Web界面,数据库连接接口这些都归为用户接口;

解析器、编译器、优化器:解析器对客户端提交的HQL语句进行语法检查、语义检查;编译器把HQL编译后转换成MapReduce任务;优化器寻求最优计划,比如是否要并行之类。

Hadoop ->> HIVE的更多相关文章

  1. Hive创建表格报【Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException】引发的血案

    在成功启动Hive之后感慨这次终于没有出现Bug了,满怀信心地打了长长的创建表格的命令,结果现实再一次给了我一棒,报了以下的错误Error, return code 1 from org.apache ...

  2. FineReport中hadoop,hive数据库连接解决方案

    1. 描述 Hadoop是个很流行的分布式计算解决方案,Hive是基于hadoop的数据分析工具.一般来说我们对Hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连 ...

  3. hive 使用where条件报错 java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode

    hadoop 版本 2.6.0 hive版本 1.1.1 错误: java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalk ...

  4. hadoop+hive使用中遇到的问题汇总

    问题排查方式  一般的错误,查看错误输出,按照关键字google 异常错误(如namenode.datanode莫名其妙挂了):查看hadoop($HADOOP_HOME/logs)或hive日志 h ...

  5. Hadoop Hive基础sql语法

     目录 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的 ...

  6. Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递

    http://niuzhenxin.iteye.com/blog/1706203   Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...

  7. Hadoop Hive与Hbase整合+thrift

    Hadoop Hive与Hbase整合+thrift 1.  简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句 ...

  8. Hadoop Hive sql语法详解

    Hadoop Hive sql语法详解 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件 ...

  9. Hadoop Hive与Hbase关系 整合

    用hbase做数据库,但因为hbase没有类sql查询方式,所以操作和计算数据很不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询.hive也即 做数据仓库 1. 基于Ha ...

  10. Hadoop Hive sql 语法详细解释

    Hive 是基于Hadoop 构建的一套数据仓库分析系统.它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,能够将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

随机推荐

  1. 【原创】SpringMVC同一RequestMapping返回不同的类型

    曾经在工作中遇到过导出文件时,需要根据不同情况返回不同的数据的情况. 例如: 如果没有数据,弹框提示"没有数据" 导出报错,弹框提示"系统错误" 正常情况下,下 ...

  2. COCI2017-2018#3 Dojave || 洛谷P4443

    题目传送门............................................................................................... ...

  3. pip安装时的异常,找不到lib2to3\\Grammar.txt

    [From] http://jahu.iteye.com/blog/2353325 异常 : [Errno 2] No such file or directory: 'd:\\python\\pyt ...

  4. 在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径,如下:

    在~/.bash_profile中加入以下代码,若无该文件可自行创建: vi ~/.bash_profile #加入 #export PS1='[u@h W]$' 大写W代表最后路径,小写w代表详细路 ...

  5. Yii2 执行Save()方法失败,却没有错误信息

    一般用$model->errors 就能查看到更新失败的原因,但是这次却什么错误信息都没有,最后发现是因为在模型类中定义了一个方法 public function beforeSave($ins ...

  6. GreenPlum 大数据平台--安装

    1. 环境准备 01, 安装包准备: Greenplum :  >>>>链接地址 Pgadmin客户端 :  >>>链接地址 greenplum-cc-web ...

  7. 华为 p8上配置outllook,同步日历/邮件

    在网上找了半天,也没有找到合适的方法,在outlook官网上终于找到了配置方式 一种方式是使用outlook的手机应用.(此处省略) 另外一种方式是使用手机自带的邮件/日历应用(见下面操作方法) 如果 ...

  8. 关于TypeScript中null,undefined的使用

    TypeScript本质是javascript,因此基本上js所有的功能在ts上完全可以照搬照抄过来使用.根据ts的文档,有些我觉得值得商榷的——比如null,undefined就是例子. 文档上说一 ...

  9. "Sorry this application cannot run under a virtual machine" Error

    错误: 运行一个程序是出现了 “sorry this application cannot run under a virtual machine” 错误. 如何解决: 控制面板-->卸载程序- ...

  10. 利用pandas生成csv文件

    # -*- coding:UTF-8 -*- import json from collections import OrderedDict with open('dns_status.json',' ...