描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302527893
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
第1章 Hadoop简介 1
1.1 Hadoop分布式文件系统 1
1.1.1 高可用性 2
1.1.2 内部DataNode均衡器 4
1.1.3 纠删码 4
1.1.4 端口号 4
1.2 MapReduce框架 5
1.3 YARN 6
1.3.1 机会型容器 7
1.3.2 YARN时间轴服务v.2 7
1.4 其他变化内容 9
1.4.1 最低Java版本 9
1.4.2 Shell脚本重写 9
1.4.3 覆盖客户端的JAR 10
1.5 安装Hadoop 3 10
1.5.1 准备条件 10
1.5.2 下载 10
1.5.3 安装 12
1.5.4 设置无密码ssh 12
1.5.5 设置NameNode 13
1.5.6 启动HDFS 13
1.5.7 设置YARN服务 17
1.5.8 纠删码 18
1.5.9 内部DataNode平衡器 21
1.5.10 安装时间轴服务v.2 21
1.6 本章小结 27
第2章 大数据分析概述 29
2.1 数据分析简介 29
2.2 大数据简介 30
2.2.1 数据的多样性 31
2.2.2 数据的速度 32
2.2.3 数据的容量 32
2.2.4 数据的准确性 32
2.2.5 数据的可变性 33
2.2.6 可视化 33
2.2.7 数值 33
2.2 使用Apache Hadoop的分布式计算 33
2.4 MapReduce框架 34
2.5 Hive 35
2.5.1 下载并解压Hive二进制文件 37
2.5.2 安装Derby 37
2.5.3 使用Hive 39
2.5.4 SELECT语句的语法 41
2.5.5 INSET语句的语法 44
2.4.6 原始类型 44
2.5.7 复杂类型 45
2.5.8 内建运算符和函数 45
2.5.9 语言的功能 50
2.6 Apache Spark 51
2.7 基于Tableau的可视化操作 52
2.8 本章小结 54
第3章 基于MapReduce的大数据处理 55
3.1 MapReduce框架 55
3.1.1 数据集 57
3.1.2 记录读取器 58
3.1.3 映射 59
3.1.4 组合器 59
3.1.5 分区器 60
3.1.6 混洗和排序 60
3.1.7 reducer任务 60
3.1.8 输出格式 61
3.2 MapReduce作业类型 61
3.2.1 SingleMapper作业 63
3.2.2 SingleMapperReducer作业 72
3.2.3 MultipleMappersReducer作业 77
3.2.4 SingleMapperReducer作业 83
3.2.5 应用场景 84
3.3 MapReduce模式 88
3.3.1 聚合模式 88
3.3.2 过滤模式 90
3.3.3 连接模式 91
3.4 本章小结 100
第4章 Python-Hadoop科学计算和大数据分析 101
4.1 安装操作 101
4.1.1 安装Python 101
4.1.2 安装Anaconda 103
4.2 数据分析 110
4.3 本章小结 134
第5章 R-Hadoop统计数据计算 135
5.1 概述 135
5.1.1 在工作站上安装R并连接Hadoop中的数据 135
5.1.2 在共享服务器上安装R并连接至Hadoop 136
5.1.3 利用Revolution R Open 136
5.1.4 利用RMR2在MapReduce内执行R 137
5.2 R语言和Hadoop间的集成方法 138
5.2.1 RHadoop—在工作站上安装R并将数据连接至Hadoop中 139
5.2.2 RHIPE—在Hadoop MapReduce中执行R语言 139
5.2.3 R和Hadoop流 139
5.2.4 RHIVE—在工作站上安装R并连接至Hadoop数据 140
5.2.5 ORCH—基于Hadoop的Oracle连接器 140
5.3 数据分析 140
5.4 本章小结 165
第6章 Apache Spark批处理分析 167
6.1 SparkSQL和DataFrame 167
6.2 DataFrame API和SQL API 171
6.2.1 旋转 176
6.2.2 过滤器 177
6.2.3 用户定义的函数 178
6.3 模式—数据的结构 178
6.3.1 隐式模式 179
6.3.2 显式模式 179
6.3.3 编码器 181
6.4 加载数据集 182
6.5 保存数据集 183
6.6 聚合 183
6.6.1 聚合函数 184
6.6.2 窗口函数 194
6.6.3 ntiles 195
6.7 连接 197
6.7.1 连接的内部工作机制 199
6.7.2 混洗连接 199
6.7.3 广播连接 199
6.7.4 连接类型 200
6.7.5 内部连接 201
6.7.6 左外连接 202
6.7.7 右外连接 203
6.7.8 全外连接 204
6.7.9 左反连接 205
6.7.10 左半连接 206
6.7.11 交叉连接 206
6.7.12 连接的操作性能 207
6.8 本章小结 208
第7章 Apache Spark实时数据分析 209
7.1 数据流 209
7.1.1 “至少一次”处理 211
7.1.2 “最多一次”处理 211
7.1.3 “仅一次”处理 212
7.2 Spark Streaming 214
7.2.1 StreamingContext 215
7.2.2 创建StreamingContext 215
7.2.3 启用StreamingContext 216
7.2.4 终止StreamingContext 216
7.3 fileStream 217
7.3.1 textFileStream 217
7.3.2 binaryRecordsStream 217
7.3.3 queueStream 218
7.3.4 离散流 219
7.4 转换 222
7.4.1 窗口操作 223
7.4.2 有状态/无状态转换 226
7.5 检查点 227
7.5.1 元数据检查点 228
7.5.2 数据检查点 228
7.6 驱动程序故障恢复 229
7.7 与流平台的互操作性(Apache Kafka) 230
7.7.1 基于接收器的方案 230
7.7.2 Direct Stream 232
7.7.3 Structured Streaming 233
7.8 处理事件时间和延迟日期 236
7.9 容错示意图 237
7.10 本章小结 237
第8章 Apache Flink批处理分析 239
8.1 Apache Flink简介 239
8.1.1 无界数据集的连续处理 240
8.1.2 Flink、数据流模型和有界数据集 241
8.2 安装Flink 241
8.3 使用Flink集群UI 248
8.4 批处理分析 251
8.4.1 读取文件 251
8.4.2 转换 254
8.4.3 groupBy 258
8.4.4 聚合 260
8.4.5 连接 261
8.4.6 写入文件 272
8.5 本章小结 274
第9章 Apache Flink流式处理 275
9.1 流式执行模型简介 275
9.2 利用DataStream API进行数据处理 277
9.2.1 执行环境 278
9.2.2 数据源 278
9.2.3 转换 282
9.3 本章小结 300
第10章 大数据可视化技术 301
10.1 数据可视化简介 301
10.2 Tableau 302
10.3 图表类型 313
10.3.1 线状图 314
10.3.2 饼图 314
10.3.3 柱状图 315
10.3.4 热图 316
10.4 基于Python的数据可视化 317
10.5 基于R的数据可视化 319
10.6 大数据可视化工具 320
10.7 本章小结 321
第11章 云计算简介 323
11.1 概念和术语 323
11.1.1 云 323
11.1.2 IT资源 324
11.1.3 本地环境 324
11.1.4 云使用者和云供应商 324
11.1.5 扩展 324
11.2 目标和收益 325
11.2.1 可扩展性的提升 326
11.2.2 可用性和可靠性的提升 326
11.3 风险和挑战 327
11.3.1 安全漏洞 327
11.3.2 减少运营治理控制 328
11.3.3 云提供商之间有限的可移植性 328
11.4 角色和边界 328
11.4.1 云供应商 328
11.4.2 云使用者 328
11.4.3 云服务持有者 328
11.4.4 云资源管理员 329
11.5 云特征 329
11.5.1 按需使用 330
11.5.2 无处不在的访问 330
11.5.3 多租户机制(和资源池机制) 330
11.5.4 弹性 330
11.5.5 监测应用状态 330
11.5.6 弹性计算 331
11.6 云交付模型 331
11.6.1 基础设施即服务 331
11.6.2 平台即服务 331
11.6.3 软件即服务 332
11.6.4 整合云交付模型 332
11.7 云部署模型 333
11.7.1 公共云 333
11.7.2 社区云 334
11.7.3 私有云 334
11.7.4 混合云 334
11.8 本章小结 335
第12章 使用亚马逊Web服务 337
12.1 Amazon Elastic Compute Cloud 337
12.1.1 弹性Web计算 337
12.1.2 对操作的完整控制 338
12.1.3 灵活的云托管服务 338
12.1.4 集成 338
12.1.5 高可靠性 338
12.1.6 安全性 338
12.1.7 经济性 338
12.1.8 易于启动 339
12.1.9 亚马云及其镜像 339
12.2 启用多个AMI实例 340
12.2.1 实例 340
12.2.2 AMI 340
12.2.3 区域和可用区 340
12.2.4 区域和可用区概念 341
12.2.5 区域 341
12.2.6 可用区 341
12.2.7 可用区域 342
12.2.8 区域和端点 342
12.2.9 实例类型 343
12.2.10 Amazon EC2和亚马逊虚拟私有云 343
12.3 AWS Lambda 344
12.4 Amazon S3简介 345
12.4.1 Amazon S3功能 345
12.4.2 全面的安全和协从能力 346
12.4.3 就地查询 346
12.4.4 灵活的管理机制 346
12.4.5 最受支持的平台以及最大的生态系统 347
12.4.6 简单、方便的数据传输机制 347
12.4.7 备份和恢复 347
12.4.8 数据存档 347
12.4.9 数据湖和数据分析 348
12.4.10 混合云存储 348
12.4.11 原生云应用程序数据 348
12.4.12 灾难恢复 348
12.5 Amazon DynamoDB 349
12.6 Amazon Kinesis Data Streams 349
12.6.1 加速日志和数据提要的输入和处理 350
12.6.2 实时度量和报告机制 350
12.6.3 实时数据分析 350
12.6.4 复杂的数据流处理 350
12.6.5 Kinesis Data Streams的优点 350
12.7 AWS Glue 351
12.8 Amazon EMR 352
12.9 本章小结 363
Apache Hadoop是一类流行的大数据处理平台,并可与大多数大数据工具集成,以构建功能强大的数据分析方案。本书将围绕这一点对相关软件展开讨论,同时辅以大量的操作实例。
在本书阅读过程中,读者将会系统学习HDFS、MapReduce、YARN方面的知识,以及如何实现快速、高效的大数据处理方案。此外,本书还将Hadoop与其他开源工具集成,例如Python和R语言,进而分析和可视化数据,同时针对大数据进行统计计算。一旦读者掌握了这些内容,即可尝试在Apache Spark和Apache Flink的基础上应用Hadoop,最终实现实时数据分析和流式处理。除此之外,本书还将讨论如何在云端和端到端管道上利用Hadoop构建数据分析方案,并通过操作实例执行大数据分析任务。
在阅读完本书后,读者将具备基于Hadoop生态系统的分析能力,同时可构建强大的解决方案执行大数据分析,并拥有自己的技术观点。
适用读者
如果读者希望使用Hadoop 3的强大功能为企业或业务构建高性能的分析解决方案,或者您是一名大数据分析新手,那么本书将十分适合于您。另外,本书需要读者具备Java编程方面的基础知识。
本书内容
第1章将介绍Hadoop环境及其核心组件,包括HDFS和MapReduce。
第2章将讨论大型数据集的检测处理过程,从中发现数据的模式,生成相应的报告并采集有价值的内容。
第3章将讨论MapReduce,这也是大多数计算/处理系统中的基本概念。
第4章探讨Python语言,并在此基础上通过Hadoop对大数据进行分析。
第5章介绍了R语言,同时阐述了如何使用R语言并借助于Hadoop执行大数据统计计算。
第6章将考查Apache Spark,同时根据批处理模型使用Spark进行大数据分析。
第7章将对Apache Spark的流式处理模型进行分析,以及如何打造基于流式的实时分析应用程序。
第8章主要介绍Apache Flink,及其基于批处理模型的、针对大数据分析的应用方式。
第9章讨论DataStream API和基于Flink的流处理。其中,Flink用于接收和处理实时事件流,并在Hadoop集群中存储聚合和结果。
第10章考查数据可视化问题,并通过各种工具和技术实现这一功能,例如Tableau。
第11章讲述云计算以及各种概念,例如IaaS、PaaS和SaaS。除此之外,本章还将对云供应商加以简要介绍。
第12章介绍AWS和AWS中的各种服务,这些服务使用Elastic MapReduce(EMR)在AWS云中建立Hadoop集群,这对执行大数据分析非常有用。
软件和硬件环境
本书示例是在64位 Linux 上使用Scala、Java、R和Python语言实现的。另外,还应在机器上安装下列内容(建议使用最新版本):
? Spark 2.3.0(或更高版本)。
? Hadoop 3.1(或更高版本)。
? Flink 1.4。
? Java(JDK和JRE)1.8 。
? Scala 2.11.x(或更高版本)。
? Python 2.7 /3.4 。
? R 3.1 和RStudio 1.0.143。
? Eclipse Mars或Idea IntelliJ(最新版本)。
关于操作系统,最好使用Linux发行版(包括Debian、Ubuntu、Fedora、RHEL和CentOS)。具体来说,例如,对于Ubuntu,建议使用完整的14.04 (LTS) 64位安装、VMWare player 12或Virtual box。此外,还可在Windows(XP/7/8/10)或者macOS X(10.4.7 )上运行代码。
关于硬件配置,可采用Core i3、Core i5(推荐)~Core i7(获得最佳效果)。然而,多核处理将提供更快的数据处理以及较好的可伸缩性。另外,对于单系统模式,至少使用8GB RAM(推荐);单个VM至少使用32GB RAM;对于集群,则至少使用32GB RAM。足够的存储空间可运行繁重的任务(取决于将要处理的数据集大小),最好至少包含50GB的空闲磁盘存储空间(用于独立系统和SQL仓库)。
资源下载
读者可访问http://www.packtpub.com并通过个人账户下载示例代码文件。另外,http://www.packtpub.com/support,注册成功后,我们将以电子邮件的方式将相关文件发与读者。
读者可根据下列步骤下载代码文件:
(1)登录www.packtpub.com并注册我们的网站。
(2)选择SUPPORT选项卡。
(3)单击Code Downloads & Errata。
(4)在Search文本框中输入书名并执行后续命令。
当文件下载完毕后,确保使用下列最新版本软件解压文件夹:
? Windows系统下的WinRAR/7-Zip。
? Mac系统下的Zipeg/iZip/UnRarX。
? Linux系统下的7-Zip/PeaZip。
另外,读者还可访问GitHub获取本书的代码包,对应网址为https://github.com/ PacktPublishing/Big-Data-Analytics-with-Hadoop-3。代码与GitHub存储库将实现同步更新。
此外,读者还可访问https://github.com/PacktPublishing/以了解丰富的代码和视频资源。
除此之外,我们还提供了PDF文件,其中包含了本书所用截图/图表的彩色图像。读者访问http://www.packtpub.com/sites/default/files/downloads/BigDataAnalyticswithHadoop3_ ColorImages.pdf进行下载。
本书约定
代码块则通过下列方式设置:
hdfs dfs -copyFromLocal temperatures.csv /user/normal
代码中的重点内容则采用黑体表示:
Map-Reduce Framework — output average temperature per city name
Map input records=35
Map output records=33
Map output bytes=208
Map output materialized bytes=286
命令行输入或输出如下所示:
$ ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
图标表示较为重要的说明事项。
图标则表示提示信息和操作技巧。
读者反馈和客户支持
欢迎读者对本书的建议或意见予以反馈。
对此,读者可向[email protected]发送邮件,并以书名作为邮件标题。若读者对本书有任何疑问,均可发送邮件至[email protected],我们将竭诚为您服务。
勘误表
尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http://www.packtpub. com/submit-errata,选取对应书籍,单击Errata Submission Form超链接,并输入相关问题的详细内容。
版权须知
一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至[email protected]。
若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问www.packtpub.com/authors。
问题解答
若读者对本书有任何疑问,均可发送邮件至[email protected],我们将竭诚为您服务。
评论
还没有评论。