完整PDF下载:《HIVE简明教程》

前言

Hive是对于数据仓库进行管理和分析的工具。但是不要被“数据仓库”这个词所吓倒,数据仓库是很复杂的东西,但是如果你会SQL,就会发现Hive是那么的简单,简单到甚至不用学就可以使用Hive做出业务需求所需要的东西。

但是Hive和SQL毕竟不同,执行原理、优化方法,底层架构都完全不相同。

大数据离线分析使用Hive已经成为主流,但是目前市面上Hive相关的中文书籍只有一本《Hive编程指南》,对于不懂技术的数据分析人员来说,这本书有些繁琐和深奥;对于Hive技术人员来说,这本书对于原理和细节描述的又显得浅显和不足。

基于工作中的Hive使用情况,我整理了这个实用性的教程,这个教程分为三个部分:Hive基本使用、Hive执行原理与优化、Hive高级知识。由浅入深地简单介绍Hive技术。

第一部分:完全以日常使用为目标,整理了常用的Hive语法,而抛弃了不常用的部分,用来满足不懂技术的分析人员来快速使用Hive进行常见的日常数据分析。

第二部分:如果想能写出高效的Hive语句,必须要先了解Hive执行原理,然后掌握一系列的优化方法。所以第二部分主要内容是Hive原理与优化。

第三部分:讲解Hive的一系列技术细节,以满足技术人员想了解技术细节的要求,为能更加高效和灵活地使用Hive提供技术基础。

三个部分的详细说明:

模块

主要内容

预期目标

面对人群

Hive基本使用

Hive概念、常用语法、内置函数、自定义函数

可以使用Hive做常见的大数据分析工作

能统计出数即可的分析人员

Hive执行原理与优化

Hive技术架构、执行原理、优化方法

了解Hive执行原理,可以写出性能比较好的Hive程序

对性能有要求的分析人员

Hive高级知识

Hive技术细节

了解Hive技术细节

对Hive原理感兴趣的人员

参考资料:

1、Hive编程指南》 Eduard Capriolo、Dean Wampler、Jason Rutberglen 著   曹坤 译

2、Hive官方文档:https://cwiki.apache.org/confluence/display/Hive/GettingStarted

3、互联网上其他资源

 

第一部分:Hive基本使用

一、         Hive简介

1、           定义

2、           Hive的几个特点

3、           Hive使用

二、         Hive中的基本数据类型

三、         Hive DDL 数据定义语法

1、           创建数据库

2、           查看数据库定义

3、           查看数据库列表

4、           删除数据库

5、           切换当前数据库

6、           创建普通表

7、           创建分区表

8、           创建桶表

9、           查看有哪些表

10、         查看表定义

11、         修改表

12、         删除表

四、         Hive DML 数据管理语法

1、           向Hive中加载数据

2、           导出数据

3、           插入数据

4、           复制表

5、           克隆表

6、           备份表

7、           还原表

五、         Hive QL 数据查询语法

1、           Select 查询

2、           Where筛选

3、           Group By 分组

4、           子查询

六、         Join

1、           Hive Join的限制

2、           Inner join

3、           Left join

4、           Right join

5、           Full join

6           Left Semi-Join ( exists 语句)

七、         排序

1、           Order By

2、           Sort By

3、           Distribute By 和 Sort By

4、           Cluster By

5、           常见全局排序需求

八、         Hive内置函数

1、           参考资料

2、           explode函数

3、           collect_set函数

4、           collect_list函数

九、         Hive自定义函数

1、           UDF用户自定义函数(一进一出)

2、           UDAF用户自定义聚合函数(多进一出)

3、           UDTF自定义表生成函数(一进多出)

第二部分:Hive执行原理与优化

十、         Hive技术架构

1、           架构图

2、           Hive的核心

3、           Hive的底层存储

4、           Hive程序的执行过程

5、           Hive的元数据存储

6、           Hive客户端

十一、             MapReduce执行过程

十二、             Shuffle原理

1、           Map Shuffle过程

2、           Reduce Shuffle过程

十三、             性能瓶颈和优化

十四、             HiveQL层面优化

1、           利用分区表优化

2、           利用桶表优化

3、           join优化

4、           启用mapjoin

5、           桶表mapjoin

6、           Group By数据倾斜优化

7、           Order By优化

8、           Group By Map端聚合

9、           一次读取多次插入

10、         Join字段显示类型转换

11、         使用orc、parquet等列式存储格式

十五、             Hive架构层面优化

1、           不执行MapReduce

2、           本地模式执行MapReduce

3、           JVM重用

4、           并行化

十六、             Hive底层MapReduce优化

1、           合理设置Map数

2、           合理设置reduce数

第三部分:Hive高级知识

十七、             Hive文件格式

1、           常见文件格式

2、           列式存储

十八、             Hive压缩方法

1、           压缩的原因

2、           Hadoop常用压缩方法

3、           配置Hadoop压缩解压

4、           Hive中的压缩

十九、             复杂类型

1、           举例

2、           array类型

3、           map类型

4、           struct类型

5、           union类型

6、           字段分隔符

二十、             Hive SQL转换为MapReduce过程

二十一、        Hive解释器

1、           词法语法解析

2、           生成抽象语法树

二十二、        Hive编译器

二十三、        Hive优化器

二十四、        Hive执行器

附录A : HIVE安装

1、           安装Hive

2、           配置Hive

3、           安装MySQL数据库

4、           在远程MySQL存储模式配置

5、           启动Hadoop

6、           启动Hive

7、           测试hive

 

HIVE教程的更多相关文章

  1. Hive 教程(二)-认知hive

    在大数据领域,hive 的位置非常重要,排名前三的大数据工具为 spark.hive.kafka 什么是hive 在大数据领域有 3 种需求场景:传输.存储.计算: hive 是一个处理海量的结构化数 ...

  2. Hive教程(1)

    1. 介绍 Apache Hive可以使用SQL来读,写,管理分布式存储的大数据集,结构可以投射到已经存储的数据上,命令行工具和JDBC驱动可以让用户连接到Hive. 2. 安装和配置 你可以下载Hi ...

  3. Hive 教程(十)-UDF

    hive 虽然自带了很多函数,但是毕竟有限,无法满足所有业务场景,用户可以自定义函数来实现特定功能 UDF user define function,用户自定义函数 可以分为 3 类 UDF:一进一出 ...

  4. Hive 教程(九)-python with hive

    本文介绍用 python 远程连接 hive,此时需要 hive 启动 hiveserver2 服务 windows 下报如下错误 thrift.transport.TTransport.TTrans ...

  5. Hive 教程(八)-hiveserver2

    hive 的另外一种启动方式是 hiveserver2,它是提供了一种服务,使得我们可以远程操作 hive,就像操作 mysql 一样 hiveserver1 既然有 hiveserver2,肯定有 ...

  6. Hive 教程(七)-DML基础

    DML,Hive Data Manipulation Language,数据操作语言: 通俗理解就是数据库里与数据的操作,如增删改查,统计汇总等: Loading files into tables ...

  7. Hive 教程(六)-Hive Cli

    hive 有两种启动方式,一种是 bin/hive,一种是 hiveserver2, bin/hive 是 hive 的 shell 模式,所有任务在 shell 中完成,shell 就相当于 hiv ...

  8. Hive 教程(五)-参数配置

    配置基本操作 hive> set; 查看所有配置hive> set key: 查看某个配置hive> set key value: 设置某个配置 我们可以看到一些 hadoop 的配 ...

  9. Hive 教程(四)-分区表与分桶表

    在 hive 中分区表是很常用的,分桶表可能没那么常用,本文主讲分区表. 概念 分区表 在 hive 中,表是可以分区的,hive 表的每个区其实是对应 hdfs 上的一个文件夹: 可以通过多层文件夹 ...

随机推荐

  1. 使用Monit监控本地进程

    目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http: ...

  2. 闲来无聊,研究一下Web服务器 的源程序

    web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...

  3. java: web应用中不经意的内存泄露

    前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs. ...

  4. 利用SQLServer数据库发送邮件

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先 ...

  5. 浅谈JSP注释

    HTML注释 JSP文件是由HTML尿急和嵌入的Java程序片段组成的,所以在HTML中的注释同样可以在JSP文件中使用.注释格式:<!--注释内容--> <!-- 欢迎提示信息! ...

  6. 打破陈规抓痛点,H3 BPM10.0挑战不可能

    高效益意味着相似的运营活动比竞争对手做得更好,而战略定位则意味着企业在运营活动中有区别于竞争对手的实施方式,即差异化竞争.在新经济体下,面对社会的变革.市场的竞争环境.不断攀升的成本压力,几乎没有企业 ...

  7. MySQL 数据库双向同步复制

    MySQL 复制问题的最后一篇,关于双向同步复制架构设计的一些设计要点与制约. 问题和制约 数据库的双主双写并双向同步场景,主要考虑数据完整性.一致性和避免冲突.对于同一个库,同一张表,同一个记录中的 ...

  8. closure

    什么是闭包?百度的答案: 闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)."闭包&quo ...

  9. ubuntu安装ANSYS17.2全过程

    本次介绍在Ubuntu kylin1604下安装Ansys 17.2的全部过程. 1 安装文件准备 关于ANSYS的软件安装文件,在网络上可以找到.这里采用SSQ版本的安装文件,如图所示,包含一个名为 ...

  10. LeetCode - Two Sum

    Two Sum 題目連結 官網題目說明: 解法: 從給定的一組值內找出第一組兩數相加剛好等於給定的目標值,暴力解很簡單(只會這樣= =),兩個迴圈,只要找到相加的值就跳出. /// <summa ...