理解Hadoop 2和YARN的工作原理,以及它们对配备MapReduce的Hadoop第1版的改进。
理解基于Hadoop的数据湖和RDBMS数据仓库的比较。
在Linux机器、虚拟的沙箱或集群中安装Hadoop 2和核心服务。
研究Hadoop分布式文件系统(HDFS)。
理解MapReduce和YARN编程的基础。
利用Apache Pig、Hive、Sqoop、Flume、Oozie和HBase简化编程。
观察应用程序运行进度、控制作业并管理工作流程。
利用Apache Ambari高效地管理Hadoop,包括建立从HDFS到NFSv3的网关、制作HDFS快照及配置YARN的攻略。
学习Hadoop 2故障诊断和排除的基础知识,以及学习安装Apache Hue和Apache Spark。
《写给大忙人的Hadoop 2》首先介绍了Hadoop 的背景知识,包括Hadoop 2 和YARN 的工作原理和对Hadoop 1 的改进,然后将数据湖与传统存储比较。第2 章到第8 章,分别介绍了Hadoop 2 和核心服务的安装方法、Hadoop 分布式文件系统、MapReduce 和YARN 编程,以及利用Apache Pig 等Hadoop 工具简化编程。最后两章讲述了利用Apache Ambari 等工具管理Hadoop 和基本的管理程序。附录包括Hadoop 2 故障诊断和排除的基础知识、Apache Hue 和Apache Spark 安装等。
《写给大忙人的Hadoop 2》通俗易懂,具有大量操作实例,易于上手,适合Hadoop 用户、管理员、开发和运维人员、程序员、架构师、分析师和数据科学工作者阅读。
序言
Apache Hadoop 2 引进了加工和处理数据的新方法,这些方法都超越了原始Hadoop实现的基本MapReduce 范式。本书详尽地介绍了Hadoop 2 中的概念和工具,无论是Hadoop 新人或曾使用过早期版本的经验丰富的专业人员,都能从中获益。
在过去的几年中,在原Hadoop 项目的保护伞下已经诞生了许多项目,这些项目在与原始Hadoop 项目保持良好集成的同时,还使得存储、处理和收集大量数据更为便利。本书介绍了许多在此更大的Hadoop 生态系统中的项目,向读者提供高层次基础知识,引导他们使用满足自己需求的工具来开展工作。
本书很多内容是Doug Eadline 根据他广受欢迎的Hadoop Fundamentals Live Lessons视频系列改编而成的。然而,他的资历不仅于此。Doug 与人合著了Apache Hadoop™ YARN:Moving beyond MapReduce and Batch Processing with Apache Hadoop™ 2 一书,对于介绍Hadoop 2 的覆盖范围和它给用户带来的新功能,几乎无人比他更有资格。
我激动地看到Doug 用他涵盖Hadoop 及其相关项目的书为本丛书带来巨大的知识财富。对于希望了解更多有关Hadoop 可以帮助他们解决问题的新人,以及希望了解升级到最新版本的好处的现有用户,本书都将是很好的资料。
—— Paul Dix,丛书编辑
1 背景和概念 1
定义Apache Hadoop 1
Apache Hadoop 的发展简史 3
大数据的定义 4
Hadoop 作为数据湖 5
使用Hadoop:管理员、用户或两种身份兼具 7
原始的MapReduce. 7
Apache Hadoop 的设计原则 8
Apache Hadoop MapReduce 示例 8
MapReduce 的优势 10
Apache Hadoop V1 MapReduce 操作 11
使用Hadoop V2 超越MapReduce 13
Hadoop V2 YARN 操作设计 14
Apache Hadoop 项目生态系统 16
总结和补充资料 18
2 安装攻略 21
核心Hadoop 服务 21
Hadoop 配置文件 22
规划你的资源 23
硬件的选择 23
软件的选择 24
在台式机或笔记本电脑上安装 25
安装Hortonworks HDP 2.2 沙箱 25
用Apache 源代码安装Hadoop 32
配置单节点YARN 服务器的步骤 33
运行简单的MapReduce 示例 42
安装 Apache Pig(可选) 42
安装Apache Hive(可选) 43
使用Ambari 安装Hadoop 44
执行Ambari 安装 45
撤消Ambari 安装 59
使用Apache Whirr 在云中安装Hadoop 59
总结和补充资料 65
3 HDFS 基础知识 67
HDFS 设计的特点 67
HDFS 组件 68
HDFS 块复制 71
HDFS 安全模式 72
机架的识别 73
NameNode 高可用性 73
HDFS NameNode 联邦 75
HDFS 检查点和备份 76
HDFS 快照 76
HDFS NFS 网关 76
HDFS 用户命令 77
简要HDFS 命令参考 77
一般HDFS 命令 78
列出HDFS 中的文件 79
在HDFS 中创建一个目录 80
将文件复制到HDFS 80
从HDFS 复制文件 81
在HDFS 中复制文件 81
删除在HDFS 中的文件 81
删除在HDFS 中的目录 81
获取HDFS 状态报告 81
HDFS 的Web 图形用户界面 82
在程序中使用HDFS 82
HDFS Java 应用程序示例 82
HDFS C 应用程序示例 86
总结和补充资料 88
4 运行示例程序和基准测试程序 91
运行MapReduce 示例 91
列出可用的示例 92
运行Pi 示例 93
使用Web 界面监控示例 95
运行基本Hadoop 基准测试程序 101
运行Terasort 测试 101
运行TestDFSIO 基准 102
管理Hadoop MapReduce 作业 104
总结和补充资料 105
5 Hadoop MapReduce 框架 107
MapReduce 模型 107
MapReduce 并行数据流. 110
容错和推测执行 114
推测执行. 114
Hadoop MapReduce 硬件 115
总结和补充资料 115
6 MapReduce 编程 117
编译和运行Hadoop WordCount 的示例 117
使用流式接口 122
使用管道接口 125
编译和运行Hadoop Grep 链示例 127
调试MapReduce. 131
作业的列举、清除和状态查询 131
Hadoop 日志管理 131
启用YARN 日志聚合 132
Web 界面日志查看 133
命令行日志查看 133
总结和补充资料 135
7 基本的Hadoop 工具 137
使用Apache Pig 137
Pig 示例演练 138
使用Apache Hive 140
Hive 示例演练 140
更高级的Hive 示例 142
使用Apache Sqoop 获取关系型数据 145
Apache Sqoop 导入和导出方法 145
Apache Sqoop 版本更改 147
Sqoop 示例演练 148
使用Apache Flume 获取数据流 155
Flume 的示例演练 157
使用Apache Oozie 管理 Hadoop 工作流 160
Oozie 示例演练 162
使用Apache HBase 170
HBase 数据模型概述 170
HBase 示例演练 171
总结和补充资料 176
8 Hadoop YARN 应用程序 179
YARN 分布式shell 179
使用YARN 分布式shell 180
一个简单的示例 181
使用更多的容器 182
带有shell 参数的分布式 shell 示例 183
YARN 应用程序的结构 185
YARN 应用程序框架 187
Hadoop MapReduce 188
Apache Tez 188
Apache Giraph 189
Hoya:HBase on YARN 189
Dryad on YARN 189
Apache Spark 189
Apache Storm 190
Apache REEF:可持续计算执行框架 190
Hamster:Hadoop 和MPI 在同一集群 190
Apache Flink:可扩展的批处理和流式数据处理 191
Apache Slider:动态应用程序管理 191
总结和补充资料 192
9 用Apache Ambari 管理Hadoop 193
快速浏览 Apache Ambari 194
仪表板视图 194
服务视图. 197
主机视图. 199
管理视图. 201
查看视图. 201
Admin 下拉菜单 202
更改Hadoop 属性 206
总结和补充资料 212
10 基本的Hadoop 管理程序 213
基本的Hadoop YARN 管理 214
停用YARN 节点 214
YARN WebProxy 214
使用 JobHistoryServer 215
管理YARN 作业 215
设置容器内存 215
设置容器核心 216
设置MapReduce 属性 216
基本的HDFS 管理 217
NameNode 用户界面 217
将用户添加到HDFS 219
在HDFS 上执行FSCK 220
平衡HDFS 221
HDFS 安全模式 222
停用HDFS 节点 222
SecondaryNameNode 223
HDFS 快照 223
配置到HDFS 的NFSv3 网关 225
容量调度程序背景知识 229
Hadoop 2 的MapReduce 兼容性 231
启用应用主控程序的重新启动功能 231
计算一个节点的承载容量 232
运行Hadoop 1 的应用程序 233
总结和补充资料 235
附录A 本书的网页和代码下载 237
附录B 入门流程图和故障排除指南 239
入门流程图 239
常见的Hadoop 故障排除指南 239
规则1:不要惊慌 239
规则2:安装并使用Ambari 244
规则3:检查日志 244
规则4:简化情况 245
规则5:在互联网上提问 245
其他有用的提示 246
附录C 按主题列出的Apache Hadoop 资源汇总 253
常规的Hadoop 信息 253
Hadoop 安装攻略 253
HDFS 254
示例 255
MapReduce. 255
MapReduce 编程 255
基本工具 256
YARN 应用程序框架 257
Ambari 管理 257
基本的Hadoop 管理 257
附录D 安装Hue Hadoop GUI 259
Hue 安装 259
安装和配置Hue 262
启动Hue 263
Hue 用户界面 263
附录E 安装Apache Spark 267
在集群上安装Spark. 267
在整个集群中启动Spark. 268
在伪分布式的单节点安装版本中安装和启动Spark 270
运行Spark 示例 271