Hive简介

Hive是什么

  • Hive是构建在Hadoop之上的数据仓库平台。
  • Hive是一个SQL解析引擎,将SQL转译成MapReduce程序并在Hadoop上运行。
  • Hive是HDFS的一个文件目录,一个表名对应一个目录名,若该表是分区表,则分区值对应子目录名。

    Hive的历史由来

    Hive体系结构

    Hive在Hadoop中的位置

    Hive设计特征

    Hive 做为Hadoop 的数据仓库处理工具,它所有的数据都存储在Hadoop 兼容的文件系统中。

    Hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中Hive 设定的目录下,因此,Hive 不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。

    Hive 的设计特点如下:

  • 支持索引,加快数据查询。
  • 不同的存储类型,例如,纯文本文件、HBase 中的文件。
  • 将元数据保存在关系数据库中,减少了在查询中执行语义检查时间。
  • 可以直接使用存储在Hadoop 文件系统中的数据。
  • 内置大量用户函数UDF 来操作时间、字符串和其他的数据挖掘工具,支持用户扩展UDF 函数来完成内置函数无法实现的操作。
  • 类SQL 的查询方式,将SQL 查询转换为MapReduce 的job 在Hadoop集群上执行。
  • 编码跟Hadoop同样使用UTF-8字符集。
  • Hive体系结构

    用户接口:

  • CLI:命令行界面,Cli 启动的时候,会同时启动一个 Hive 副本。
  • JDBC客户端:封装了Thrift,java应用程序,可以通过指定的主机和端口连接到在另一个进程中运行的hive服务器
  • ODBC客户端:ODBC驱动允许支持ODBC协议的应用程序连接到Hive。
  • WUI 接口:是通过浏览器访问 Hive
  • Thrift服务器:

  • 基于socket通讯,支持跨语言。Hive Thrift服务简化了在多编程语言中运行Hive的命令。绑定支持C++,Java,PHP,Python和Ruby语言。
  • 解析器:

  • 编译器:完成 HQL 语句从词法分析、语法分析、编译、优化以及执行计划的生成。
  • 优化器是一个演化组件,当前它的规则是:列修剪,谓词下推。
  • 执行器会顺序执行所有的Job。如果Task链不存在依赖关系,可以采用并发执行的方式执行Job。
  • 元数据库:

  • Hive的数据由两部分组成:数据文件和元数据。元数据用于存放Hive库的基础信息,它存储在关系数据库中,如 mysql、derby。元数据包括:数据库信息、表的名字,表的列和分区及其属性,表的属性,表的数据所在目录等。
  • Hadoop:

  • Hive 的数据文件存储在 HDFS 中,大部分的查询由 MapReduce 完成。(对于包含 * 的查询,比如 select * from tbl 不会生成 MapRedcue 作业)
  • Hive运行机制

    ① 用户通过用户接口连接Hive,发布Hive SQL

    ② Hive解析查询并制定查询计划

    ③ Hive将查询转换成MapReduce作业

    ④ Hive在Hadoop上执行MapReduce作业


    Hive适用场景

    Hive的优势

    • 解决了传统关系数据库在大数据处理上的瓶颈。适合大数据的批量处理。
    • 充分利用集群的CPU计算资源、存储资源,实现并行计算。
    • Hive支持标准SQL语法,免去了编写MR程序的过程,减少了开发成本。
    • 具有良好的扩展性,拓展功能方便。

    Hive的缺点

    • Hive的HQL表达能力有限:有些复杂运算用HQL不易表达。
    • Hive效率低:Hive自动生成MR作业,通常不够智能;HQL调优困难,粒度较粗;可控性差。
    • 针对Hive运行效率低下的问题,促使人们去寻找一种更快,更具交互性的分析框架。 SparkSQL 的出现则有效的提高了Sql在Hadoop 上的分析运行效率。

    Hive的应用场景

    适用场景

    • 海量数据的存储处理
    • 数据挖掘
    • 海量数据的离线分析

    不适用场景

    • 复杂的机器学习算法
    • 复杂的科学计算
    • 联机交互式实时查询

    Hive安装

    参考:Hive伪分布式下安装

    Hive基础知识梳理的更多相关文章

    1. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

      SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

    2. [SQL] SQL 基础知识梳理(二) - 查询基础

      SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

    3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

      SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

    4. [SQL] SQL 基础知识梳理(四) - 数据更新

      SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

    5. [SQL] SQL 基础知识梳理(五) - 复杂查询

      SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

    6. Anliven - 基础知识梳理汇总 - 软件测试

      基础知识梳理 - 软件测试 - 概念 基础知识梳理 - 软件测试 - 分类 基础知识梳理 - 软件测试 - 流程 基础知识梳理 - 软件测试 - 用例 基础知识梳理 - 软件测试 - 方法 基础知识梳 ...

    7. [C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型

      引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

    8. java基础知识梳理

      java基础知识梳理 1 基本数据类型

    9. 《Programming Hive》读书笔记(两)Hive基础知识

      <Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...

    随机推荐

    1. AR_Demon(使用vuforia平台提供的钥匙跟后台,实现相机拍图片读取模型以及视频的功能)

      1.https://developer.vuforia.com注册账号. 2.分别添加License Manager(连接钥匙),Target Manager(图片后台下载). 3.下载vuforia ...

    2. 4105: [Thu Summer Camp 2015]平方运算

      首先嘛这道题目只要知道一个东西就很容易了:所有循环的最小公约数<=60,成一条链的长度最大为11,那么我们就可以用一个很裸的方法.对于在链上的数,我们修改直接暴力找出并修改.对于在环上的数,我们 ...

    3. Markdown 标记语言简介

      简介 做为一种标记语言,广泛应用在写作领域,markdown语法编写的文本,经过特殊的软件进行展示: 目的:相对html,markdown提高文本的可读可写性 兼容:兼容html 自动转换特殊字符:& ...

    4. 用phpcms如何将静态页面制作成企业网站(下)

      上篇讲到了子页部分 这样的 有分页选择 列表项的代码部分 最后输出变量pages就可以了 看一下运行的效果 点击下一页 再来改一下子页显示的样式 点击人才将会出来的一个子页面 路径要统一 再来更改后台 ...

    5. PDO(PHP Data Object)数据访问抽象层

      1.可以访问其它数据库2.具有事务功能3.带有预处理语句功能(防止SQL注入攻击) 访问数据库 PDO::__construct ( string $dsn [, string $username [ ...

    6. loadrunner入门篇-Vuser发生器

      Vuser 发生器(Visual User Generator,VuGen),主要通过捕获客户端向服务器发送的HTTP请求,将这些请求录制成脚本,在回放时将捕获的HTTP请求再次发送,以达到模拟客户行 ...

    7. 30分钟掌握 C#6

      1. 只读自动属性(Read-only auto-properties) C# 6之前我们构建只读自动属性: public string FirstName { get; private set; } ...

    8. 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结

      20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

    9. MyBatis 使用Generator自动生成Model , Dao, mapper

      最近   我新建了一 个maven 项目,使用的是spring + springmvc + mybatis框架. 听说Mybatis可以自动生成model和mapper以及dao层,我就从网上查了查资 ...

    10. TypeScript设计模式之策略、模板方法

      看看用TypeScript怎样实现常见的设计模式,顺便复习一下. 学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思想 ...