目 录
第1章 数据仓库与Hive1
1.1 数据仓库概述1
1.1.1 数据仓库特征与重要概念1
1.1.2 数据仓库的数据存储方式2
1.2 Hive数据仓库简介5
1.3 Hive版本和MapReduce版本的WordCount比较6
1.4 Hive和Hadoop的关系7
1.5 Hive和关系数据库的异同8
1.6 Hive数据存储简介9
第2章 Hive部署与基本操作11
2.1 Linux环境的搭建11
2.1.1 VirtualBox虚拟机安装11
2.1.2 安装Linux操作系统13
2.1.3 SSH工具与使用19
2.1.4 Linux统一设置21
2.2 Hadoop伪分布式环境的搭建23
2.2.1 安装本地模式运行的Hadoop23
2.2.2 Hadoop伪分布式环境的准备25
2.2.3 Hadoop伪分布式的安装29
2.3 Hadoop完全分布式环境的搭建35
2.3.1 Hadoop完全分布式集群的搭建35
2.3.2 ZooKeeper高可靠集群的搭建40
2.3.3 Hadoop高可靠集群的搭建44
2.4 Hive的安装与配置53
2.4.1 Hive的安装与启动53
2.4.2 基本的SQL操作命令54
2.5 Hive的一些命令56
2.5.1 显示Hive的帮助56
2.5.2 显示Hive某个命令的帮助56
2.5.3 变量与属性56
2.5.4 指定SQL语句或文件57
2.5.5 显示表头58
2.6 Hive元数据库58
2.6.1 Derby58
2.6.2 MySQL60
2.7 MySQL的安装61
2.8 配置MySQL保存Hive元数据62
2.9 HiveServer2与Beeline配置65
第3章 Hive语法基础68
3.1 数据类型列表68
3.2 集合类型69
3.2.1 array测试70
3.2.2 map测试71
3.2.3 struct测试71
3.3 数据类型转换72
3.4 运算符73
3.5 Hive表存储格式74
3.6 Hive的其他操作命令75
3.7 Hive分析Tomcat日志案例76
第4章 Hive数据定义79
4.1 数据库的增删改查79
4.1.1 在默认位置创建数据库79
4.1.2 指定目录创建数据库80
4.1.3 显示当前使用的数据库81
4.1.4 删除数据库81
4.2 创建内部表81
4.3 使用关键字external创建外部表83
4.3.1 指定现有目录84
4.3.2 先创建表,再指定目录84
4.3.3 显示某个表或某个分区的信息85
4.4 创建分桶表86
4.5 分区表89
4.5.1 创建和显示分区表89
4.5.2 增加、删除和修改分区90
4.6 显示某张表的详细信息92
4.7 指定输入输出都是SequenceFile类型94
4.8 关于视图94
4.8.1 使用视图降低查询的复杂度94
4.8.2 查看视图的信息95
4.8.3 删除视图95
第5章 Hive数据操作96
5.1 向表中装载数据96
5.2 通过Insert向表中插入数据97
5.3 动态分区插入数据98
5.4 创建表并插入数据100
5.5 导出数据100
第6章 Hive查询103
6.1 SelectFrom语句103
6.2 Select基本查询104
6.3 Where语句105
6.4 Group By语句107
6.5 Join语句108
6.6 排序110
6.6.1 Order By110
6.6.2 Sort By112
6.6.3 Distribute By113
6.6.4 Cluster By114
6.7 抽样查询114
第7章 Hive函数117
7.1 查看系统内置函数117
7.2 常用内置函数117
7.3 Hive的其他函数121
7.3.1 准备数据121
7.3.2 其他函数的使用121
7.3.3 显示某个函数的帮助信息131
7.4 自定义函数132
7.4.1 Hive自定义UDF的过程132
7.4.2 Hive UDTF函数135
第8章 Hive数据压缩138
8.1 数据压缩格式138
8.2 数据压缩配置139
8.2.1 Snappy压缩方式配置139
8.2.2 MapReduce支持的压缩编码141
8.2.3 MapReduce压缩参数配置142
8.3 开启Map端和Reduce端的输出压缩142
8.4 常用Hive表存储格式比较144
8.5 存储与压缩相结合148
第9章 Hive调优151
9.1 Hadoop计算框架特性151
9.2 Hive优化的常用手段151
9.3 Hive优化要点152
9.3.1 全排序152
9.3.2 怎样做笛卡儿积156
9.3.3 怎样写exist/in子句156
9.3.4 怎样决定Reducer个数156
9.3.5 合并MapReduce操作157
9.3.6 Bucket与Sampling157
9.3.7 Partition158
9.3.8 Join158
9.3.9 数据倾斜160
9.3.10 合并小文件161
9.3.11 Group By163
第10章 基于Hive的网站流量分析项目实战164
10.1 项目需求及分析164
10.1.1 数据集及数据说明164
10.1.2 功能需求165
10.2 利用Java实现数据清洗165
10.2.1 数据上传到HDFS166
10.2.2 http.log数据清洗166
10.2.3 phone.txt数据清洗170
10.3 利用MySQL实现数据清洗173
10.3.1 http.log数据清洗173
10.3.2 phone.txt数据清洗175
10.4 数据分析的实现176
10.4.1 创建Hive库和表176
10.4.2 使用SQL进行数据分析176
第11章 旅游酒店评价大数据分析项目实战180
11.1 项目介绍180
11.2 项目需求及分析181
11.2.1 数据集及数据说明181
11.2.2 功能需求183
11.3 利用Java实现数据清洗184
11.3.1 本地Hadoop运行环境搭建184
11.3.2 数据上传到HDFS186
11.3.3 Hadoop数据清洗189
11.4 利用MySQL实现数据清洗192
10.4.1 hotelbasic.csv数据清洗192
10.4.2 hoteldata.csv数据清洗193
11.5 数据分析的实现194
11.5.1 构建Hive数据仓库表194
11.5.2 导出结果数据到MySQL197
11.6 分析结果数据可视化200
11.6.1 数据可视化开发200
11.6.2 数据可视化部署208