《Hadoop海量数据处理:技术详解与项目实战》介绍了Hadoop技术的相关知识,并将理论知识与实际项目相结合。全书共分为三个部分:基础篇、应用篇和总结篇。基础篇详细介绍了Hadoop、MapReduce、HDFS、Hive和Sqoop,并深入探讨了Hadoop的运维和调优;应用篇则包含了一个具有代表性的完整的基于Hadoop的商业智能系统的设计和实现;结束篇对全书进行总结,并对技术发展做了展望。《Hadoop海量数据处理:技术详解与项目实战》结构针对学习曲线进行了优化,由浅至深,从理论基础到项目实战,适合Hadoop的初学者阅读,也适合作为高等院校相关课程的教学参考书。
目录
- 基础篇:Hadoop基础
- 第1章 绪论 2
- 1.1 Hadoop和云计算 2
- 1.1.1 Hadoop的电梯演讲 2
- 1.1.2 Hadoop生态圈 3
- 1.1.3 云计算的定义 5
- 1.1.4 云计算的类型 7
- 1.1.5 Hadoop和云计算 8
- 1.2 Hadoop和大数据 9
- 1.2.1 大数据的定义 9
- 1.2.2 大数据的结构类型 11
- 1.2.3 大数据行业应用实例 12
- 1.2.4 Hadoop和大数据 13
- 1.2.5 其他大数据处理平台 15
- 1.3 数据挖掘和商业智能 16
- 1.3.1 数据挖掘的定义 16
- 1.3.2 数据仓库 18
- 1.3.3 操作数据库系统和数据仓库系统的区别 19
- 1.3.4 为什么需要分离的数据仓库 19
- 1.3.5 商业智能 20
- 1.3.6 大数据时代的商业智能 21
- 第2章 环境准备 23
- 2.1 Hadoop的发行版本选择 23
- 2.1.1 Apache Hadoop 23
- 2.1.2 CDH 23
- 2.1.3 Hadoop的版本 24
- 2.1.4 如何选择Hadoop的版本 26
- 2.2 Hadoop架构 27
- 2.2.1 Hadoop HDFS架构 27
- 2.2.2 Hadoop MapReduce架构 28
- 2.2.3 Hadoop架构 29
- 2.3 安装Hadoop 31
- 2.3.1 安装运行环境 32
- 2.3.2 修改主机名和用户名 37
- 2.3.3 配置静态IP地址 38
- 2.3.4 配置SSH无密码连接 39
- 2.3.5 安装JDK 40
- 2.3.6 配置Hadoop 41
- 2.3.7 格式化HDFS 44
- 2.3.8 启动Hadoop并验证安装 44
- 2.4 安装Hive 46
- 2.4.1 安装元数据库 46
- 2.4.2 修改Hive配置文件 47
- 2.4.3 验证安装 48
- 2.5 安装Sqoop 48
- 2.6 Eclipse Hadoop插件的安装和使用 49
- 2.6.1 安装并配置Eclipse Hadoop插件 49
- 2.6.2 Eclipse插件的使用 51
- 第3章 Hadoop的基石:HDFS 53
- 3.1 认识HDFS 53
- 3.1.1 HDFS的设计理念 55
- 3.1.2 HDFS的架构 55
- 3.1.3 HDFS容错 59
- 3.2 HDFS读取文件和写入文件 60
- 3.2.1 块的分布 60
- 3.2.2 数据读取 61
- 3.2.3 写入数据 62
- 3.2.4 数据完整性 64
- 3.3 如何访问HDFS 65
- 3.3.1 命令行接口 65
- 3.3.2 Java API 68
- 3.3.3 其他常用的接口 78
- 3.3.4 Web UI 78
- 第4章 分而治之的智慧:MapReduce 80
- 4.1 认识MapReduce 80
- 4.1.1 MapReduce的编程思想 80
- 4.1.2 MapReduce运行环境 83
- 4.1.3 MapReduce作业和任务 85
- 4.1.4 MapReduce的计算资源划分 86
- 4.1.5 MapReduce的局限性 87
- 4.2 Hello WordCount 87
- 4.2.1 WordCount的设计思路 87
- 4.2.2 编写WordCount 88
- 4.2.3 运行程序 91
- 4.2.4 还能更快吗 92
- 4.3 MapReduce的过程 93
- 4.3.1 从输入到输出 94
- 4.3.2 input 94
- 4.3.3 map及中间结果的输出 96
- 4.3.4 shuffle 98
- 4.3.5 reduce及最后结果的输出 99
- 4.3.6 sort 99
- 4.3.7 作业的进度组成 100
- 4.4 MapReduce的工作机制 101
- 4.4.1 作业提交 101
- 4.4.2 作业初始化 102
- 4.4.3 任务分配 102
- 4.4.4 任务执行 103
- 4.4.5 任务完成 103
- 4.4.6 推测执行 103
- 4.4.7 MapReduce容错 104
- 4.5 MapReduce编程 105
- 4.5.1 Writable类 105
- 4.5.2 编写Writable类 108
- 4.5.3 编写Mapper类 109
- 4.5.4 编写Reducer类 111
- 4.5.5 控制shuffle 112
- 4.5.6 控制sort 113
- 4.5.7 编写main函数 115
- 4.6 MapReduce编程实例:连接 116
- 4.6.1 设计思路 116
- 4.6.2 编写Mapper类 117
- 4.6.3 编写Reducer类 118
- 4.6.4 编写main函数 119
- 4.7 MapReduce编程实例:二次排序 120
- 4.7.1 设计思路 120
- 4.7.2 编写Mapper类 121
- 4.7.3 编写Partitioner类 121
- 4.7.4 编写SortComparator类 122
- 4.7.5 编写Reducer类 123
- 4.7.6 编写main函数 123
- 4.8 MapReduce编程实例:全排序 125
- 4.8.1 设计思路 125
- 4.8.2 编写代码 127
- 第5章 SQL on Hadoop:Hive 129
- 5.1 认识Hive 129
- 5.1.1 从MapReduce到SQL 130
- 5.1.2 Hive架构 132
- 5.1.3 Hive与关系型数据库的区别 134
- 5.1.4 Hive命令的使用 135
- 5.2 数据类型和存储格式 137
- 5.2.1 基本数据类型 137
- 5.2.2 复杂数据类型 137
- 5.2.3 存储格式 138
- 5.2.4 数据格式 139
- 5.3 HQL:数据定义 140
- 5.3.1 Hive中的数据库 140
- 5.3.2 Hive中的表 142
- 5.3.3 创建表 142
- 5.3.4 管理表 144
- 5.3.5 外部表 144
- 5.3.6 分区表 145
- 5.3.7 删除表 147
- 5.3.8 修改表 147
- 5.4 HQL:数据操作 148
- 5.4.1 装载数据 148
- 5.4.2 通过查询语句向表中插入数据 149
- 5.4.3 利用动态分区向表中插入数据 149
- 5.4.4 通过CTAS加载数据 150
- 5.4.5 导出数据 150
- 5.5 HQL:数据查询 150
- 5.5.1 SELECT…FROM语句 151
- 5.5.2 WHERE语句 152
- 5.5.3 GROUP BY和HAVING语句 153
- 5.5.4JOIN语句 153
- 5.5.5 ORDER BY和SORT BY语句 156
- 5.5.6 DISTRIBUTE BY和SORTBY语句 157
- 5.5.7 CLUSTER BY 157
- 5.5.8 分桶和抽样 157
- 5.5.9 UNION ALL 158
- 5.6 Hive函数 158
- 5.6.1 标准函数 158
- 5.6.2 聚合函数 158
- 5.6.3 表生成函数 158
- 5.7 Hive用户自定义函数 159
- 5.7.1 UDF 159
- 5.7.2 UDAF 159
- 5.7.3 UDTF 161
- 5.7.4 运行 163
- 第6章 SQL to Hadoop : Sqoop 164
- 6.1 一个Sqoop示例 164
- 6.2 导入过程 166
- 6.3 导出过程 168
- 6.4 Sqoop的使用 169
- 6.4.1 codegen 170
- 6.4.2 create-hive-table 170
- 6.4.3 eval 171
- 6.4.4 export 171
- 6.4.5 help 172
- 6.4.6 import 172
- 6.4.7 import-all-tables 173
- 6.4.8 job 174
- 6.4.9 list-databases 174
- 6.4.10 list-tables 175
- 6.4.11 merge 175
- 6.4.12 metastore 176
- 6.4.13 version 176
- 第7章 Hadoop性能调优和运维 177
- 7.1 Hadoop客户端 177
- 7.2 Hadoop性能调优 178
- 7.2.1 选择合适的硬件 178
- 7.2.2 操作系统调优 180
- 7.2.3 JVM调优 181
- 7.2.4 Hadoop参数调优 181
- 7.3 Hive性能调优 187
- 7.3.1 JOIN优化 187
- 7.3.2 Reducer的数量 187
- 7.3.3 列裁剪 187
- 7.3.4 分区裁剪 188
- 7.3.5 GROUP BY优化 188
- 7.3.6 合并小文件 189
- 7.3.7 MULTI-GROUP BY和MULTI-INSERT 189