第1章 初识Hadoop 1
数据!数据! 1
数据存储与分析 3
与其他系统相比 4
关系型数据库管理系统 4
网格计算 6
志愿计算 8
Hadoop发展简史 9
Apache Hadoop和Hadoop生态圈 12
第2章 关于MapReduce 15
一个气象数据集 15
数据的格式 15
使用Unix工具进行数据分析 17
使用Hadoop分析数据 18
map阶段和reduce阶段 18
Java MapReduce 20
横向扩展 27
数据流 28
combiner 30
运行分布式的MapReduce作业 33
Hadoop的Streaming 33
Ruby版本 33
Python版本 36
Hadoop的Pipes 37
编译运行 38
第3章 Hadoop分布式文件系统 41
HDFS的设计 41
HDFS的概念 43
数据块 43
namenode和datanode 44
命令行接口 45
基本文件系统操作 46
Hadoop文件系统 47
接口 49
Java接口 51
从Hadoop URL中读取数据 51
通过FileSystem API读取数据 52
写入数据 55
目录 57
查询文件系统 57
删除数据 62
数据流 62
文件读取剖析 62
文件写入剖析 65
一致模型 68
通过distcp并行复制 70
保持HDFS集群的均衡 71
Hadoop存档 71
使用Hadoop存档工具 72
不足 73
第4章 Hadoop I/O 75
数据完整性 75
HDFS的数据完整性 75
LocalFileSystem 76
ChecksumFileSystem 77
压缩 77
codec 78
压缩和输入分片 83
在MapReduce中使用压缩 84
序列化 86
Writable接口 87
Writable类 89
实现定制的Writable类型 96
序列化框架 101
Avro 103
基于文件的数据结构 116
SequenceFile 116
MapFile 123
第5章 MapReduce应用开发 129
配置API 130
合并多个源文件 131
可变的扩展 132
配置开发环境 132
配置管理 132
辅助类GenericOptionsParser,Tool和ToolRunner 135
编写单元测试 138
mapper 138
reducer 140
本地运行测试数据 141
在本地作业运行器上运行作业 141
测试驱动程序 145
在集群上运行 146
打包 146
启动作业 146
MapReduce的Web界面 148
获取结果 151
作业调试 153
使用远程调试器 158
作业调优 160
分析任务 160
MapReduce的工作流 163
将问题分解成MapReduce作业 163
运行独立的作业 165
第6章 MapReduce的工作机制 167
剖析MapReduce作业运行机制 167
作业的提交 167
作业的初始化 169
任务的分配 169
任务的执行 170
进度和状态的更新 170
作业的完成 172
失败 173
任务失败 173
tasktracker失败 175
jobtracker失败 175
作业的调度 175
Fair Scheduler 176
Capacity Scheduler 177
shuffle和排序 177
map端 177
reduce端 179
配置的调优 180
任务的执行 183
推测执行 183
任务JVM重用 184
跳过坏记录 185
任务执行环境 186
第7章 MapReduce的类型与格式 189
MapReduce的类型 189
默认的MapReduce作业 192
输入格式 198
输入分片与记录 198
文本输入 209
二进制输入 213
多种输入 214
数据库输入(和输出) 215
输出格式 215
文本输出 216
二进制输出 216
多个输出 217
延迟输出 224
数据库输出 224
第8章 MapReduce的特性 225
计数器 225
内置计数器 225
用户定义的Java计数器 227
用户定义的Streaming计数器 232
排序 232
准备 232
部分排序 233
全排序 237
辅助排序 241
连接 247
map端连接 247
reduce端连接 249
边数据分布 252
利用JobConf来配置作业 252
分布式缓存 253
MapReduce库类 257
第9章 构建Hadoop集群 259
集群规范 259
网络拓扑 261
集群的构建和安装 263
安装Java 264
创建Hadoop用户 264
安装Hadoop 264
测试安装 265
SSH配置 265
Hadoop配置 266
配置管理 267
环境设置 269
Hadoop守护进程的关键属性 273
Hadoop守护进程的地址和端口 278
Hadoop的其他属性 279
创建用户帐号 280
安全性 281
Kerberos和Hadoop 282
委托令牌 284
其他安全性改进 285
利用基准测试程序测试Hadoop集群 286
Hadoop基准测试程序 287
用户的作业 289
云端的Hadoop 289
Amazon EC2上的Hadoop 290
第10章 管理Hadoop 293
HDFS 293
永久性数据结构 293
安全模式 298
日志审计 300
工具 300
监控 305
日志 305
度量 306
Java管理扩展(JMX) 309
维护 312
日常管理过程 312
委任和解除节点 313
升级 316
第11章 Pig简介 321
安装与运行Pig 322
执行类型 322
运行Pig程序 324
Grunt 324
Pig Latin编辑器 325
示例 325
生成示例 327
与数据库比较 328
Pig Latin 330
结构 330
语句 331
表达式 335
类型 336
模式 338
函数 342
用户自定义函数 343
过滤UDF 343
计算UDF 347
加载UDF 348
数据处理操作 351
加载和存储数据 351
过滤数据 352
分组与连接数据 354
对数据进行排序 359
组合和切分数据 360
Pig实战 361
并行处理 361
参数替换 362
第12章 Hive简介 365
安装Hive 366
Hive外壳环境 367
示例 368
运行Hive 369
配置Hive 369
Hive服务 371
metastore 373
和传统数据库进行比较 375
读时模式vs.写时模式 376
更新、事务和索引 376
HiveQL 377
数据类型 378
操作与函数 380
表 381
托管表和外部表 381
分区和桶 383
存储格式 387
导入数据 392
表的修改 394
表的丢弃 395
查询数据 395
排序和聚集 395
MapReduce脚本 396
连接 397
子查询 400
视图 401
用户定义函数 402
编写UDF 403
编写UDAF 405
第13章 HBase 411
HBase基础 411
背景 412
概念 412
数据模型的“旋风之旅” 412
实现 413
安装 416
测试驱动 417
客户端 419
Java 419
Avro、REST和Thrift 422
示例 423
模式 424
加载数据 425
Web查询 428
HBase和RDBMS的比较 431
成功的服务 432
HBase 433
实例:HBase在Streamy.com的使用 433
Praxis 435
版本 435
HDFS 436
用户界面 437
度量 437
模式的设计 438
计数器 438
批量加载 439
第14章 ZooKeeper 441
安装和运行ZooKeeper 442
示例 443
ZooKeeper中的组成员关系 444
创建组 444
加入组 447
列出组成员 448
删除组 450
ZooKeeper服务 451
数据模型 451
操作 453
实现 457
一致性 458
会话 460
状态 462
使用ZooKeeper来构建应用 463
配置服务 463
可复原的ZooKeeper应用 466
锁服务 470
更多分布式数据结构和协议 472
生产环境中的ZooKeeper 473
可恢复性和性能 473
配置 474
第15章 开源工具Sqoop 477
获取Sqoop 477
一个导入的例子 479
生成代码 482
其他序列化系统 482
深入了解数据库导入 483
导入控制 485
导入和一致性 485
直接模式导入 485
使用导入的数据 486
导入的数据与Hive 487
导入大对象 489
执行导出 491
深入了解导出 493
导出与事务 494
导出和SequenceFile 494
第16章 实例分析 497
Hadoop在Last.fm的应用 497
Last.fm:社会音乐史上的革命 497
Hadoop在Last.fm中的应用 497
用Hadoop产生图表 498
Track Statistics程序 499
总结 506
Hadoop和Hive在Facebook中的应用 506
概要介绍 506
Hadoop在Facebook的使用 506
假想的使用情况 509
Hive 512
存在的问题与未来工作计划 516
Nutch搜索引擎 517
背景介绍 517
数据结构 518
Nutch系统利用Hadoop进行数据处理的精选实例 521
总结 530
Rackspace的日志处理 531
简史 532
选择Hadoop 532
收集和存储 532
日志的MapReduce模型 533
关于Cascading 539
字段、元组和管道 540
操作 542
Tap类、Scheme对象和Flow对象 544
Cascading实战 545
灵活性 548
Hadoop和Cascading在ShareThis的应用 549
总结 552
Apache Hadoop的TB字节数量级排序 553
使用Pig和Wukong来探索10亿数量级边的网络图 556
测量社区 558
每个人都在和我说话:Twitter回复关系图 558
度(degree) 560
对称链接 561
社区提取 562
附录A 安装Apache Hadoop 565
附录B Cloudera's Distribution for Hadoop 571
附录C 准备NCDC天气数据 573
索引 577