《Hadoop权威指南 大数据的存储与分析 第4版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:Tom White著;王海,华东,刘喻,吕粤海译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302465133
  • 页数:708 页
图书介绍:本书主题包括:用HDFS存储大数据集,用MapReduce做分布式计算,使用Hadoop的数据和I/O构件来做压缩、数据集成、序列化和持久化,发现常见的陷阱和实用性MapReduce程序设计的高级特性,设计、构建和管理专用Hadoop数据中心或者在云端运行Hadoop,使用Sqoop把关系型数据库中的数据加载到HDFS,用Hadoop的数据仓储系统Hive来分析大数据,将HBase充分用于结构化和半结构化数据,将ZooKeeper用于构建分布式系统。

第Ⅰ部分Hadoop基础知识 3

第1章 初识Hadoop 3

1.1数据!数据! 3

1.2数据的存储与分析 5

1.3查询所有数据 6

1.4不仅仅是批处理 7

1.5相较于其他系统的优势 8

1.5.1关系型数据库管理系统 8

1.5.2网格计算 10

1.5.3志愿计算 11

1.6 Apache Hadoop发展简史 12

1.7本书包含的内容 16

第2章 关于MapReduce 19

2.1气象数据集 19

2.2使用Unix工具来分析数据 21

2.3使用Hadoop来分析数据 22

2.3.1 map和reduce 23

2.3.2 Java MapReduce 24

2.4横向扩展 31

2.4.1数据流 31

2.4.2 combiner函数 35

2.4.3运行分布式的MapReduce作业 37

2.5 Hadoop Streaming 37

2.5.1 Ruby版本 38

2.5.2 Python版本 40

第3章Hadoop分布式文件系统 42

3.1 HDFS的设计 42

3.2 HDFS的概念 44

3.2.1数据块 44

3.2.2 namenode和datanode 45

3.2.3块缓存 46

3.2.4联邦HDFS 47

3.2.5 HDFS的高可用性 47

3.3命令行接口 50

3.4 Hadoop文件系统 52

3.5 Java接口 56

3.5.1从Hadoop URL读取数据 56

3.5.2通过FileSystem API读取数据 58

3.5.3写入数据 61

3.5.4目录 63

3.5.5查询文件系统 63

3.5.6删除数据 68

3.6数据流 68

3.6.1剖析文件读取 68

3.6.2剖析文件写入 71

3.6.3一致模型 74

3.7通过distcp并行复制 76

第4章 关于YARN 78

4.1剖析YARN应用运行机制 79

4.1.1资源请求 80

4.1.2应用生命期 81

4.1.3构建YARN应用 81

4.2 YARN与MapReduce 1相比 82

4.3 YARN中的调度 85

4.3.1调度选项 85

4.3.2容量调度器配置 87

4.3.3公平调度器配置 89

4.3.5延迟调度 93

4.3.5主导资源公平性 94

4.4延伸阅读 95

第5章Hadoop的I/O操作 96

5.1数据完整性 96

5.1.1 HDFS的数据完整性 97

5.1.2 LocalFileSystem 98

5.1.3 ChecksumFileSystem 98

5.2压缩 99

5.2.1 codec 100

5.2.2压缩和输入分片 105

5.2.3在MapReduce中使用压缩 106

5.3序列化 109

5.3.1 Writable接口 110

5.3.2 Writable类 112

5.3.3实现定制的Writable集合 121

5.3.4序列化框架 125

5.4基于文件的数据结构 127

5.4.1关于SequenceFile 127

5.4.2关于MapFile 135

5.4.3其他文件格式和面向列的格式 136

第Ⅱ部分 关于MapReduce 141

第6章MapReduce应用开发 141

6.1用于配置的API 142

6.1.1资源合并 143

6.1.2变量扩展 144

6.2配置开发环境 144

6.2.1管理配置 146

6.2.2辅助类GenericOptionsParser,Tool和ToolRunner 149

6.3用MRUnit来写单元测试 152

6.3.1关于Mapper 152

6.3.2关于Reducer 156

6.4本地运行测试数据 156

6.4.1在本地作业运行器上运行作业 156

6.4.2测试驱动程序 158

6.5在集群上运行 160

6.5.1打包作业 160

6.5.2启动作业 162

6.5.3 MapReduce的Web界面 165

6.5.4获取结果 167

6.5.5作业调试 168

6.5.6 Hadoop日志 171

6.5.7远程调试 173

6.6作业调优 174

6.7 MapReduce的工作流 176

6.7.1将问题分解成MapReduce作业 177

6.7.2关于JobControl 178

6.7.3关于Apache Oozie 179

第7章MapReduce的工作机制 184

7.1剖析MapReduce作业运行机制 184

7.1.1作业的提交 185

7.1.2作业的初始化 186

7.1.3任务的分配 187

7.1.4任务的执行 188

7.1.5进度和状态的更新 189

7.1.6作业的完成 191

7.2失败 191

7.2.1任务运行失败 191

7.2.2 application master运行失败 193

7.2.3节点管理器运行失败 193

7.2.4资源管理器运行失败 194

7.3 shuffle和排序 195

7.3.1 map端 195

7.3.2 reduce端 197

7.3.3配置调优 199

7.4任务的执行 201

7.4.1任务执行环境 201

7.4.2推测执行 202

7.4.3关于 OutputCommitters 204

第8章MapReduce的类型与格式 207

8.1 MapReduce的类型 207

8.1.1默认的MapReduce作业 212

8.1.2默认的Streaming作业 216

8.2输入格式 218

8.2.1输入分片与记录 218

8.2.2文本输入 229

8.2.3二进制输入 233

8.2.4多个输入 234

8.2.5数据库输入(和输出) 235

8.3输出格式 236

8.3.1文本输出 236

8.3.2二进制输出 237

8.3.3多个输出 237

8.3.4延迟输出 242

8.3.5数据库输出 242

第9章MapReduce的特性 243

9.1计数器 243

9.1.1内置计数器 243

9.1.2用户定义的Java计数器 248

9.1.3用户定义的Streaming计数器 251

9.2排序 252

9.2.1准备 252

9.2.2部分排序 253

9.2.3全排序 255

9.2.4辅助排序 259

9.3连接 264

9.3.1 map端连接 266

9.3.2 reduce端连接 266

9.4边数据分布 270

9.4.1利用JobConf来配置作业 270

9.4.2分布式缓存 270

9.5 MapReduce库类 276

第Ⅲ部分Hadoop的操作 279

第10章 构建Hadoop集群 279

10.1集群规范 280

10.1.1集群规模 281

10.1.2网络拓扑 282

10.2集群的构建和安装 284

10.2.1安装Java 284

10.2.2创建Unix用户账号 284

10.2.3安装Hadoop 284

10.2.4 SSH配置 285

10.2.5配置Hadoop 286

10.2.6格式化HDFS文件系统 286

10.2.7启动和停止守护进程 286

10.2.8创建用户目录 288

10.3 Hadoop配置 288

10.3.1配置管理 289

10.3.2环境设置 290

10.3.3 Hadoop守护进程的关键属性 293

10.3.4 Hadoop守护进程的地址和端口 300

10.3.5 Hadoop的其他属性 303

10.4安全性 305

10.4.1 Kerberos和Hadoop 306

10.4.2委托令牌 308

10.4.3其他安全性改进 309

10.5.利用基准评测程序测试Hadoop集群 311

10.5.1 Hadoop基准评测程序 311

10.5.2用户作业 313

第11章 管理Hadoop 314

11.1 HDFS 314

11.1.1永久性数据结构 314

11.1.2安全模式 320

11.1.3日志审计 322

11.1.4工具 322

11.2监控 327

11.2.1日志 327

11.2.2度量和JMX(Java管理扩展) 328

11.3维护 329

11.3.1日常管理过程 329

11.3.2委任和解除节点 331

11.3.3升级 334

第Ⅳ部分Hadoop相关开源项目 341

第12章 关于Avro 341

12.1 Avro数据类型和模式 342

12.2内存中的序列化和反序列化特定API 347

12.3 Avro数据文件 349

12.4互操作性 351

12.4.1 Python API 351

12.4.2 Avro工具集 352

12.5模式解析 352

12.6排列顺序 354

12.7关于Avro MapReduce 356

12.8使用Avro MapReduce进行排序 359

12.9其他语言的Avro 362

第13章 关于Parquet 363

13.1数据模型 364

13.2 Parquet文件格式 367

13.3 Parquet的配置 368

13.4 Parquet文件的读/写 369

13.4.1 Avro、 Protocol Buffers和Thrift 371

13.4.2投影模式和读取模式 373

13.5 Parquet MapReduce 374

第14章 关于Flume 377

14.1安装Flume 378

14.2示例 378

14.3事务和可靠性 380

14.4 HDFS Sink 382

14.5扇出 385

14.5.1交付保证 386

14.5.2复制和复用选择器 387

14.6通过代理层分发 387

14.7 Sink组 391

14.8 Flume与应用程序的集成 395

14.9组件编目 395

14.10延伸阅读 397

第15章 关于Sqoop 398

15.1获取Sqoop 398

15.2 Sqoop连接器 400

15.3一个导入的例子 401

15.4生成代码 404

15.5深入了解数据库导入 405

15.5.1导入控制 407

15.5.2导入和一致性 408

15.5.3增量导入 408

15.5.4直接模式导入 408

15.6使用导入的数据 409

15.7导入大对象 412

15.8执行导出 414

15.9深入了解导出功能 416

15.9.1导出与事务 417

15.9.2导出和SequenceFile 418

15.10延伸阅读 419

第16章 关于Pig 420

16.1安装与运行Pig 421

16.1.1执行类型 422

16.1.2运行Pig程序 423

16.1.3 Grunt 424

16.1.4 Pig Latin编辑器 424

16.2示例 425

16.3与数据库进行比较 428

16.4 PigLatin 429

16.4.1 结构 430

16.4.2语句 431

16.4.3表达式 436

16.4.4类型 437

16.4.5模式 438

16.4.6函数 443

16.4.7宏 445

16.5用户自定义函数 446

16.5.1过滤UDF 447

16.5.2计算UDF 450

16.5.3加载UDF 452

16.6数据处理操作 455

16.6.1数据的加载和存储 455

16.6.2数据的过滤 455

16.6.3数据的分组与连接 458

16.6.4数据的排序 463

16.6.5数据的组合和切分 465

16.7 Pig实战 465

16.7.1并行处理 465

16.7.2匿名关系 466

16.7.3参数代换 467

16.8延伸阅读 468

第17章 关于Hive 469

17.1安装Hive 470

Hive的shell环境 471

17.2示例 472

17.3运行Hive 473

17.3.1配置Hive 473

17.3.2 Hive服务 476

17.3.3 Metastore 478

17.4 Hive与传统数据库相比 480

17.4.1读时模式vs.写时模式 480

17.4.2更新、事务和索引 481

17.4.3其他SQL-on-Hadoop技术 482

17.5 HiveQL 483

17.5.1数据类型 484

17.5.2操作与函数 487

17.6表 488

17.6.1托管表和外部表 488

17.6.2分区和桶 490

17.6.3存储格式 494

17.6.4导入数据 498

17.6.5表的修改 500

17.6.6表的丢弃 501

17.7查询数据 501

17.7.1排序和聚集 501

17.7.2 MapReduce脚本 502

17.7.3连接 503

17.7.4子查询 506

17.7.5视图 507

17.8用户定义函数 508

17.8.1写UDF 510

17.8.2写UDAF 512

17.9延伸阅读 516

第18章 关于Crunch 517

18.1示例 518

18.2 Crunch核心API 521

18.2.1基本操作 522

18.2.2类型 527

18.2.3源和目标 530

18.2.4函数 532

18.2.5物化 535

18.3管线执行 537

18.3.1运行管线 538

18.3.2停止管线 539

18.3.3查看Crunch计划 540

18.3.4迭代算法 543

18.3.5给管线设置检查点 544

18.4 Crunch库 545

18.5延伸阅读 547

第19章 关于Spark 548

19.1安装Spark 549

19.2示例 549

19.2.1 Spark应用、作业、阶段和任务 551

19.2.2 Scala独立应用 552

19.2.3 Java示例 553

19.2.4 Python示例 554

19.3弹性分布式数据集 555

19.3.1创建 555

19.3.2转换和动作 557

19.3.3持久化 561

19.3.4序列化 563

19.4共享变量 564

19.4.1广播变量 564

19.4.2累加器 565

19.5 剖析Spark作业运行机制 565

19.5.1作业提交 566

19.5.2 DAG的构建 566

19.5.3任务调度 569

19.5.4任务执行 570

19.6执行器和集群管理器 570

19.7延伸阅读 574

第20章 关于HBase 575

20.1 HBase基础 575

20.2概念 576

20.2.1数据模型的“旋风之旅” 576

20.2.2实现 578

20.3安装 581

20.4客户端 584

20.4.1 Java 584

20.4.2 MapReduce 588

20.4.3 REST和Thrift 589

20.5创建在线查询应用 589

20.5.1模式设计 590

20.5.2加载数据 591

20.5.3在线查询 595

20.6 HBase和RDBMS的比较 598

20.6.1成功的服务 599

20.6.2 HBase 600

20.7 Praxis 601

20.7.1 HDFS 601

20.7.2用户界面 602

20.7.3度量 602

20.7.4计数器 602

20.8延伸阅读 602

第21章 关于ZooKeeper 604

21.1安装和运行ZooKeeper 605

21.2示例 607

21.2.1 ZooKeeper中的组成员关系 608

21.2.2创建组 608

21.2.3加入组 611

21.2.4列出组成员 612

21.2.5删除组 614

21.3 ZooKeeper服务 615

21.3.1数据模型 615

21.3.2操作 618

21.3.3实现 622

21.3.4一致性 624

21.3.5会话 626

21.3.6状态 628

21.4使用ZooKeeper来构建应用 629

21.4.1配置服务 629

21.4.2可复原的ZooKeeper应用 633

21.4.3锁服务 637

21.4.4更多分布式数据结构和协议 639

21.5生产环境中的ZooKeeper 640

21.5.1可恢复性和性能 641

21.5.2配置 642

21.6延伸阅读 643

第Ⅴ部分 案例学习 647

第22章 医疗公司塞纳(Cerner)的可聚合数据 647

22.1从多CPU到语义集成 647

22.2进入Apache Crunch 648

22.3建立全貌 649

22.4集成健康医疗数据 651

22.5框架之上的可组合性 654

22.6下一步 655

第23章 生物数据科学:用软件拯救生命 657

23.1 DNA的结构 659

23.2遗传密码:将DNA字符转译为蛋白质 660

22.3将DNA想象成源代码 661

23.4人类基因组计划和参考基因组 663

22.5 DNA测序和比对 664

23.6 ADAM,一个可扩展的基因组分析平台 666

23.7使用Avro接口描述语言进行自然语言编程 666

23.8使用Parquet进行面向列的存取 668

23.9一个简单例子:用Spark和ADAM做k-mer计数 669

23.10从个性化广告到个性化医疗 672

23.11联系我们 673

第24章 开源项目Cascading 674

24.1字段、元组和管道 675

24.2操作 678

24.3 Taps, Schemes和Flows 680

24.4 Cascading实践应用 681

24.5灵活性 684

24.6 ShareThis中的Hadoop和Cascading 685

24.7总结 689

附录A安装Apache Hadoop 691

附录B关于CDH 697

附录C准备NCDC气象数据 699

附录D新版和旧版Java MapReduce API 702