陆嘉恒《Hadoop实战(第2版)》

陆嘉恒《Hadoop实战(第2版)》

作者:陆嘉恒

出版社:机械工业出版社华章公司

出版年:2012-11

评分:7.0

ISBN:9787111395836

所属分类:网络科技

书刊介绍

内容简介

本书能满足读者全面学习最新的Hadoop技术及其相关技术(Hive、HBase等)的需求,是一本系统且极具实践指导意义的Hadoop工具书和参考书。第1版上市后广受好评,被誉为学习Hadoop技术的经典著作之一。与第1版相比,第2版技术更新颖,所有技术都针对最新版进行了更新;内容更全面,几乎每一个章节都增加了新内容,而且增加了新的章节;实战性更强,案例更丰富;细节更完美,对第1版中存在的缺陷和不足进行了修正。

本书内容全面,对Hadoop整个技术体系进行了全面的讲解,不仅包括HDFS、MapReduce、YARN等核心内容,而且还包括Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等与Hadoop技术相关的重要内容。实战性强,不仅为各个知识点精心设计了大量经典的小案例,而且还包括Yahoo!等多个大公司的企业级案例,可操作系极强。

全书一共19章:第1~2章首先对Hadoop进行了全方位的宏观介绍,然后介绍了Hadoop在三大主流操作系统平台上的安装与配置方法;第3~6章分别详细讲解了MapReduce计算模型、MapReduce的工作机制、MapReduce应用的开发方法,以及多个精巧的MapReduce应用案例;第7章全面讲解了Hadoop的I/O操作;第8章对YARN进行了介绍;第9章对HDFS进行了详细讲解和分析;第10章细致地讲解了Hadoop的管理;第11~17章对Hadoop大生态系统中的Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa等技术进行了详细的讲解;第18章讲解了Hadoop的各种常用插件,以及Hadoop插件的开发方法;第19章分析了Hadoop在Yahoo!、eBay、百度、Facebook等企业中的应用案例。

作品目录

目录

前言

第1章 Hadoop简介/1

1.1 什么是Hadoop/2

1.1.1 Hadoop概述/2

1.1.2 Hadoop的历史/2

1.1.3 Hadoop的功能与作用/2

1.1.4 Hadoop的优势/3

1.1.5 Hadoop应用现状和发展趋势/3

1.2 Hadoop项目及其结构/3

1.3 Hadoop体系结构/6

1.4 Hadoop与分布式开发/7

1.5 Hadoop计算模型—MapReduce/10

1.6 Hadoop数据管理/10

1.6.1 HDFS的数据管理/10

1.6.2 HBase的数据管理/12

1.6.3 Hive的数据管理/13

1.7 Hadoop集群安全策略/15

1.8 本章小结/17

第2章 Hadoop的安装与配置/19

2.1 在Linux上安装与配置Hadoop/20

2.1.1 安装JDK 1.6/20

2.1.2 配置SSH免密码登录/21

2.1.3 安装并运行Hadoop/22

2.2 在Mac OSX上安装与配置Hadoop/24

2.2.1 安装Homebrew/24

2.2.2 使用Homebrew安装Hadoop/25

2.2.3 配置SSH和使用Hadoop/25

2.3 在Windows上安装与配置Hadoop/25

2.3.1 安装JDK 1.6或更高版本/25

2.3.2 安装Cygwin/25

2.3.3 配置环境变量/26

2.3.4 安装sshd服务/26

2.3.5 启动sshd服务/26

2.3.6 配置SSH免密码登录/26

2.3.7 安装并运行Hadoop/26

2.4 安装和配置Hadoop集群/27

2.4.1 网络拓扑/27

2.4.2 定义集群拓扑/27

2.4.3 建立和安装Cluster /28

2.5 日志分析及几个小技巧/34

2.6 本章小结/35

第3章 MapReduce计算模型/36

3.1 为什么要用MapReduce/37

3.2 MapReduce计算模型/38

3.2.1 MapReduce Job/38

3.2.2 Hadoop中的Hello World程序/38

3.2.3 MapReduce的数据流和控制流/46

3.3 MapReduce任务的优化/47

3.4 Hadoop流/49

3.4.1 Hadoop流的工作原理/50

3.4.2 Hadoop流的命令/51

3.4.3 两个例子/52

3.5 Hadoop Pipes/54

3.6 本章小结/56

第4章 开发MapReduce应用程序/57

4.1 系统参数的配置/58

4.2 配置开发环境/60

4.3 编写MapReduce程序/60

4.3.1 Map处理/60

4.3.2 Reduce处理/61

4.4 本地测试/62

4.5 运行MapReduce程序/62

4.5.1 打包/64

4.5.2 在本地模式下运行/64

4.5.3 在集群上运行/64

4.6 网络用户界面/65

4.6.1 JobTracker页面/65

4.6.2 工作页面/65

4.6.3 返回结果/66

4.6.4 任务页面/67

4.6.5 任务细节页面/67

4.7 性能调优/68

4.7.1 输入采用大文件/68

4.7.2 压缩文件/68

4.7.3 过滤数据/69

4.7.4 修改作业属性/71

4.8 MapReduce工作流/72

4.8.1 复杂的Map和Reduce函数/72

4.8.2 MapReduce Job中全局共享数据/74

4.8.3 链接MapReduce Job/75

4.9 本章小结/77

第5章 MapReduce应用案例/79

5.1 单词计数/80

5.1.1 实例描述/80

5.1.2 设计思路/80

5.1.3 程序代码/81

5.1.4 代码解读/82

5.1.5 程序执行/83

5.1.6 代码结果/83

5.1.7 代码数据流/84

5.2 数据去重/85

5.2.1 实例描述/85

5.2.2 设计思路/86

5.2.3 程序代码/86

5.3 排序/87

5.3.1 实例描述/87

5.3.2 设计思路/88

5.3.3 程序代码/89

5.4 单表关联/91

5.4.1 实例描述/91

5.4.2 设计思路/92

5.4.3 程序代码/92

5.5 多表关联/95

5.5.1 实例描述/95

5.5.2 设计思路/96

5.5.3 程序代码/96

5.6 本章小结/98

第6章 MapReduce工作机制/99

6.1 MapReduce作业的执行流程/100

6.1.1 MapReduce任务执行总流程/100

6.1.2 提交作业/101

6.1.3 初始化作业/103

6.1.4 分配任务/104

6.1.5 执行任务/106

6.1.6 更新任务执行进度和状态/107

6.1.7 完成作业/108

6.2 错误处理机制 /108

6.2.1 硬件故障/109

6.2.2 任务失败/109

6.3 作业调度机制/110

6.4 Shuffle和排序/111

6.4.1 Map端/111

6.4.2 Reduce端/113

6.4.3 shuffle过程的优化/114

6.5 任务执行/114

6.5.1 推测式执行/114

6.5.2 任务JVM重用/115

6.5.3 跳过坏记录/115

6.5.4 任务执行环境/116

6.6 本章小结/117

第7章 Hadoop I/O操作/118

7.1 I/O操作中的数据检查/119

7.2 数据的压缩 /126

7.2.1 Hadoop对压缩工具的选择/126

7.2.2 压缩分割和输入分割/127

7.2.3 在MapReduce程序中使用压缩/127

7.3 数据的I/O中序列化操作/128

7.3.1 Writable类/128

7.3.2 实现自己的Hadoop数据类型/137

7.4 针对Mapreduce的文件类/139

7.4.1 SequenceFile类/139

7.4.2 MapFile类/144

7.4.3 ArrayFile、SetFile和BloomMapFile/146

7.5 本章小结/148

第8章 下一代MapReduce:YARN/149

8.1 MapReduce V2设计需求/150

8.2 MapReduce V2主要思想和架构/151

8.3 MapReduce V2设计细节/153

8.4 MapReduce V2优势/156

8.5 本章小结/156

第9章 HDFS详解/157

9.1 Hadoop的文件系统/158

9.2 HDFS简介/160

9.3 HDFS体系结构/161

9.3.1 HDFS的相关概念/161

9.3.2 HDFS的体系结构/162

9.4 HDFS的基本操作/164

9.4.1 HDFS的命令行操作/164

9.4.2 HDFS的Web界面/165

9.5 HDFS常用Java API详解/166

9.5.1 使用Hadoop URL读取数据/166

9.5.2 使用FileSystem API读取数据/167

9.5.3 创建目录/169

9.5.4 写数据/169

9.5.5 删除数据/171

9.5.6 文件系统查询/171

9.6 HDFS中的读写数据流/175

9.6.1 文件的读取/175

9.6.2 文件的写入/176

9.6.3 一致性模型/178

9.7 HDFS命令详解/179

9.7.1 通过distcp进行并行复制/179

9.7.2 HDFS的平衡/180

9.7.3 使用Hadoop归档文件/180

9.7.4 其他命令/183

9.8 WebHDFS/186

9.8.1 WebHDFS的配置/186

9.8.2 WebHDFS命令/186

9.9 本章小结/190

第10章 Hadoop的管理/191

10.1 HDFS文件结构/192

10.2 Hadoop的状态监视和管理工具/196

10.2.1 审计日志/196

10.2.2 监控日志/196

10.2.3 Metrics/197

10.2.4 Java管理扩展 /199

10.2.5 Ganglia/200

10.2.6 Hadoop管理命令/202

10.3 Hadoop集群的维护/206

10.3.1 安全模式/206

10.3.2 Hadoop的备份/207

10.3.3 Hadoop的节点管理/208

10.3.4 系统升级/210

10.4 本章小结/212

第11章 Hive详解/213

11.1 Hive简介/214

11.1.1 Hive的数据存储/214

11.1.2 Hive的元数据存储/216

11.2 Hive的基本操作/216

11.2.1 在集群上安装Hive/216

11.2.2 配置MySQL存储Hive元数据/218

11.2.3 配置Hive/220

11.3 Hive QL详解/221

11.3.1 数据定义(DDL)操作/221

11.3.2 数据操作(DML)/231

11.3.3 SQL操作/233

11.3.4 Hive QL使用实例/235

11.4 Hive网络(Web UI)接口/237

11.4.1 Hive网络接口配置/237

11.4.2 Hive网络接口操作实例/238

11.5 Hive的JDBC接口//241

11.5.1 Eclipse环境配置/241

11.5.2 程序实例/241

11.6 Hive的优化/244

11.7 本章小结/246

第12章 HBase详解/247

12.1 HBase简介/248

12.2 HBase的基本操作/249

12.2.1 HBase的安装/249

12.2.2 运行HBase /253

12.2.3 HBase Shell/255

12.2.4 HBase配置/258

12.3 HBase体系结构/260

12.3.1 HRegion/260

12.3.2 HRegion服务器/261

12.3.3 HBase Master服务器/262

12.3.4 ROOT表和META表/262

12.3.5 ZooKeeper/263

12.4 HBase数据模型/263

12.4.1 数据模型/263

12.4.2 概念视图/264

12.4.3 物理视图/264

12.5 HBase与RDBMS/265

12.6 HBase与HDFS/266

12.7 HBase客户端/266

12.8 Java API /267

12.9 HBase编程 /273

12.9.1 使用Eclipse开发HBase应用程序/273

12.9.2 HBase编程/275

12.9.3 HBase与MapReduce/278

12.10 模式设计/280

12.10.1 模式设计应遵循的原则/280

12.10.2 学生表/281

12.10.3 事件表/282

12.11 本章小结/283

第13章 Mahout详解/284

13.1 Mahout简介/285

13.2 Mahout的安装和配置/285

13.3 Mahout API简介/288

13.4 Mahout中的频繁模式挖掘/290

13.4.1 什么是频繁模式挖掘/290

13.4.2 Mahout中的频繁模式挖掘/290

13.5 Mahout中的聚类和分类/292

13.5.1 什么是聚类和分类/292

13.5.2 Mahout中的数据表示/293

13.5.3 将文本转化成向量/294

13.5.4 Mahout中的聚类、分类算法/295

13.5.5 算法应用实例/299

13.6 Mahout应用:建立一个推荐引擎/304

13.6.1 推荐引擎简介/304

13.6.2 使用Taste构建一个简单的推荐引擎/305

13.6.3 简单分布式系统下基于产品的推荐系统简介/307

13.7 本章小结/309

第14章 Pig详解/310

14.1 Pig简介/311

14.2 Pig的安装和配置 /311

14.2.1 Pig的安装条件/311

14.2.2 Pig的下载、安装和配置/312

14.2.3 Pig运行模式/313

14.3 Pig Latin语言/315

14.3.1 Pig Latin语言简介/315

14.3.2 Pig Latin的使用/316

14.3.3 Pig Latin的数据类型/318

14.3.4 Pig Latin关键字/319

14.4 用户定义函数 /323

14.4.1 编写用户定义函数/324

14.4.2 使用用户定义函数/325

14.5 Zebra简介 /326

14.5.1 Zebra的安装/326

14.5.2 Zebra的使用简介/327

14.6 Pig实例 /328

14.6.1 Local模式/328

14.6.2 MapReduce模式/330

14.7 Pig进阶/331

14.7.1 数据实例/331

14.7.2 Pig数据分析/332

14.8 本章小结/336

第15章 ZooKeeper详解/337

15.1 ZooKeeper简介/338

15.1.1 ZooKeeper的设计目标/338

15.1.2 数据模型和层次命名空间/339

15.1.3 ZooKeeper中的节点和临时节点/339

15.1.4 ZooKeeper的应用/340

15.2 ZooKeeper的安装和配置/340

15.2.1 安装ZooKeeper /340

15.2.2 配置ZooKeeper/346

15.2.3 运行ZooKeeper/348

15.3 ZooKeeper的简单操作/350

15.3.1 使用ZooKeeper命令的简单操作步骤/350

15.3.2 ZooKeeper API的简单使用/352

15.4 ZooKeeper的特性/355

15.4.1 ZooKeeper的数据模型/355

15.4.2 ZooKeeper会话及状态/356

15.4.3 ZooKeeper watches/357

15.4.4 ZooKeeper ACL/358

15.4.5 ZooKeeper的一致性保证/359

15.5 使用ZooKeeper进行Leader选举/359

15.6 ZooKeeper锁服务/360

15.6.1 ZooKeeper中的锁机制/360

15.6.2 ZooKeeper提供的一个写锁的实现/361

15.7 使用ZooKeeper创建应用程序 /363

15.7.1 使用Eclipse开发ZooKeeper应用程序/363

15.7.2 应用程序实例/365

15.8 BooKeeper/369

15.9 本章小结/371

第16章 Avro详解/372

16.1 Avro介绍/373

16.1.1 模式声明/374

16.1.2 数据序列化/378

16.1.3 数据排列顺序/380

16.1.4 对象容器文件 /381

16.1.5 协议声明/382

16.1.6 协议传输格式/383

16.1.7 模式解析/386

16.2 Avro的C/C++实现/387

16.3 Avro的Java实现/398

16.4 GenAvro(Avro IDL)语言/402

16.5 Avro SASL概述/406

16.6 本章小结/407

第17章 Chukwa详解/409

17.1 Chukwa简介/410

17.2 Chukwa架构/411

17.2.1 客户端及其数据模型/412

17.2.2 收集器/413

17.2.3 归档器和分离解析器/414

17.2.4 HICC/415

17.3 Chukwa的可靠性/415

17.4 Chukwa集群搭建/416

17.4.1 基本配置要求/416

17.4.2 Chukwa的安装/416

17.4.3 Chukwa的运行/419

17.5 Chukwa数据流的处理/424

17.6 Chukwa与其他监控系统比较/425

17.7 本章小结/426

本章参考资料/426

第18章 Hadoop的常用插件与开发/428

18.1 Hadoop Studio的介绍和使用/429

18.1.1 Hadoop Studio的介绍/429

18.1.2 Hadoop Studio的安装配置/430

18.1.3 Hadoop Studio的使用举例/430

18.2 Hadoop Eclipse的介绍和使用/436

18.2.1 Hadoop Eclipse的介绍/436

18.2.2 Hadoop Eclipse的安装配置/437

18.2.3 Hadoop Eclipse的使用举例/438

18.3 Hadoop Streaming的介绍和使用/440

18.3.1 Hadoop Streaming的介绍/440

18.3.2 Hadoop Streaming的使用举例/444

18.3.3 使用Hadoop Streaming常见的问题/446

18.4 Hadoop Libhdfs的介绍和使用/448

18.4.1 Hadoop Libhdfs的介绍/448

18.4.2 Hadoop Libhdfs的安装配置/448

18.4.3 Hadoop Libhdfs API简介/448

18.4.4 Hadoop Libhdfs的使用举例/449

18.5 本章小结/450

第19章 企业应用实例/452

19.1 Hadoop在Yahoo!的应用/453

19.2 Hadoop在eBay的应用/455

19.3 Hadoop在百度的应用/457

19.4 即刻搜索中的Hadoop/460

19.4.1 即刻搜索简介/460

19.4.2 即刻Hadoop应用架构/460

19.4.3 即刻Hadoop应用分析/463

19.5 Facebook中的Hadoop和HBase/463

19.5.1 Facebook中的任务特点/464

19.5.2 MySQL VS Hadoop+HBase/466

19.5.3 Hadoop和HBase的实现/467

19.6 本章小结/472

本章参考资料/472

附录A 云计算在线检测平台/474

附录B Hadoop安装、运行与使用说明/484

附录C 使用DistributedCache的MapReduce程序/491

附录D 使用ChainMapper和ChainReducer的MapReduce程序/495

相关推荐

微信二维码