《基于Hadoop与Spark的大数据开发实战》是一本内容丰富、实用性强的书籍,该书在知识点的选择上注重核心实用,紧跟互联网时代的发展趋势,让读者能够实现终身学习,该书以企业需求为设计导向,以任务驱动的讲解方式,使得读者能够更快地理解和掌握大数据技术,该书以案例为主线组织知识点,通过实战项目的方式来提升技术水平,让读者能够将知识运用到实践中,最重要的是,该书充分考虑了学习者的认知曲线,采用由浅入深的讲解方式,边讲边练,使得读者能够更好地理解和应用所学的知识,该书综合了理论与实践,有助于读者快速掌握Hadoop与Spark这两个关键技术,并能够应用于大数据开发实战中。
内容介绍
大数据技术让我们以一种前所未有的方式,对海量数据进行分析,从中获得有巨大价值的产品和服务,*终形成变革之力。本书围绕Hadoop和Spark两个主流大数据技术进行讲解,主要内容包括Hadoop环境配置、Hadoop分布式文件系统(HDFS)、Hadoop分布式计算框架MapReduce、Hadoop资源调度框架YARN与Hadoop新特性、Hadoop分布式数据库HBase、数据仓库Hive、大数据离线处理辅助系统、Spark Core、Spark SQL、Spark Streaming等知识。 本书紧密结合实际应用,运用大量案例说明和实践,提炼含金量十足的开发经验。另外,本书配以多元的学习资源和支持服务,包括视频教程、案例素材下载、学习交流社区、讨论组等学习内容,为读者带来全方位的学习体验。
目录
- 序言
- 前言
- 关于引用作品的版权声明
- 第 1章Hadoop初体验 1
- 任务1初识大数据 2
- 任务2初识Hadoop 3
- 任务3安装Hadoop平台 9
- 本章总结 34
- 本章练习 34
- 第 2章Hadoop分布式文件系统 35
- 任务1HDFS入门 36
- 任务2HDFS基本操作 41
- 任务3HDFS运行原理 48
- 任务4HDFS高级知识 53
- 本章总结 65
- 本章练习 66
- 第3章Hadoop分布式计算框架 67
- 任务1认识MapReduce编程模型 68
- 任务2MapReduce应用开发 75
- 任务3MapReduce高级应用 92
- 本章总结 113
- 本章练习 113
- 第4章Hadoop新特性 115
- 任务1初识YARN 116
- 任务2了解HDFS新特性 121
- 任务3了解YARN新特性 135
- 本章总结 139
- 本章练习 139
- 第5章Hadoop分布式数据库 141
- 任务1认识HBase 142
- 任务2HBase Shell操作 155
- 任务3HBase编程 162
- 本章总结 175
- 本章练习 175
- 第6章Hadoop综合实战——音乐排行榜 177
- 任务1MapReduce与HBase的集成 178
- 任务2HBase MapReduce API 182
- 任务3实现音乐排行榜 197
- 本章总结 207
- 本章练习 207
- 第7章数据仓库Hive 209
- 任务1Hive基础 210
- 任务2掌握Hive操作 214
- 任务3Hive高级应用 223
- 本章总结 232
- 本章练习 232
- 第8章大数据离线处理辅助系统 233
- 任务1认识并使用数据迁移框架Sqoop 234
- 任务2使用Azkaban实现工作流调度 250
- 本章总结 259
- 本章练习 259
- 第9章Spark基础 261
- 任务1Spark入门 262
- 任务2Scala基础 267
- 任务3编译Spark 281
- 任务4Spark初体验 284
- 本章总结 286
- 本章练习 286
- 第 10章Spark Core 287
- 任务1Spark RDD 288
- 任务2RDD高级应用 297
- 任务3基于RDD的Spark应用程序开发 303
- 本章总结 309
- 本章练习 309
- 第 11章Spark SQL 311
- 任务1认识Spark SQL 312
- 任务2Spark SQL编程基础 315
- 任务3Spark SQL编程进阶 325
- 本章总结 334
- 本章练习 335
- 第 12章Spark Streaming 337
- 任务1流处理框架及Spark Streaming 338
- 任务2使用Spark Streaming编程 343
- 任务3Spark Streaming高级应用 352
- 本章总结 363
- 本章练习 363
- 附录 365
首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施: 它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着您不需要购买和维护昂贵的服务器硬件。 同时,Hadoop还会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它并不会进行分布式数据的存储。 两者可合可分 Hadoop除了提供为大家所共识的HDFS分布式数据存储功能之外,还提供了叫做MapReduce的数据处理功能。所以这里我们完全可以抛开Spark,使用Hadoop自身的MapReduce来完成数据的处理。 相反,Spark也不是非要依附在Hadoop身上才能生存。但如上所述,毕竟它没有提供文件管理系统,所以,它必须和其他的分布式文件系统进行集成才能运作。这里我们可以选择Hadoop的HDFS,也可以选择其他的基于云的数据系统平台。但Spark默认来说还是被用在Hadoop上面的,毕竟,大家都认为它们的结合是最好的。
Hadoop是一个开源的可运行于大规模集群上的分布式文件系统和运行处理基础框架。其擅长于在廉价机器搭建的集群上进行海量数据(结构化与非结构化)的存储与离线处理。Hadoop就是一门用来处理大数据的技术,就是用来解决上述提到的分布式计算里面的5个技术难题的。 Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene 的子 项目 Nutch 的一部分正式引入。它受到最先由 Google Lab 开发的 MapReduce 和 Google File System 的启发。2006 年 3 月份,MapReduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。 Hadoop 是最受欢迎的在 Internet 上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。例如,如果您要 grep 一个 10TB 的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间。但是 Hadoop 在设计时就考虑到这些问题,因此能大大提高效率。