书籍作者:尚沙勒·辛格 | ISBN:9787302596875 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:4550 |
创建日期:2023-03-25 | 发布日期:2023-03-25 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《精通Hadoop3》详细阐述了与Hadoop 3相关的基础知识,主要包括Hadoop 3简介、深入理解Hadoop分布式文件系统、YARN资源管理器、MapReduce内部机制、Hadoop中的SQL、实时处理引擎、Hadoop生态圈组件、定义Hadoop中的应用程序、Hadoop中的实时流处理、Hadoop中的机器学习、云端中的Hadoop、Hadoop集群分析、Hadoop中的角色及其执行内容、网络和数据安全、监测Hadoop等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
《精通Hadoop3》阐述了Hadoop生态圈中的高级概念,并通过安全机制、监测机制和数据管理机制构建高性能的Hadoop数据管线。
除此之外,本书还利用Apache Spark 和Flink改进企业级应用程序,并考查Hadoop的内部工作机制,包括一些真实案例的构建方案。同时,我们还将通过Hadoop 3数据平台探讨企业级应用程序的最佳实践方案,其中涉及授权和身份验证机制。随后,我们将学习如何在Hadoop中对数据进行建模、深入了解基于Hadoop 3的分布式计算机制,并查看不同的数据批处理模式。
最后,本书讨论如何高效地继承Hadoop生态圈中的组件,以实现高速、可靠的大数据管线。
本书阐述了Hadoop生态圈中的高级概念,并通过安全机制、监测机制和数据管理机制构建高性能的Hadoop数据管线。
除此之外,本书还利用Apache Spark 和Flink改进企业级应用程序,并考查Hadoop的内部工作机制,包括一些真实案例的构建方案。同时,我们还将通过Hadoop 3数据平台探讨企业级应用程序的最佳实践方案,其中涉及授权和身份验证机制。随后,我们将学习如何在Hadoop中对数据进行建模、深入了解基于Hadoop 3的分布式计算机制,并查看不同的数据批处理模式。
最后,本书讨论如何高效地继承Hadoop生态圈中的组件,以实现高速、可靠的大数据管线。
读者范围
如果读者希望掌握Hadoop的高级概念,进而成为一名大数据的专业人士,那么本书将十分适合您,如果读者已经具备一定的Hadoop基础,并希望进一步强化Hadoop生态圈所涉及的专业知识,本书将十分有用。阅读本书时,读者应具备Java编程和Hadoop方面的基础知识。
本书内容
第1章讨论Hadoop的主要概念并简要描述Hadoop的起源。另外,本章还进一步揭示Hadoop 3的特征,同时还提供Hadoop生态圈和不同Hadoop版本的逻辑概述。
第2章主要讨论Hadoop分布式文件系统及其内部概念。另外,本章还深度介绍HDFS操作、Hadoop 3中HDFS所加入的新功能,以及HDFS缓存机制和HDFS Federation。
第3章介绍YARN资源管理框架,并重点考查提交至YARN中的高效的作业调度机制,同时还简要地介绍YARN中调度器的优缺点。此外,本章还重点讨论Hadoop 3中引入的YARN 3特性,特别是REST API。随后,介绍Apache Slider的架构和内部机制,其中涉及Apache Tez、分布式处理引擎,进而优化运行于YARN上的应用程序。
第4章讨论分布式批处理引擎,即MapReduce。另外,本章还介绍MapReduce的内部概念,并详细考查各项操作步骤。随后,本章重点讨论某些重要的参数和MapReduce中的公共模式。
第5章探讨Hadoop生态圈中一些较为重要的、与SQL类似的引擎。首先考查Presto架构的详细内容,随后介绍某些较为常见的连接器示例。然后,本章考查目前较为流行的查询引擎Hive,并介绍其架构和高级概念。最后,本章考查Impala,一个高速处理引擎及其内部的架构概念。
第6章重点介绍不同的处理引擎,并单独讨论每种处理引擎,包括与Spark框架内部工作机制相关的详细内容,以及弹性分布式数据集(RDD)的概念。另外,本章还考查Apache Flink和Apache Storm/Heron的内部机制。
第7章探讨Hadoop平台上所使用的一些重要工具,包括用于ETL操作的Apache Pig及其架构中的一些概念和操作。其间涉及Apache Kafka和Apache Flume的详细内容。另外,Apache HBase也是本章讨论的重点。
第8章首先介绍一些与文件格式相关的高级概念,随后重点讨论数据压缩和序列化概念。接下来,本章依次讨论数据处理、数据访问以及相关示例。
第9章主要关注Hadoop中微批量应用程序的设计和实现。本章讨论如何执行流数据摄入,以及消息队列所扮演的角色。此外,本章还进一步解释某些通用的数据处理模式,以及低延迟设计方面的一些思考。此类概念将与实时和微批量处理示例结合使用。
第10章学习如何在Hadoop平台上实现设计和搭建机器学习应用程序,并尝试处理Hadoop中常见的一些机器学习挑战性问题和解决方案。另外,本章还介绍不同的机器学习库和处理引擎、机器学习中的一些常见操作步骤,并通过具体学习用例加以讲解。
第11章主要介绍云端的Hadoop操作,包括与Hadoop生态圈在云端的表现方式相关的详细信息、如何管理云端的资源、如何创建云端中的数据管线,以及如何确保云之间的高可用性。
第12章介绍对Hadoop集群进行基准测试和分析的工具和技术。除此之外,本章还考查不同Hadoop负载的分析方法。
第13章讨论Hadoop集群的安全机制,包括Hadoop安全的基本概念、实现和设计Hadoop的权限和验证机制。
第14章是第13章的扩展内容,包括Hadoop网络和数据安全的某些高级概念、网络分段、边界安全以及行/列级别的安全。此外,本章还讨论加密Hadoop中的移动数据和静止数据。
第15章介绍Hadoop监测机制的基本内容。本章被划分为两个主要部分。其中,第一部分讨论通用的Hadoop监测机制,第二部分则关注识别安全漏洞的特定监测机制。
背景知识
设置Hadoop并不需要过多的硬件配置。具体来说,最低配置是一台机器/虚拟机;而3台机器则是推荐配置方案。
这里,读者应具备基本的Java应用程序编写和运行经验,以及某些开发工具的使用经验,如Eclipse。
下载示例代码文件
读者可访问http://www.packt.com并通过个人账户下载本书的示例代码文件。在http:// www.packt.com/support网站注册成功后,我们将以电子邮件的方式将相关文件发与读者。
读者可根据下列步骤下载代码文件。
(1)登录www.packt.com并在网站注册。
(2)选择Support选项卡。
(3)单击CODE DOWNLOADS & ERRATA。
(4)在Search文本框中输入本书英文名称的一部分Mastering Hadoop 3并执行后续命令。
当文件下载完毕后,确保使用下列最新版本软件解压文件夹。
? Windows系统下的WinRAR/7-Zip。
? Mac系统下的Zipeg/iZip/UnRarX。
? Linux系统下的7-Zip/PeaZip。
另外,读者还可访问GitHub获取本书的代码包,对应网址为https://github.com/ PacktPublishing/Mastering-Hadoop-3。
此外,读者还可访问https://github.com/PacktPublishing/网站,以了解丰富的代码和视频资源。
下载彩色图像
读者可访问https://www.packtpub.com/sites/default/files/downloads/9781788620444_ ColorImages.pdf下载本书的PDF文件,其中包含了书中展示的屏幕截图和图表的彩色图像。
代码操作
读者可访问http://bit.ly/2XvW2SD链接查看运行代码的视频内容。
本书约定
本书在文本内容方面包含以下约定。
(1)代码块则通过下列方式设置。
(2)代码中的重点内容则采用粗体表示,示例如下。
(3)任何命令行输入或输出都采用如下所示的粗体代码形式。
hdfs dfsadmin -fetchImage /home/packt
(4)本书还使用了以下两个图标。
图标表示较为重要的说明事项。
图标表示提示信息和操作技巧。
读者反馈和客户支持
欢迎读者对本书提出建议或意见并予以反馈。
若读者对本书有任何疑问,可向[email protected]发送邮件,并以书名作为邮件标题。我们将竭诚为您服务。
勘误表
尽管我们希望做到尽善尽美,但疏漏在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问www.packt.com/submit-errata,选取对应书籍,输入并提交相关问题的详细内容。
版权须知
一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知我们网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至[email protected]。
若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问authors.packtpub.com。
第1部分 Hadoop 3简介
第1章 Hadoop 3简介 3
1.1 Hadoop起源和时间轴 3
1.1.1 Hadoop的起源 4
1.1.2 时间轴 5
1.2 Hadoop 3及其特性 7
1.3 Hadoop逻辑视图 8
1.4 Hadoop发行版本 10
1.4.1 本地版本 11
1.4.2 云版本 11
1.5 回顾 12
1.6 本章小结 12
第2章 深入理解Hadoop分布式文件系统 13
2.1 技术需求 13
2.2 定义HDFS 13
2.3 深入研究HDFS体系结构 14
2.3.1 HDFS逻辑结构 15
2.3.2 数据分组的概念 18
2.3.3 HDFS通信体系结构 19
2.4 NameNode内部机制 21
2.5 数据本地性和机架感知 22
2.6 DataNode内部机制 24
2.7 Quorum Journal Manager(QJM) 25
2.8 Hadoop 3.x中的高可用性 26
2.9 数据管理 27
2.9.1 元数据管理 28
2.9.2 使用二级NameNode的检查点 31
2.9.3 数据集成 32
2.9.4 HDFS快照 32
2.9.5 数据平衡机制 33
2.9.6 均衡器的最佳应用方案 35
2.10 HDFS写入、读取操作 36
2.10.1 写入工作流 36
2.10.2 读取工作流 38
2.10.3 短路读取 40
2.11 管理Hadoop 3.x中的磁盘倾斜数据 41
2.12 HDFS中的延迟持久化写入操作 42
2.13 Hadoop 3.x中的纠删码 43
2.13.1 纠删码的优点 45
2.13.2 纠删码的缺点 45
2.14 HDFS公共接口 45
2.14.1 HDFS读取操作 46
2.14.2 HDFS写入操作 48
2.14.3 HDFSFileSystemWrite.java文件 49
2.14.4 HDFS删除操作 50
2.15 HDFS命令参考 50
2.15.1 文件系统命令 50
2.15.2 分布式复制 52
2.15.3 管理命令 53
2.16 回顾 54
2.17 本章小结 54
第3章 YARN资源管理器 55
3.1 YARN体系结构 55
3.1.1 资源管理器组件 58
3.1.2 节点管理器核心 60
3.2 YARN作业调度机制简介 60
3.3 FIFO调度器 61
3.4 计算能力调度器 61
3.5 公平调度器 63
3.5.1 调度队列 63
3.5.2 配置公平调度器 64
3.6 资源管理器的高可用性 65
3.6.1 资源管理器高可用性的体系结构 66
3.6.2 配置资源管理器高可用性 67
3.7 节点标记 69
3.8 Hadoop 3.x中的YARN时间轴服务器 75
3.9 Hadoop 3.x中的机会型容器 77
3.10 YARN中的Docker容器 79
3.10.1 配置Docker容器 80
3.10.2 运行Docker镜像 80
3.10.3 运行容器 80
3.11 YARN REST API 81
3.11.1 资源管理API 81
3.11.2 节点管理器REST API 85
3.12 YARN命令参考 86
3.12.1 用户命令 87
3.12.2 应用程序命令 87
3.12.3 日志命令 88
3.12.4 管理员命令 89
3.13 本章小结 90
第4章 MapReduce内部机制 91
4.1 技术需求 91
4.2 深入了解Hadoop MapReduce框架 91
4.3 YARN和MapReduce 95
4.4 Hadoop框架中的MapReduce工作流 97
4.5 常见的MapReduce模式 100
4.5.1 求和模式 100
4.5.2 过滤模式 112
4.5.3 连接模式 116
4.5.4 复合连接 123
4.6 MapReduce用例 126
4.6.1 MovieRatingMapper 127
4.6.2 MovieRatingReducer 128
4.6.3 MovieRatingDriver 128
4.7 优化MapReduce 130
4.7.1 硬件配置 130
4.7.2 操作系统调试 131
4.7.3 优化技术 132
4.7.4 运行期配置 133
4.7.5 文件系统优化 133
4.8 本章小结 134
第2部分 Hadoop生态圈
第5章 Hadoop中的SQL 137
5.1 技术需求 137
5.2 Presto 137
5.2.1 Presto体系结构 138
5.2.2 安装Presto并执行基本的查询操作 139
5.2.3 函数 142
5.2.4 Presto连接器 144
5.3 Hive 147
5.3.1 Apache Hive体系结构 148
5.3.2 安装和运行Hive 149
5.3.3 Hive查询 150
5.3.4 选择文件格式 154
5.3.5 HCatalog简介 156
5.3.6 HiveServer2简介 157
5.3.7 Hive UDF 157
5.3.8 理解Hive中的ACID 161
5.3.9 分区机制和分桶机制 166
5.3.10 最佳实践 167
5.4 Impala 168
5.4.1 Impala体系结构 168
5.4.2 了解Impala接口和查询 170
5.4.3 Impala实战 171
5.4.4 加载CSV文件中的数据 173
5.4.5 最佳实践方案 175
5.5 本章小结 176
第6章 实时处理引擎 177
6.1 技术需求 177
6.2 Spark 177
6.2.1 Apache Spark内部机制 178
6.2.2 弹性分布式数据集 180
6.2.3 安装并运行第一个Spark作业 182
6.2.4 累加器和广播变量 188
6.2.5 理解数据框和数据集 189
6.2.6 Spark集群管理器 192
6.2.7 最佳实践 193
6.3 Apache Flink 195
6.3.1 Flink体系结构 195
6.3.2 Apache Flink生态圈组件 196
6.3.3 数据流和数据集API 198
6.3.4 表API 201
6.3.5 最佳实践 203
6.4 Storm/Heron 204
6.4.1 Storm/Heron体系结构 205
6.4.2 理解Storm Trident 210
6.4.3 Storm集成 211
6.4.4 最佳实践 212
6.5 本章小结 212
第7章 Hadoop生态圈组件 213
7.1 技术需求 213
7.2 Pig 213
7.2.1 Apache Pig体系结构 214
7.2.2 安装并运行Pig 216
7.2.3 Pig Latin和Grunt 217
7.2.4 编写Pig中的UDF 218
7.2.5 Pig和Hive 221
7.2.6 最佳实践 222
7.3 HBase 222
7.3.1 HBase体系结构及其概念 223
7.3.2 CAP理论 225
7.3.3 HBase操作机器示例 227
7.3.4 安装 230
7.3.5 最佳实践 232
7.4 Kafka 233
7.4.1 Apache Kafka体系结构 234
7.4.2 安装和运行Apache Kafka 236
7.4.3 生产者和使用者的内部机制 238
7.4.4 编写生产者和使用者应用程序 241
7.4.5 Kafka的ETL连接 244
7.4.6 最佳实践 248
7.5 Flume 249
7.5.1 Apache Flume体系结构 249
7.5.2 深入理解源、通道和接收器 251
7.5.3 Flume拦截器 265
7.5.4 用例—Twitter数据 271
7.5.5 最佳实践 273
7.6 本章小结 274
第3部分 Hadoop的实际应用
第8章 定义Hadoop中的应用程序 277
8.1 技术需求 277
8.2 文件格式 277
8.2.1 了解文件格式 278
8.2.2 文本 279
8.2.3 序列文件 279
8.2.4 Avro 282
8.2.5 优化的行和列(ORC) 284
8.2.6 Parquet 285
8.3 数据压缩 285
8.3.1 Hadoop中的数据压缩类型 286
8.3.2 压缩格式 289
8.4 序列化 290
8.5 数据摄取 290
8.5.1 批量摄取 291
8.5.2 宏批处理摄取 292
8.5.3 实时摄取 293
8.6 数据处理 294
8.6.1 批处理 294
8.6.2 微批处理 296
8.6.3 实时处理 297
8.7 常见的批处理模式 298
8.7.1 缓时变维度 298
8.7.2 重复记录和小型文件 300
8.7.3 实时查找 301
8.8 针对编排的Airflow 302
8.9 数据治理 303
8.9.1 数据治理的主要内容 303
8.9.2 元数据管理 304
8.9.3 数据生命周期管理 305
8.9.4 数据分类 306
8.10 本章小结 307
第9章 Hadoop中的实时流处理 309
9.1 技术需求 309
9.2 流式数据集 309
9.3 流数据摄取 310
9.3.1 Flume中基于事件的数据摄取 310
9.3.2 Kafka 311
9.4 常见的流数据处理模式 313
9.5 流式设计 314
9.5.1 延迟 315
9.5.2 数据可用性、一致性和安全性 315
9.5.3 无界数据源 316
9.5.4 数据查找 316
9.5.5 数据格式 317
9.5.6 序列化数据 317
9.5.7 并行处理机制 317
9.5.8 无序事件 318
9.5.9 消息传递语义 318
9.6 微批处理用例 319
9.7 实时处理案例 328
9.7.1 主代码 333
9.7.2 执行代码 344
9.8 本章小结 345
第10章 Hadoop中的机器学习 347
10.1 技术需求 347
10.2 机器学习步骤 347
10.3 常见的机器学习挑战 348
10.4 Spark机器学习 349
10.4.1 转换器函数 350
10.4.2 评估器 351
10.4.3 Spark ML管线 351
10.5 Hadoop和R 352
10.6 Mahout 353
10.7 Spark中的机器学习案例 354
10.8 本章小结 358
第11章 云端中的Hadoop 359
11.1 技术需求 359
11.2 云端Hadoop的逻辑视图 359
11.3 网络 361
11.3.1 区域和可用区 361
11.3.2 VPC和子网 362
11.3.3 安全组和防火墙规则 363
11.3.4 AWS操作示例 364
11.4 管理资源 370
11.5 数据管线 374
11.5.1 Amazon数据管线 375
11.5.2 Airflow 375
11.5.3 Airflow组件 376
11.5.4 数据管线的DAG示例 376
11.6 高可用性(HA) 379
11.6.1 服务器故障 379
11.6.2 云存储高可用性 381
11.7 本章小结 382
第12章 Hadoop集群分析 383
12.1 基准测试和分析简介 383
12.2 HDFS 385
12.3 NameNode 386
12.3.1 NNBench 386
12.3.2 NNThroughputBenchmark 387
12.3.3 合成加载生成器 389
12.4 YARN 392
12.5 Hive 393
12.5.1 TPC-DS 393
12.5.2 TPC-H 394
12.6 混合工作负载 395
12.6.1 Rumen 395
12.6.2 Gridmix 396
12.7 本章小结 397
第4部分 Hadoop的安全机制
第13章 Hadoop中的角色及其执行内容 401
13.1 Hadoop安全问题的各种因素 401
13.2 系统安全 402
13.3 Kerberos验证机制 403
13.3.1 Kerberos的优点 404
13.3.2 Kerberos验证流 404
13.4 用户权限 406
13.4.1 Ranger 407
13.4.2 Sentry 408
13.5 Hadoop 3.0中的安全特征列表 409
13.6 本章小结 411
第14章 网络和数据安全 413
14.1 Hadoop网络安全 413
14.1.1 隔离不同类型的网络 413
14.1.2 网络防火墙 415
14.1.3 Hadoop服务的网络边界安全工具 415
14.2 加密技术 417
14.2.1 传输数据加密 417
14.2.2 静态数据加密 418
14.3 数据屏蔽机制 419
14.4 过滤机制 420
14.4.1 行级别过滤机制 420
14.4.2 列级别过滤机制 421
14.5 本章小结 421
第15章 监测Hadoop 423
15.1 通用监测机制 423
15.1.1 HDFS指标 423
15.1.2 YARN指标 425
15.1.3 ZooKeeper指标 426
15.1.4 Apache Ambari 426
15.2 安全监测机制 427
15.2.1 安全信息和事件管理 427
15.2.2 SIEM的工作方式 428
15.2.3 入侵检测系统 429
15.2.4 入侵预防系统 430
15.3 本章小结 430