第1章 概述 1
1.1 什么是大数据 1
1.1.1 大数据系统的定位 1
1.1.2 与传统分布式系统的区别 1
1.1.3 成功的大数据系统项目 2
1.2 Hadoop的原理 2
1.2.1 存储与资源调度 2
1.2.2 计算框架原理 2
1.3 总结 5
第2章 HDFS原理详解 6
2.1 主从节点架构 6
2.2 数据冗余 7
2.3 fsimage与edits 8
2.4 SecondaryNameNode 9
2.5 HA 10
2.6 自动故障转移 11
2.7 ZooKeeper 13
2.8 防脑裂 14
2.9 联邦 15
2.10 总结 16
第3章 Yarn原理详解 17
3.1 概述 17
3.2 作业调度策略 19
3.2.1 容量调度器 19
3.2.2 公平调度器 21
3.2.3 队列其他事项 22
3.3 Yarn与MapReduce程序 22
第4章 配置Hadoop系统 24
4.1 Docker简介 24
4.2 安装Docker 25
4.2.1 Windows、macOS做宿主系统 25
4.2.2 Linux做宿主系统 26
4.2.3 测试Docker容器 30
4.3 创建Hadoop容器 32
4.4 配置独立模式Hadoop 34
4.5 配置伪分布Hadoop 37
4.5.1 安装并配置SSH 37
4.5.2 安装其他命令行程序 38
4.5.3 编辑core-site.xml 38
4.5.4 编辑hdfs-site.xml 39
4.5.5 编辑mapred-site.xml 40
4.5.6 编辑yarn-site.xml 40
4.5.7 编辑hadoop-env.sh 41
4.5.8 运行伪分布式Hadoop 41
4.5.9 状态监控 43
4.6 基于Dockerfile的伪分布Hadoop 45
4.6.1 Dockerfile 45
4.6.2 构建Hadoop镜像 46
4.6.3 运行容器 47
4.6.4 配置Hadoop 48
4.7 配置全分布式Hadoop 49
4.7.1 组件部署架构 49
4.7.2 配置思路 50
4.7.3 修改配置文件 50
4.7.4 创建集群 51
4.7.5 启动集群 53
4.8 Windows下运行Hadoop 55
4.8.1 配置独立模式Hadoop 55
4.8.2 配置伪分布式Hadoop 56
4.9 Yarn调度配置 60
4.9.1 容量调度器 61
4.9.2 公平调度器 63
第5章 配置高可用Hadoop 66
5.1 HDFS高可用 66
5.1.1 组件部署架构 66
5.1.2 修改配置文件 67
5.1.3 创建镜像 70
5.1.4 创建HA HDFS集群 72
5.1.5 运行HA HDFS 73
5.1.6 测试HA HDFS 74
5.1.7 NameNode自动故障转移 75
5.2 Yarn高可用 78
第6章 HDFS编程 81
6.1 安装开发工具 81
6.1.1 安装Git 81
6.1.2 安装Maven 83
6.1.3 安装VSCode 84
6.1.4 安装VSCode插件 85
6.2 Native编程 87
6.2.1 创建HDFS客户端项目 87
6.2.2 示例1:查看目录状态 91
6.2.3 添加依赖库 92
6.2.4 运行程序 96
6.2.5 示例2:创建目录和文件 97
6.2.6 示例3:读取文件内容 99
6.2.7 示例4:上传和下载文件 100
6.3 WebHDFS与HttpFS 101
6.3.1 WebHDFS 101
6.3.2 VSCode插件RestClient 103
6.3.3 HttpFS 104
第7章 MapReduce编程 106
7.1 准备测试环境与创建项目 106
7.2 添加MapReduce逻辑 107
7.2.1 添加Map类 108
7.2.2 添加Reduce类 109
7.3 创建Job 110
7.4 添加依赖库 111
7.5 运行程序 112
7.6 查看运行日志 114
7.7 在Hadoop中运行程序 116
7.8 Combiner 117
7.9 Mapper与Reducer数量 119
7.10 实现SQL语句 120
7.10.1 简单查询 120
7.10.2 排序 127
7.10.3 复杂排序 129
7.10.4 分区 132
7.10.5 组合 134
7.10.6 总结 135
7.11 实现SQL JOIN 136
7.11.1 INNER JOIN 136
7.11.2 MapReduce实现JOIN 137
7.11.3 Mapper JOIN 142
7.11.4 DistributedCache 146
7.12 Counter 148
7.13 其他组件 149
7.14 升级版的WordCount 150
7.15 分布式k-means 154
第8章 Hive 166
8.1 Hive的设计架构 166
8.2 运行架构 167
8.3 安装配置Hive3 168
8.4 运行Hive3 173
8.5 其他运行方式 175
8.6 Hive数据管理 176
8.7 Hive查询优化 190
8.8 索引 192
8.9 HCatalog 192
8.10 Hive编程 194
8.11 总结 208
第9章 HBase 209
9.1 什么是HBase 209
9.2 HBase架构 210
9.3 安装与配置 211
9.4 基本数据操作 218
9.5 HBase设计原理 224
9.6 HBase应用编程 232
9.7 总结 245
后记 246