当前位置:首页 > 工业技术
深入理解Hadoop  原书第2版
深入理解Hadoop  原书第2版

深入理解Hadoop 原书第2版PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:(美)萨米尔·瓦德卡,(美)马杜·西德林埃,(美)杰森·文纳著;于博,冯傲风译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111515654
  • 页数:386 页
图书介绍:本书作者基于对Hadoop系统的实践,深入浅出地对Hadoop进行了详细的讲解,包含大量的实例和技巧,可帮助有一定基础的开发者快速掌握分布式系统。主要内容包括:第1章~第4章讲解大数据系统的基本概念、Hadoop系统的关键概念,以及进行Hadoop平台管理的关键概念要素。第5章~第7章是本书的重点,深入分析了MapReduce框架,不仅包括MapReduce框架的API,还介绍MapReduce框架的更复杂概念及其设计理念。第8章~第14章介绍Hadoop生态系统,包括支持MapReduce程序的单元测试和集成测试框架、Hadoop系统的监控和日志系统、Hive框架、Pig和Crunch框架、HCatalog框架、Hadoop日志流处理、HBase等。第15章~第17章介绍了数据科学基本概念及应用、云计算实例、分布式下载服务实例等。
《深入理解Hadoop 原书第2版》目录

第1章 为什么会有大数据 1

1.1 什么是大数据 1

1.2 大数据技术背后的核心思想 2

1.2.1 把数据分发到多个节点 2

1.2.2 把计算逻辑移动到数据附近 3

1.2.3 计算节点进行本地数据处理 3

1.2.4 优选顺序读,次之随机读 4

1.2.5 一个例子 4

1.3 大数据的编程模型 5

1.3.1 大规模并行处理数据库系统 5

1.3.2 内存数据库系统 6

1.3.3 MapReduce系统 6

1.3.4 整体同步并行系统 8

1.4 大数据和事务性系统 8

1.5 我们能处理多大的数据量 9

1.5.1 一个计算密集型的例子 10

1.5.2 Amdhal定律 10

1.6 大数据商业用例 11

1.7 本章小结 12

第2章 Hadoop中的概念 13

2.1 Hadoop简介 13

2.2 MapReduce编程模型简介 15

2.3 Hadoop系统的组成 19

2.3.1 Hadoop分布式文件系统 20

2.3.2 辅助名称节点 25

2.3.3 任务跟踪器 26

2.3.4 作业跟踪器 26

2.4 Hadoop 2.0 27

2.4.1 容器 29

2.4.2 节点管理器 29

2.4.3 资源管理器 30

2.4.4 应用程序管理器 30

2.4.5 分步详解YARN请求 31

2.5 HDFS的高可用性 33

2.6 本章小结 33

第3章 初识Hadoop框架 34

3.1 安装类型 34

3.1.1 单机模式 35

3.1.2 伪分布式集群模式 35

3.1.3 多节点集群安装模式 35

3.1.4 基于AmazonEMR预安装模式 35

3.2 使用Cloudera虚拟机搭建开发环境 36

3.3 一个MapReduce程序的组成 37

3.4 第一个Hadoop程序 38

3.4.1 以本地模式运行程序的必要条件 39

3.4.2 使用旧API编写的单词计数程序 39

3.4.3 构建程序 42

3.4.4 在集群模式下运行单词计数程序 42

3.4.5 使用新API编写的单词计数程序 43

3.4.6 构建程序 44

3.4.7 在集群模式下运行单词计数程序 45

3.5 Hadoop作业中的第三方函数库 45

3.6 本章小结 50

第4章 Hadoop系统管理 51

4.1 Hadoop的配置文件 51

4.2 配置Hadoop守护进程 52

4.3 Hadoop配置文件的优先级 53

4.4 深入探究Hadoop配置文件 54

4.4.1 core-site.xml 54

4.4.2 hdfs-*.xml 55

4.4.3 mapred-site.xml 56

4.4.4 yarn-site.xml 58

4.4.5 YARN中的内存分配 60

4.5 调度器 61

4.5.1 计算能力调度器 62

4.5.2 公平调度器 65

4.5.3 公平调度器配置 65

4.5.4 yarn-site.xml配置 66

4.5.5 策略文件的格式和配置 67

4.5.6 按照drf策略来确定优势资源的分配 68

4.6 从属文件 69

4.7 机架感知 69

4.8 集群管理工具 71

4.8.1 检查HDFS 71

4.8.2 HDFS管理命令行 73

4.8.3 均衡HDFS上的数据分布 75

4.8.4 从HDFS中复制海量数据 76

4.9 本章小结 76

第5章 MapReduce开发基础 78

5.1 Hadoop和数据处理 78

5.2 航空公司数据集介绍 79

5.2.1 准备开发环境 80

5.2.2 准备Hadoop系统 81

5.3 MapReduce编程模式 81

5.3.1 只有Map阶段的作业(SELECT和WHERE查询) 82

5.3.2 问题定义——SELECT子句 82

5.3.3 问题定义——WHERE子句 90

5.3.4 Map和Reduce作业(聚合查询) 93

5.3.5 问题定义——GROUPBY和SUM子句 93

5.3.6 应用Combiner提高Aggregation性能 99

5.3.7 问题定义——优化后的Aggregators 99

5.3.8 Partitioner的作用 104

5.3.9 问题定义——按月分离航空数据 105

5.4 综合分析 108

5.5 本章小结 110

第6章 MapReduce开发进阶 111

6.1 MapReduce编程模式 111

6.2 Hadoop I/O介绍 111

6.3 问题定义——排序 114

6.3.1 主要挑战:全排序 115

6.3.2 在Cluster中运行Sorting作业 125

6.3.3 仅根据Writable键排序 125

6.3.4 根据排序回顾Hadoop的关键特性 128

6.4 问题定义——分析连续的记录 128

6.4.1 支持二次排序的重要组件 129

6.4.2 在没有Grouping Comparator的情况下实现Secondary Sort 136

6.4.3 在Cluster中运行Secondary Sort作业 137

6.4.4 利用Secondary Sort回顾Hadoop的关键特性 137

6.5 问题定义——使用MapReducer进行连接 138

6.5.1 处理多输入:Multiple-Inputs类 138

6.5.2 具备多个输入的Mapper类 139

6.5.3 自定义Partitioner:Carrier-CodeBasedPartioner 141

6.5.4 在Reducer中实现连接 141

6.5.5 在集群中运行MapReduce连接作业 143

6.5.6 探讨与MapReduce相关的Hadoop主要特性 144

6.6 问题定义——使用Map-Only作业进行连接 144

6.6.1 基于DistributeCache的解决方案 145

6.6.2 在集群中运行Map-Only的连接作业 147

6.6.3 总结探讨Map-Only连接时的Hadoop关键特性 149

6.7 在MR作业中保存结果到多输出文件 149

6.8 使用计数器收集统计数据 151

6.9 本章小结 153

第7章 Hadoop输入/输出 155

7.1 压缩方式 155

7.1.1 压缩内容的选择 156

7.1.2 各种压缩方式 157

7.1.3 配置压缩方式 158

7.2 Hadoop的I/O处理过程内部 159

7.2.1 Inputformat 159

7.2.2 OutputFormat 161

7.2.3 自定义OutputFormat:将文本转换成XML 161

7.2.4 自定义InputFormat:使用自定义的XML文件 165

7.3 Hadoop文件 173

7.3.1 SequenceFile 173

7.3.2 MapFiles 178

7.3.3 Avro Files 180

7.4 本章小结 185

第8章 测试Hadoop程序 186

8.1 回顾一下单词统计的程序 186

8.2 MRUnit概述 188

8.2.1 安装MRUnit 188

8.2.2 MRUnit核心类 188

8.2.3 编写一个MRUnit测试用例 189

8.2.4 测试计数器 191

8.2.5 MRUnit的特性 194

8.2.6 MRUnit的局限性 194

8.3 用LocalJobRunner测试 195

8.3.1 setUp()方法 196

8.3.2 LocalJobRunner的局限性 197

8.4 用MiniMRCluster测试 198

8.4.1 配置开发环境 198

8.4.2 MiniMRCluster例子 199

8.4.3 MiniMRCluster的局限性 201

8.5 对访问网络资源的MR作业进行测试 202

8.6 本章小结 202

第9章 Hadoop的监控 203

9.1 在Hadoop MapReduce Jobs中写日志消息 203

9.2 在Hadoop MapReduce Jobs中查看日志消息 206

9.3 在Hadoop 2.x中使用日志管理 208

9.3.1 Hadoop 2.x中的日志存储 208

9.3.2 日志管理提升 210

9.3.3 使用基于Web的界面查看日志 210

9.3.4 命令行界面 211

9.3.5 日志的保存 211

9.4 Hadoop集群性能监控 211

9.5 使用YARN REST API 212

9.6 使用供应商工具管理Hadoop集群 213

9.7 本章小结 214

第10章 使用Hadoop构建数据仓库 215

10.1 Apache Hive 215

10.1.1 安装Hive 216

10.1.2 Hive的架构 217

10.1.3 元数据存储 217

10.1.4 HiveQL编译基础 217

10.1.5 Hive使用的概念 218

10.1.6 HiveQL编译细节 222

10.1.7 数据定义语言 226

10.1.8 数据操作语言 226

10.1.9 扩展接口 227

10.1.10 Hive脚本 229

10.1.11 性能表现 229

10.1.12 整合MapReduce 230

10.1.13 创建分区 230

10.1.14 用户定义函数 232

10.2 Impala 234

10.2.1 Impala架构 234

10.2.2 Impala特性 235

10.2.3 Impala的局限 235

10.3 Shark 235

10.4 本章小结 237

第11章 使用Pig进行数据处理 238

11.1 Pig简介 238

11.2 运行Pig 240

11.2.1 在Grunt Shell中执行 241

11.2.2 执行Pig脚本 241

11.2.3 嵌入式Java程序 242

11.3 Pig Latin 243

11.3.1 Pig脚本中的注释 243

11.3.2 Pig语句的执行 243

11.3.3 Pig命令 244

11.4 UDF 249

11.4.1 Mapper中的Eval函数调用 249

11.4.2 Reducer中的Eval函数调用 250

11.4.3 编写并使用自定义Filter-Func 256

11.5 Pig与Hive对比 258

11.6 Crunch API 259

11.6.1 Crunch与Pig的区别 259

11.6.2 Crunch管道的例子 260

11.7 本章小结 265

第12章 HCatalog和企业级Hadoop 266

12.1 HCataolg和企业级数据仓库用户 266

12.2 HCatalog技术背景简介 267

12.2.1 HCatalog命令行接口 269

12.2.2 WebHCat 269

12.2.3 HCatalog的MapReduce接口 270

12.2.4 HCatalog的Pig接口 273

12.2.5 HCatalog通知接口 274

12.3 HCatalog的安全和认证机制 274

12.4 完整的解决方案 275

12.5 本章小结 275

第13章 使用Hadoop分析日志 277

13.1 日志文件分析应用 277

13.1.1 网络分析 277

13.1.2 安全规范与法务 278

13.1.3 监控和报警 279

13.1.4 物联网 279

13.2 分析步骤 280

13.2.1 载入 280

13.2.2 提取 280

13.2.3 可视化 281

13.3 Apache Flume 281

13.4 Netflix Suro 283

13.5 云解决方案 285

13.6 本章小结 285

第14章 使用HBase构建实时系统 286

14.1 HBase是什么 286

14.2 典型的HBase用例场景 287

14.3 HBase数据模型 288

14.3.1 HBase逻辑视图和客户端视图 288

14.3.2 HBase与RDBMS的区别 289

14.3.3 HBase表 290

14.3.4 HBase单元格 290

14.3.5 HBase列簇 290

14.4 HBase命令和API 291

14.4.1 获取命令列表:帮助命令 291

14.4.2 创建表:create命令 292

14.4.3 向表中加入行:put命令 293

14.4.4 从表中检索行:get命令 293

14.4.5 读取多行:scan命令 293

14.4.6 统计表中的行数:count命令 293

14.4.7 删除行:delete命令 294

14.4.8 清空表:truncate命令 294

14.4.9 删除表:drop命令 294

14.4.10 更换表:alter命令 294

14.5 HBase架构 295

14.5.1 HBase组件 295

14.5.2 HBase中的压缩与分区 302

14.5.3 压缩 303

14.6 HBase配置概览 304

14.7 HBase应用程序设计 305

14.7.1 长表vs宽表vs窄表 305

14.7.2 行键设计 306

14.8 使用Java API操作HBase 307

14.8.1 一切都是字节 307

14.8.2 创建HBase表 307

14.8.3 使用HBaseAdmin类管理HBase 308

14.8.4 使用Java API访问数据 308

14.9 HBase与MapReduce集成 312

14.9.1 使用MapReduce任务读取HBase表 312

14.9.2 HBase和MapReduce集群 315

14.10 本章小结 316

第15章 Hadoop与数据科学 317

15.1 Hadoop中的数据科学方法 318

15.2 Apache Hama 318

15.2.1 整体同步并行计算模型 318

15.2.2 Hama Hello World! 319

15.2.3 蒙特卡洛方法 321

15.2.4 K-Means聚类 324

15.3 Apache Spark 327

15.3.1 弹性分布式数据集(RDD) 327

15.3.2 Spark与蒙特卡洛算法 328

15.3.3 Spark与KMeans聚类 330

15.4 RHadoop 332

15.5 本章小结 333

第16章 Hadoop与云计算 334

16.1 经济性 334

16.1.1 自有集群 335

16.1.2 基于云平台的集群 335

16.1.3 弹性 336

16.1.4 按需付费 336

16.1.5 竞价 336

16.1.6 混合集群 336

16.2 后勤保障 337

16.2.1 导入/导出 337

16.2.2 数据保存 337

16.3 安全性 337

16.4 云端应用模型 338

16.5 云服务商 339

16.5.1 亚马逊网络服务(AWS) 339

16.5.2 谷歌云平台 341

16.5.3 微软Azure 342

16.5.4 选择云服务商 342

16.6 案例学习:AWS 342

16.6.1 EMR 343

16.6.2 EC2 345

16.7 本章小结 348

第17章 构建YARN应用程序 349

17.1 YARN:通用分布式系统 349

17.2 YARN:快速浏览 351

17.3 创建YARN应用程序 353

17.4 DownloadService.java类 354

17.5 Client.java类 356

17.5.1 从客户端启动应用管理器的步骤 356

17.5.2 创建YarnClient 357

17.5.3 配置应用程序 357

17.5.4 启动应用管理器 360

17.5.5 监控应用 360

17.6 ApplicationMaster.java 362

17.6.1 启动工作任务的步骤 363

17.6.2 初始化应用管理器协议和容器管理协议 364

17.6.3 在资源管理器中注册应用管理器 364

17.6.4 配置容器参数 364

17.6.5 向资源管理器请求容器 364

17.6.6 在任务节点上启动容器 364

17.6.7 等待容器结束工作任务 365

17.6.8 在资源管理器中注销应用管理器 365

17.7 运行应用管理器 367

17.7.1 在非托管模式中启动应用管理器 367

17.7.2 在托管模式中启动应用管理器 367

17.8 本章小结 367

附录A 安装Hadoop 369

附录B 使用Maven和Eclipse 378

附录C Apache Ambari 383

相关图书
作者其它书籍
返回顶部