Hadoop大数据分析实战

《Hadoop大数据分析实战》

  • 出版社:清华大学出版社
  • ISBN:9787302527893
  • 版次:1
  • 商品编码:12613682
  • 品牌:清华大学出版社(TsinghuaUniversityPress)
  • 包装:平装
  • 开本:16
  • 出版时间:2019-05-01
  • 用纸:胶版纸
  • 页数:363
  • 字数:480000
基本介绍书籍目录点评信息
  • 书籍内容

    本书详细阐述了与Hadoop 3大数据分析相关的基本解决方案,主要包括Hadoop简介、大数据分析概述、基于MapReduce的大数据处理、Python-Hadoop科学计算和大数据分析、R-Hadoop统计数据计算、Apache Spark批处理分析、Apache Spark实时数据分析、Apache Flink批处理分析、Apache Flink流式处 理、大数据可视化技术、云计算简介、使用亚马Web服务等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
    本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。

    前言/序言

    前 言
    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
    图标表示较为重要的说明事项。
    图标则表示提示信息和操作技巧。
    读者反馈和客户支持
    欢迎读者对本书的建议或意见予以反馈。
    对此,读者可向feedback@packtpub.com发送邮件,并以书名作为邮件标题。若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。
    勘误表
    尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http://www.packtpub. com/submit-errata,选取对应书籍,单击Errata Submission Form超链接,并输入相关问题的详细内容。
    版权须知
    一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至copyright@packtpub.com。
    若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问www.packtpub.com/authors。
    问题解答
    若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。
  • 目 录
    第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
微信公众号

热门文章

更多