这本书系统地讲解了利用Hadoop和Spark及其生态系统里的一系列工具进行大数据分析的方法,配套详细的实现示例。书中详实的参考内容使读者能够快速掌握大数据分析基础架构及其实施方法。无论是对于初学者还是有一定经验的从业人员来说,都是一本十分有价值的参考书籍。通过阅读本书,读者可以深入理解大数据分析的概念、原理和技术。书中提供的大量实例使读者能够跟随教程进行实际操作,从而更好地掌握数据分析的实践技巧。这本书对于那些希望学习和应用Hadoop和Spark进行大数据分析的人来说,是一个必备的指南。
Spark与Hadoop大数据分析 电子书封面
读者评价
数据科学家参考指南,深度剖析了如何利用高效的Spark提升Hadoop生态系统的实时性,提升大数据处理能力
内容介绍
Spark与Hadoop大数据分析比较系统地讲解了利用Hadoop和Spark及其生态系统里的一系列工具进行大数据分析的方法,既涵盖ApacheSpark和Hadoop的基础知识,又深入探讨所有Spark组件——SparkCore、SparkSQL、DataFrame、DataSet、普通流、结构化流、MLlib、Graphx,以及Hadoop的核心组件(HDFS、MapReduce和Yarn)等,并配套详细的实现示例,是快速掌握大数据分析基础架构及其实施方法的详实参考。
全书共10章,第1章从宏观的角度讲解大数据分析的概念,并介绍在Hadoop和Spark平台上使用的工具和技术,以及一些*常见的用例;第2章介绍Hadoop和Spark平台的基础知识;第3章深入探讨并学习Spark;第4章主要介绍DataSourcesAPI、DataFrameAPI和新的DatasetAPI;第5章讲解如何用SparkStreaming进行实时分析;第6章介绍Spark和Hadoop配套的笔记本和数据流;第7章讲解Spark和Hadoop上的机器学习技术;第8章介绍如何构建推荐系统;第9章介绍如何使用GraphX进行图分析;第10章介绍如何使用SparkR。
目录
- 第1章 从宏观视角看大数据分析 1
- 第2章 Apache Hadoop和Apache Spark入门 13
- 第3章 深入剖析Apache Spark 37
- 第4章 利用Spark SQL、Data-Frame和Dataset进行大数据分析 69
- 第5章 利用Spark Streaming和Structured Streaming进行实时分析 102
- 第6章 利用Spark和Hadoop的笔记本与数据流 130
- 第7章 利用Spark和Hadoop进行机器学习 153
- 第8章 利用Spark和Mahout构建推荐系统 171
- 第9章 利用GraphX进行图分析 190
- 第10章 利用SparkR进行交互式分析
Hadoop框架的主要模块包括如下: Hadoop Common Hadoop分布式文件系统(HDFS) Hadoop YARN Hadoop MapReduce 虽然上述四个模块构成了Hadoop的核心,不过还有其他几个模块。这些模块包括:Ambari、Avro、Cassandra、Hive、 Pig、Oozie、Flume和Sqoop,它们进一步增强和扩展了Hadoop的功能。 Spark确实速度很快(最多比Hadoop MapReduce快100倍)。Spark还可以执行批量处理,然而它真正擅长的是处理流工作负载、交互式查询和机器学习。 相比MapReduce基于磁盘的批量处理引擎,Spark赖以成名之处是其数据实时处理功能。Spark与Hadoop及其模块兼容。实际上,在Hadoop的项目页面上,Spark就被列为是一个模块。 Spark有自己的页面,因为虽然它可以通过YARN(另一种资源协调者)在Hadoop集群中运行,但是它也有一种独立模式。它可以作为 Hadoop模块来运行,也可以作为独立解决方案来运行。 MapReduce和Spark的主要区别在于,MapReduce使用持久存储,而Spark使用弹性分布式数据集(RDDS)。 性能 Spark之所以如此快速,原因在于它在内存中处理一切数据。没错,它还可以使用磁盘来处理未全部装入到内存中的数据。 Spark的内存处理为来自多个来源的数据提供了近乎实时分析的功能:营销活动、机器学习、物联网传感器、日志监控、安全分析和社交媒体网站。另 外,MapReduce使用批量处理,其实从来就不是为惊人的速度设计的。它的初衷是不断收集来自网站的信息,不需要这些数据具有实时性或近乎实时性。 易用性 支持Scala(原生语言)、Java、Python和Spark SQL。Spark SQL非常类似于SQL 92,所以几乎不需要经历一番学习,马上可以上手。 Spark还有一种交互模式,那样开发人员和用户都可以获得查询和其他操作的即时反馈。MapReduce没有交互模式,不过有了Hive和Pig等附加模块,采用者使用MapReduce来得容易一点。 成本 “Spark已证明在数据多达PB的情况下也轻松自如。它被用于在数量只有十分之一的机器上,对100TB数据进行排序的速度比Hadoop MapReduce快3倍。”这一成绩让Spark成为2014年Daytona GraySort基准。 兼容性 MapReduce和Spark相互兼容;MapReduce通过JDBC和ODC兼容诸多数据源、文件格式和商业智能工具,Spark具有与MapReduce同样的兼容性。 数据处理 MapReduce是一种批量处理引擎。MapReduce以顺序步骤来操作,先从集群读取数据,然后对数据执行操作,将结果写回到集群,从集群读 取更新后的数据,执行下一个数据操作,将那些结果写回到结果,依次类推。Spark执行类似的操作,不过是在内存中一步执行。它从集群读取数据后,对数据 执行操作,然后写回到集群。 Spark还包括自己的图形计算库GraphX。GraphX让用户可以查看与图形和集合同样的数据。用户还可以使用弹性分布式数据集(RDD),改变和联合图形,容错部分作了讨论。