HIVE简明教程

完整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

 

时间: 2024-12-12 12:24:23

HIVE简明教程的相关文章

Lisp简明教程

此教程是我花了一点时间和功夫整理出来的,希望能够帮到喜欢Lisp(Common Lisp)的朋友们.本人排版很烂还望多多海涵! <Lisp简明教程>PDF格式下载 <Lisp简明教程>ODT格式下载 具体的内容我已经编辑好了,想下载的朋友可以用上面的链接.本人水平有限,如有疏漏还望之处(要是有谁帮我排排版就好了)还望指出!资料虽然是我整理的,但都是网友的智慧,如果有人需要转载,请至少保留其中的“鸣谢”页(如果能有我就更好了:-)). Lisp简明教程 整理人:Chaobs 邮箱:[

Linux防火墙iptables简明教程

前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔除了许多冗余的内容,提取出尽量多的精华部分成文,和大家共同学习,本文涉及的内容包括如下 Linux防火墙iptables简明教程 1.安装iptables 2.查看现有的iptables规则 3.删除某iptables规则 4.清除现有iptables规则 5.创建规则 6.设置开机启动 7.保存i

Markdown简明教程4-Markdown UML图

1. 前言 Markdown是一种轻量级的标记语言,把作者从繁杂的排版工作中解放出来,实现易读易写的文章写作,已经逐渐成为事实上的行业标准.CSDN博客支持Markdown可以让广大博友更加专注于博客内容,大赞.但是,不少博友可能对Markdown比较生疏,本博接下来用一个系列文章<Markdown简明教程>扼要介绍Markdown,希望可以对大家有所帮助. 系列教程目录 关于Markdown Markdown基本使用 Markdown表格和公式 Markdown UML图 CSDN Mark

JSP 简明教程(二):JSP基本语法

基本语法 JSP只是在html的基础上嵌入一些动态的元素.下面是HelloWorld代码: <html> <% out.println("hello world"); %> </html> 以上代码中的<% %>就是动态元素.JSP中所有的特殊语法如下: <% %>:用于表示一段Java代码.这段代码在编译之后会放在_jspService()方法中. <%! %>:多了一个叹号,也用于表示一段Java代码,但是这段

第一课 C语言简明教程

1序言: 1与Java.C#等高级语言相比,C语言却非常简单,学习简单,使用也简单,但是也非常重要,到目前为止基本上操作系统的内核代码超过百分之九十使用C语言完成,因此学好C语言是学好计算机这门课程的基础,特别是进入系统编程尤为明显. 今天是本人复习C语言课程的第一课,主要重新记录一下C语言的基础知识,这节课涉及到C语言的结构.变量以及类型.输入输出.条件判断以及循环知识. 2知识点: 2.1 C语言的结构 2.1.1 通常情况下C语言程序是由: 1.相关的代码注释,使用/* ··· */可注释

Vbs 脚本编程简明教程之一

-为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件事情就是打开 WORD ,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某 些数据进行整理,把各式各样的数据按照某种规则排列起来--.这些事情重复.琐碎,使人容易疲劳. 第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往

Smarty教程1.引擎定义2.主要优点3.简明教程4.使用判断5.循环数组6.常见问题8.解释程序

Smarty是一个php模板引擎.更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人.例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现.在Smarty的程序里,这些被忽略了.模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等).有一天程序员想要改变文章检索的方式(

《Python简明教程》总结

Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 面向对象 输入输出 异常 标准库 更多的内容

Java泛型简明教程

Java泛型简明教程 博客分类: Java综合 JavaApple数据结构CC++ Java泛型简明教程 本文是从 Java Generics Quick Tutorial 这篇文章翻译而来. 泛型是Java SE 5.0中引入的一项特征,自从这项语言特征出现多年来,我相信,几乎所有的Java程序员不仅听说过,而且使用过它.关于Java泛型的教程,免费的,不免费的,有很多.我遇到的最好的教材有: The Java Tutorial Java Generics and Collections ,