第1章 云计算背景与Hadoop 1
1.1 云计算起源与发展历程 1
1.2 云计算定义与体系 2
1.3 云计算关键技术 4
1.3.1 虚拟化技术 4
1.3.2 分布式计算和并行计算 4
1.3.3 分布式存储 5
1.3.4 分布式海量数据管理 5
1.4 Hadoop与云计算 6
1.5 谁在使用Hadoop 6
1.5.1 外国Hadoop应用 6
1.5.2 国内Hadoop应用 8
第2章 Hadoop概述 10
2.1 Hadoop起源及简介 10
2.2 Hadoop发展历程与现状 11
2.3 Hadoop的总体结构与模块简介 11
2.4 小结 15
第3章 Hadoop伪分布式文件系统 16
3.1 引言 16
3.2 HDFS构架设计 17
3.2.1 前提和设计目标 17
3.2.2 NameNode和DataNode 18
3.2.3 文件系统的命名空间 18
3.2.4 数据复制 19
3.2.5 副本存放 19
3.2.6 副本选择 20
3.2.7 安全模式 20
3.2.8 文件系统元数据的持久化 20
3.2.9 通信协议 21
3.2.10 健壮性 21
3.2.11 数据组织 22
3.2.12 可访问性 23
3.2.13 空间的回收 24
3.3 Hadoop分布式文件系统的使用 24
3.3.1 Web接口 25
3.3.2 shell命令 25
3.3.3 dfsadmin命令 25
3.3.4 Secondary NameNode 26
3.3.5 Rebalancer 27
3.3.6 机架感知 27
3.3.7 安全模式 27
3.3.8 fsck 28
3.3.9 升级和回滚 28
3.3.10 文件权限和安全性 28
3.3.11 可扩展性 28
3.4 HDFS权限管理 29
3.4.1 用户身份 29
3.4.2 理解系统的实现 29
3.4.3 超级用户 30
3.4.4 Web服务器 30
3.4.5 在线升级 30
3.4.6 配置参数 30
3.5 HDFS配额管理 31
3.6 Hadoop文件归档 31
3.7 HDFS的缺点 32
3.8 小结 33
第4章 Hadoop FS shell 34
4.1 引言 34
4.2 FS shell 34
4.3 小结 40
第5章 Hadoop Map/Reduce 41
5.1 Map/Reduce简介 41
5.2 Map/Reduce编程思想 42
5.3 Map/Reduce引例 43
5.4 Map/Reduce核心功能 50
5.4.1 Mapper 50
5.4.2 Reducer 51
5.4.3 Partitioner 52
5.4.4 Reporter 52
5.4.5 OutputCollector 53
5.4.6 作业配置 53
5.4.7 任务的执行和环境 53
5.4.8 作业的提交与监控 55
5.4.9 作业的输入 56
5.4.10 作业的输出 58
5.4.11 其他有用的特性 60
5.5 小结 63
第6章 Hadoop流与管道机制 65
6.1 概述 65
6.2 Hadoop流 65
6.2.1 Hadoop流工作机制 65
6.2.2 Hadoop流相关选项 67
6.2.3 流应用举例 70
6.3 Hadoop管道机制 71
6.4 小结 73
第7章 Hadoop输入和输出 74
7.1 Map/Reduce输入与输出 74
7.2 HDFS的输入和输出 75
7.2.1 从HDFS读取文件 75
7.2.2 给HDFS写入文件 76
7.3 小结 77
第8章 Hadoop常用命令 78
8.1 Hadoop命令概述 78
8.2 用户命令 79
8.2.1 archive 79
8.2.2 distcp 80
8.2.3 fs 83
8.2.4 fsck 83
8.2.5 jar 84
8.2.6 job 84
8.2.7 pipes 85
8.2.8 version 85
8.2.9 CLASSNAME 85
8.3 Hadoop管理员命令 85
8.3.1 balancer 86
8.3.2 daemonlog 86
8.3.3 datanode 86
8.3.4 dfsadmin 87
8.3.5 jobtracker 88
8.3.6 namenode 88
8.3.7 secondarynamenode 88
8.3.8 tasktracker 89
8.4 小结 89
第9章 Hadoop部署与开发 90
9.1 概述 90
9.2 Hadoop运行环境 90
9.2.1 Hadoop硬件配置 90
9.2.2 Hadoop集群大小 91
9.2.3 虚拟化基础承载Hadoop 91
9.2.4 软件需求和系统需求 92
9.3 Hadoop单机部署 92
9.3.1 安装所需软件 92
9.3.2 本地模式 93
9.3.3 Hadoop伪分布式模式 93
9.4 Hadoop的完全分布式部署 95
9.4.1 相关配置 96
9.4.2 Hadoop启动与停止 101
9.5 Hadoop部署示例 102
9.5.1 配置文件 102
9.5.2 启动Hadoop与简单测试 105
9.6 Hadoop应用程序开发 106
9.6.1 安装Hadoop并启动 107
9.6.2 安装eclipse环境 107
9.6.3 开发实例 109
9.7 小结 117
第10章 Zookeeper 118
10.1 概述 118
10.2 Zookeeper的安装 119
10.2.1 软件及环境要求 119
10.2.2 独立模式 119
10.2.3 复制模式 120
10.3 Zookeeper的设计目标 121
10.4 数据模型和层次名称空间 122
10.5 保证 123
10.6 简单的API接口 123
10.7 Zookeeper实现机制 123
10.8 性能 124
10.8.1 读写性能测试 125
10.8.2 可靠性测试 125
10.9 小结 126
第11章 HBase 127
11.1 HBase简介 127
11.2 HBase中的数据模型 127
11.3 HBase的体系结构 129
11.4 安装部署HBase 131
11.4.1 单机安装 131
11.4.2 分布式安装部署 132
11.5 HBase用户接口 135
11.5.1 shell命令行接口 135
11.5.2 HBase常用Java接口 137
11.6 HBase与RDBMS的简单比较 138
11.7 小结 140
第12章 Pig 141
12.1 Pig简介 141
12.2 Pig安装和运行 142
12.2.1 Pig的安装 142
12.2.2 Pig的运行模式 143
12.2.3 运行Pig 143
12.3 Pig Latin脚本语言 146
12.3.1 数据类型 146
12.3.2 Pig Latin语句 148
12.3.3 Pig Latin编程示例 149
12.4 利用Pig并行处理海量数据 153
12.4.1 Pig内置函数 153
12.4.2 用户自定义函数UDF 154
12.5 小结 155
第13章 Hive 156
13.1 Hive简介 156
13.2 Hive的安装和运行测试 157
13.3 HQL语言 161
13.3.1 数据类型和对象 161
13.3.2 HQL查询语言 162
13.4 Hive应用开发 169
13.4.1 JDBC 170
13.4.2 利用分隔符导入文件 170
13.4.3 Deserializer的使用 171
第14章 CloudBase 173
14.1 数据仓库与CloudBase简介 173
14.2 CloudBase系统工作机制简介 174
14.3 CloudBase安装部署 175
14.3.1 部署构架 175
14.3.2 安装CloudBase 175
14.3.3 安装CloudBase客户端 176
14.4 CloudBase中的ANSI SQL 177
14.4.1 数据类型和对象 177
14.4.2 ANSI SQL语言简介 178
14.4.3 CloudBase相关表操作 178
14.5 基于CloudBase的应用开发 185
14.5.1 使用JDBC 185
14.5.2 利用分隔符导入文件 185
14.5.3 UDT的使用 186
14.5.4 DataBase Link的使用 187
14.6 CloudBase、Hive和HBase的比较 187
14.7 小结 188
第15章 Mahout 189
15.1 Mahout简介 189
15.2 Mahout的安装和运行 189
15.3 相关算法简介 191
15.3.1 分类算法简介 191
15.3.2 聚类算法简介 193
15.3.3 模式挖掘 196
15.3.4 协同过滤 196
15.4 并行分类算法分析与实例 197
15.4.1 并行分类算法分析 197
15.4.2 分类示例 203
15.5 并行聚类算法与实例 208
15.5.1 并行聚类算法分析 208
15.5.2 聚类示例 211
15.6 基于Mahout的应用 213
15.6.1 应用构架 213
15.6.2 应用实例 214
参考文献 217