第 1章 为Hive打好基础:Hadoop 1 1.1 一只小象出生了 2 1.2 Hadoop的结构 3 1.3 数据冗余 6 1.3.1 传统的高可用性 6 1.3.2 Hadoop的高可用性 9 1.4 MapReduce处理 12 1.4.1 MapReduce 16 1.4.2 YARN和现代数据架构 17 1.4.3 Hadoop 和开源社区 19 1.4.4 我们身在何处 22 第 2 章 Hive 简介 24 2.1 Hadoop 发行版 25 2.2 集群架构 27 2.3 Hive 的安装 30 2.4 探寻你的方式 32 2.5 Hive CLI 35 第3 章 Hive架构 37 3.1 Hive组件 37 3.2 HCatalog 38 3.3 HiveServer2 40 3.4 客户端工具 42 3.5 执行引擎:Tez 46 第4 章 Hive表DDL 48 4.1 schema-on-read 48 4.2 Hive数据模型 49 4.2.1 模式/数据库 49 4.2.2 为什么使用多个模式/数据库 49 4.2.3 创建数据库 49 4.2.4 更改数据库 50 4.2.5 删除数据库 50 4.2.6 列出数据库 51 4.3 Hive中的数据类型 51 4.3.1 基本数据类型 51 4.3.2 选择数据类型 51 4.3.3 复杂数据类型 52 4.4 表 53 4.4.1 创建表 53 4.4.2 列出表 54 4.4.3 内部表/外部表 54 4.4.4 内部表/受控表 55 4.4.5 内部表/外部表示例 55 4.4.6 表的属性 59 4.4.7 生成已有表的CREATE TABLE命令 60 4.4.8 分区和分桶 61 4.4.9 分区注意事项 63 4.4.10 对日期列进行分区 63 4.4.11 分桶的注意事项 65 4.4.12 更改表 66 4.4.13 ORC文件格式 67 4.4.14 更改表分区 68 4.4.15 修改列 72 4.4.16 删除表/分区 72 4.4.17 保护表/分区 73 4.4.18 其他CREATE TABLE命令选项 73 第5 章 数据作语言 75 5.1 将数据装载到表中 75 5.1.1 使用存储在HDFS中的文件装载数据 75 5.1.2 使用查询装载数据 77 5.1.3 将查询到的数据写入文件系统 80 5.1.4 直接向表插入值 81 5.1.5 直接更新表中数据 83 5.1.6 在表中直接删除数据 84 5.1.7 创建结构相同的表 85 5.2 连接 86 5.2.1 使用等值连接来整合表 86 5.2.2 使用外连接 87 5.2.3 使用左半连接 89 5.2.4 用单次MapReduce实现连接 90 5.2.5 使用的表 91 5.2.6 事务处理 92 5.2.7 ACID是什么,以及为什么要用到它 92 5.2.8 Hive配置 92 第6章 将数据装载到Hive 94 6.1 装载数据之前的设计注意事项 94 6.2 将数据装载到HDFS 95 6.2.1 Ambari 文件视图 95 6.2.2 Hadoop命令行 97 6.2.3 HDFS的NFS Gateway 97 6.2.4 Sqoop 98 6.2.5 Apache NiFi 101 6.3 用Hive 访问数据 105 6.3.1 外部表 105 6.3.2 LOAD DATA语句 106 6.4 在Hive中装载增量变更数据 107 6.5 Hive流处理 107 6.6 小结 108 第7章 查询半结构化数据 109 7.1 点击流数据 111 7.1.1 摄取数据 113 7.1.2 创建模式 116 7.1.3 装载数据 116 7.1.4 查询数据 116 7.2 摄取JSON数据 119 7.2.1 使用UDF查询JSON 121 7.2.2 使用SerDe访问JSON 122 第8章 Hive分析 125 8.1 构建分析模型 125 8.1.1 使用太阳模型获取需求 125 8.1.2 将太阳模型转换为星型模式 129 8.1.3 构建数据 |