深入云计算:Hadoop应用开发实战详解.pdf

深入云计算:Hadoop应用开发实战详解.pdf
 

书籍描述

内容简介
本书由浅入深,全面、系统地介绍了Hadoop这一高性能处理大量数据集的理想工具。本书内容主要包括HDFS、MapReduce、Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等与Hadoop相关的子项目,各个知识点都配有精心设计的大量经典的小案例,实战性和可操作性强。
本书旨在帮助云计算初学者迅速掌握Hadoop系统,提升读者在云计算实践中的应用和开发能力。同时本书极强的系统性和大量翔实的案例对于有一定基础的中高级用户有非常好的参考价值。

编辑推荐
精准的内容梯度安排:遵循读者学习习惯和Hadoop技术应用实践,合理安排图书内容;精挑细选经典实例,嵌入完善的代码注释。
精炼的实用经验阐述:作者多年开发经验融入其中,读者在全面掌握Hadoop编程和开发技术的同时更能获得快速分析和解决实际问题的能力。
【本书的特点】
1.结构合理,内容系统全面;叙述翔实,例程丰富:在内容的安排上,根据读者的学习习惯和内容的梯度合理安排,更加适合读者学习。同时,本书有详细的例程,每个例子都经过精挑细选,有很强的针对性。而且代码非常简洁和高效,便于读者学习和调试,读者也可以直接使用这些代码来解决自己的问题。
2.基础知识和实践并重:本书不仅注重基础知识,而且非常注重实践,让读者快速上手,迅速掌握Hadoop知识。
3.结合实际,实战项目贯穿其中:本书写作时特意给出了大量的实战项目,这些项目的灵活使用,将会让读者事半功倍。同时,为了便于读者高效、直观地学习本书内容,对每章的内容的学习都特意编写了思考与总结。

目录
第1篇 Hadoop技术篇
第 1章 初识Hadoop
1.1 Hadoop简介 2
1.1.1 Hadoop的起源 2
1.1.2 什么是Hadoop 3
1.1.3 Hadoop的核心技术是Google核心技术的开源实现 4
1.1.4 Hadoop的功能与优点 5
1.1.5 Hadoop的应用现状和发展趋势 6
1.2 Hadoop的体系结构 11
1.2.1 HDFS的体系结构 12
1.2.2 MapReduce的体系结构 19
1.3 Hadoop与分布式开发 21
1.4 Hadoop的数据管理 23
1.4.1 HDFS的数据管理 23
1.4.2 HBase的数据管理 23
1.4.3 Hive的数据管理 24
1.5 思考与总结 25
第 2章 Hadoop的安装和配置
2.1 在Windows下安装与配置Hadoop 27
2.1.1 JDK的安装 27
2.1.2 Cygwin的安装 30
2.1.3 Hadoop的安装 36
2.2 在Linux下安装与配置Hadoop 38
2.2.1 Ubuntu的安装 38
2.2.2 JDK的安装 41
2.2.3 Hadoop的安装 41
2.3 Hadoop的执行实例 43
2.3.1 运行Hadoop 44
2.3.2 运行wordcount.java程序 44
2.4 Hadoop Eclipse简介和使用 45
2.4.1 Eclipse插件介绍 45
2.4.2 Eclipse插件开发配置 45
2.4.3 在Eclipse下运行WordCount程序 49
2.5 Hadoop的集群和优化 56
2.5.1 Hadoop的性能优化 57
2.5.2 Hadoop配置机架感知信息 58
2.6 思考与总结 59
第 3章 HDFS海量存储
3.1 开源的GFS——HDFS 60
3.1.1 HDFS简介 60
3.1.2 HDFS的体系结构 63
3.1.3 HDFS的保障可靠性措施 64
3.2 HDFS的常用操作 67
3.2.1 HDFS下的文件操作 67
3.2.2 管理与更新 74
3.2.3 HDFS API详解 76
3.2.4 HDFS的读/写数据流 88
3.3 用HDFS存储海量的视频数据 91
3.3.1 场景分析 91
3.3.2 设计实现 91
3.4 思考与总结 93
第 4章 初识MapReduce
4.1 MapReduce简介 94
4.1.1 MapReduce要解决什么问题 94
4.1.2 MapReduce的理论基础 95
4.1.3 MapReduce的编程模式 97
4.2 MapReduce的集群行为 98
4.3 Map/Reduce框架 100
4.4 样例分析:单词计数 100
4.4.1 WordCount实例的运行过程 100
4.4.2 WordCount的源码分析和程序处理过程 103
4.4.3 MapReduce常用类及其接口 106
4.5 实例:倒排索引 109
4.5.1 倒排索引的分析和设计 109
4.5.2 倒排索引完整源码 112
4.5.3 运行代码结果 116
4.6 MapReduce 在日志分析中数据去重案例 117
4.6.1 什么是数据去重 117
4.6.2 设计思路 118
4.6.3 程序代码 118
4.6.4 代码运行结果 120
4.7 数据排序实例 122
4.7.1 实例描述 122
4.7.2 设计思路 123
4.7.3 程序代码 123
4.8 思考与总结 126
第 5章 分布式开源数据库HBase
5.1 HBase简介 127
5.1.1 HBase逻辑视图 127
5.1.2 HBase物理存储 129
5.1.3 子表Region服务器 130
5.1.4 Hmaster主服务器 132
5.1.5 元数据表 132
5.2 HBase的安装配置 133
5.2.1 HBase单机模式 133
5.2.2 HBase伪分布模式 135
5.2.3 HBase完全分布模式 136
5.3 学生成绩表实例 140
5.3.1 Shell的基本操作 141
5.3.2 代码实现 143
5.3.3 关于中文的处理 145
5.3.4 常用HBase的 Shell操作 149
5.4 思考与总结 153
第 6章 MapReduce进阶
6.1 API的配置 154
6.1.1 一个简单的配置文件 155
6.1.2 合并多个源文件 156
6.1.3 可变的扩展 157
6.2 配置开发环境 157
6.2.1 配置文件设置 157
6.2.2 设置用户标识 159
6.3 复合键值对的使用 159
6.3.1 小的键值对如何合并成大的键值对 159
6.3.2 巧用复合键让系统完成排序 160
6.4 用户定制数据类型 164
6.4.1 内置数据类型 164
6.4.2 用户自定义数据类型 164
6.5 用户定制输入/输出格式 166
6.5.1 内置数据的输入格式 167
6.5.2 用户定制数据输入格式与RecordReader 168
6.5.3 Hadoop内置的数据输出格式 172
6.5.4 Hadoop内置的数据输出格式与RecordWriter 172
6.6 用户定制Partitioner和Combiner 173
6.7 组合式的MapReduce作业 176
6.7.1 MapReduce作业运行机制 176
6.7.2 组合式MapReduce计算作业 178
6.8 DataJoin连接多数据源 183
6.9 思考与总结 187
第 7章 Hive数据仓库
7.1 Hive简介 188
7.2 Hive安装与配置 189
7.3 Hive的服务 191
7.3.1 Hive shell 191
7.3.2 JDBC/ODBC 192
7.3.3 Thrift服务 192
7.3.4 Web接口 193
7.3.5 元数据服务 193
7.4 HiveQL查询语言 193
7.5 Hive实例 202
7.5.1 UDF 编程实例 202
7.5.2 UDAF 编程实例 204
7.5.3 Hive的日志数据统计实战 206
7.6 思考与总结 211
第 8章 Pig开发应用
8.1 Pig简介 212
8.2 Pig的安装与配置 213
8.3 Pig的使用 215
8.3.1 Pig的MapReduce模式 215
8.3.2 Pig的运行方式 216
8.4 通过Grunt学习Pig Latin 219
8.4.1 Pig的数据模型 220
8.4.2 运算符 221
8.4.3 常用操作 222
8.4.4 各种SQL在Pig中的实现 229
8.4.5 Pig Latin实现 233
8.5 Pig使用的案例 235
8.6 思考与总结 235
第 9章 Chukwa数据收集系统
9.1 Chukwa简介 236
9.1.1 Chukwa是什么 236
9.1.2 Chukwa主要解决什么问题 240
9.2 Chukwa的安装配置 240
9.2.1 Chukwa的安装 240
9.2.2 Chukwa的配置 242
9.2.3 Chukwa的启动 245
9.3 Chukwa的基本命令 248
9.3.1 Chukwa端的命令 248
9.3.2 Agent 端的命令 249
9.4 Chukwa在数据收集处理方面的运用 251
9.4.1 数据生成 251
9.4.2 数据收集 251
9.4.3 数据处理 252
9.4.4 数据析取 252
9.4.5 数据稀释 253
9.4.6 数据显示 253
9.5 思考与总结 253
第 10章 ZooKeeper开发应用
10.1 ZooKeeper简介 254
10.1.1 ZooKeeper的设计目标 254
10.1.2 ZooKeeper主要解决什么问题 256
10.1.3 ZooKeeper的基本概念和工作原理 257
10.2 ZooKeeper的安装配置 260
10.2.1 单机模式 261
10.2.2 启动并测试ZooKeeper 262
10.2.3 集群模式 264
10.3 ZooKeeper提供的接口 267
10.4 ZooKeeper事件 270
10.5 ZooKeeper实例 271
10.5.1 实例1:一个简单的应用——分布式互斥锁 271
10.5.2 实例2:进程调度系统 276
10.6 思考与总结 283
第2篇 Hadoop管理和容错篇
第 11章 Hadoop管理
11.1 Hadoop权限管理 286
11.2 HDFS文件系统管理 292
11.3 Hadoop维护与管理 298
11.4 Hadoop常见问题及解决办法 300
11.5 思考与总结 310
第 12章 Hadoop容错
12.1 Hadoop的可靠性 311
12.1.1 HDFS中的NameNode单点失效解决方案 311
12.1.2 HDFS数据块副本机制 313
12.1.3 HDFS心跳机制 319
12.1.4 HDFS负载均衡 320
12.1.5 MapReduce容错 321
12.2 Hadoop的SecondayNameNode机制 322
12.2.1 磁盘镜像与日志文件 322
12.2.2 SecondaryNameNode更新镜像的流程 323
12.3 Avatar机制 325
12.3.1 Avatar机制简介 325
12.3.2 Avatars部署实战 326
12.4 Hadoop_HBase容错 331
12.5 思考与总结 333
第3篇 Hadoop实战篇
第 13章 综合实战1:Hadoop中的数据库访问
13.1 DBInputFormat类访问数据库 336
13.1.1 在DBInputFormat类中包含的内置类 336
13.1.2 使用DBInputFormat读取数据库表中的记录 337
13.1.3 使用示例 337
13.2 使用DBOutputFormat向数据库中写记录 340
13.3 思考与总结 343
第 14章 综合实战2:一个简单的分布式的Grep
14.1 分析与设计 344
14.2 实现代码 345
14.3 运行程序 346
14.4 思考与总结 346
第 15章 综合实战3:打造一个搜索引擎
15.1 搜索引擎工作原理 348
15.2 网页搜集与信息提取 350
15.2.1 设计的主要思想 350
15.2.2 系统设计目标 351
15.3 网页信息的提取与存储 352
15.4 MapReduce的预处理 353
15.4.1 第一步:源数据过滤 353
15.4.2 第二步:生成倒排文件 355
15.4.3 第三步:建立二级索引 362
15.5 建立Web信息查询服务 365
15.6 思考与总结 366
第 16章 综合实战4:移动通信信令监测与查询
16.1 分析与设计 367
16.1.1 CDR数据文件的检测与索引创建任务调度 369
16.1.2 从HDFS读取数据并创建索引 370
16.1.3 查询CDR信息 371
16.2 代码实现 371
16.2.1 CDR文件检测和索引创建任务程序 371
16.2.2 读取CDR数据和索引创建处理 375
16.2.3 CDR查询 383
16.3 思考与总结 384
附录A Hadoop命令大全 385
附录B HDFS命令大全 392

文摘
为什么需要云计算?可以通过一个简单的案例说明:一台计算机处理一批数据需要30小时,比如处理地震预测、天气预报的数据,这样的计算速度实在是太慢了。提升单台计算机的速度是过去的办法,但CPU的速度不可能再大幅度提升了。人们一直希望通过增加计算机数量并行运算提升运算和数据处理速度,例如,希望通过同时在300台计算机上处理数据,让处理这批数据的速度变成10分钟,并且看起来是在一台计算机上处理的。当然,这是一种理想状态。实际上,人们已经开始设计这样的分布式系统,通过把众多的计算机通过集群方式并行同时运行,以此来提高处理的速度。这就是云计算的源起。
在开源云计算系统中,Hadoop 稳居第一。事实上,Hadoop 非常受欢迎,全球已经安装了数以万计的 Hadoop 系统。在诸多的云计算技术中,Hadoop具有无与伦比的优势,越来越多的公司和组织选择使用Hadoop开源项目作为其解决方案。
Hadoop是Apache基金会的开源项目,为开发者提供了一个分布式系统的基础架构,用户可以在不了解分布式系统的底层细节的情况下开发分布式的应用,充分利用集群的强大功能,实现高速运算和存储。Hadoop项目中包括一个分布式的文件系统HDFS,一个分布式的并行编程框架MapReduce,以及包括Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa在内的诸多子项目。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多