本书【Hadoop+Spark生态系统操作与实战指南】为读者提供了快速上手Hadoop+Spark的有力指南。通过全面解析Hadoop和Spark的生态系统,本书能够帮助读者迅速了解当今互联网应用极为广泛的集群技术。通过实际操作,读者能够快速学习Hadoop+Spark的大数据技术,掌握其应用。对于那些希望深入了解并应用Hadoop和Spark的读者来说,本书是一本不可或缺的工具书。
Hadoop+Spark生态系统操作与实战指南电子书封面
读者评价
这本书用了大量篇幅写了如何配置 hadoop 等环境,让读者对于架构整体没有一个完整的认识。如果有耐心按照书上的顺序一步一步完成,最后应该能得到正确的实验结果。但是作为一本自称为“指南”的书或许还不够资格。作为大学课堂实验课的伴手书还是可以的。
这本书真的知识和入门的小白,大部分都是概念的讲解,但是还没讲清楚,图片也不清晰,只是对spark 的生态做了一个简单介绍,其实就是概念的介绍,实用性不高,69块钱说实话不是很值!假如你是已经接触了spark 一段时间了的话还是别买这本书,帮助不大!
内容介绍
本书用于Hadoop Spark快速上手,全面解析Hadoop和Spark生态系统,通过原理解说和实例操作每一个组件,让读者能够轻松跨入大数据分析与开发的大门。 全书共12章,大致分为3个部分,第1部分(第1~7章)讲解Hadoop的原生态组件,包括Hadoop、ZooKeeper、HBase、Hive环境搭建与安装,以及介绍MapReduce、HDFS、ZooKeeper、HBase、Hive原理和Apache版本环境下实战操作。第2部分(第8~11章)讲解Spark的原生态组件,包括Spark Core、Spark SQL、Spark Streaming、DataFrame,以及介绍Scala、Spark API、Spark SQL、Spark Streaming、DataFrame原理和CDH版本环境下实战操作,其中Flume和Kafka属于Apache*开源项目也放在本篇讲解。第3部分(第12章)讲解两个大数据项目,包络网页日志离线项目和实时项目,在CDH版本环境下通过这两个项目将Hadoop和Spark原生态组件进行整合,一步步带领读者学习和实战操作。 本书适合想要快速掌握大数据技术的初学者,也适合作为高等院校和培训机构相关专业师生的教学参考书和实验用书。
目录
- 第1章Hadoop概述1
- 第2章Hadoop集群搭建22
- 第3章Hadoop基础与原理56
- 第4章ZooKeeper实战72
- 第5章MapReduce实战88
- 第6章HBase实战122
- 第7章Hive实战141
- 第8章Scala实战162
- 第9章Flume实战207
- 第10章Kafka实战215
- 第11章Spark实战234
- 第12章大数据网站日志分析项目267
至于容错,MapReduce和Spark从两个不同的方向来解决问题。MapReduce使用TaskTracker节点,它为 JobTracker节点提供了心跳(heartbeat)。如果没有心跳,那么JobTracker节点重新调度所有将执行的操作和正在进行的操作,交 给另一个TaskTracker节点。这种方法在提供容错性方面很有效,可是会大大延长某些操作(即便只有一个故障)的完成时间。 Spark使用弹性分布式数据集(RDD),它们是容错集合,里面的数据元素可执行并行操作。RDD可以引用外部存储系统中的数据集,比如共享式文件系统、HDFS、HBase,或者提供Hadoop InputFormat的任何数据源。Spark可以用Hadoop支持的任何存储源创建RDD,包括本地文件系统,或前面所列的其中一种文件系统。 RDD拥有五个主要属性: 分区列表 计算每个分片的函数 依赖其他RDD的项目列表 面向键值RDD的分区程序(比如说RDD是散列分区),这是可选属性 计算每个分片的首选位置的列表(比如HDFS文件的数据块位置),这是可选属性 RDD可能具有持久性,以便将数据集缓存在内存中。这样一来,以后的操作大大加快,最多达10倍。Spark的缓存具有容错性,原因在于如果RDD的任何分区丢失,就会使用原始转换,自动重新计算。
什么是HadoopTM?实际上这个答案Hadoop官网已经给的很明确: Hadoop是Apache软件基金会支持可靠的、可扩展的一个开源的分布式计算框架的工程。(PS:Apache软件基金会真是扛下了开源世界的半壁江山,旗下支持的开源的大数据项目大家有兴趣可以去官网访问一下。) 具体而言,Apache Hadoop软件库是一个允许使用简单编程模型跨计算机集群处理大型数据集合的框架,其设计的初衷是将单个服务器扩展成上千个机器组成的一个集群为大数据提供计算服务,其中每个机器都提供本地计算和存储服务。 Hadoop工程包括以下模块: Hadoop Common:支持其他Hadoop模块的通用工具。 Hadoop Distributed File System(HDFSTM):提供高吞吐量的访问应用数据的一个分布式文件系统。 Hadoop YARN:一种作业调度和集群资源管理的框架。 Hadoop MapReduce:一种基于Yarn来处理大数据集合的系统。 Apache中其他Hadoop相关的项目包括: AmbariTM:一种用于提供、管理和监督Apache Hadoop集群的基于Web UI的且易于使用的Hadoop管理工具。 AvroTM:一种数据序列化系统。 CassandraTM:一种无单点故障的可扩展的分布式数据库。 ChukwaTM:一种用于管理大型分布式系统的数据收集系统。 HBaseTM:一种支持存储大型表的结构化存储的可扩展的分布式数据库。 HiveTM:一种提供数据汇总和特定查询的数据仓库。 MahoutTM:一种可扩展的机器学习和数据挖掘库(Scala语言实现,可结合Spark后端)。 PigTM:一种高级的数据流语言且支持并行计算的执行框架(2017年发布的最新版本0.17.0是添加了Spark上的Pig应用)。 SparkTM:一种用于Hadoop数据的快速通用计算引擎。Spark提供一种支持广泛应用的简单而易懂的编程模型,包括ETL( Extract-Transform-Load)、机器学习、流处理以及图计算。 TezTM:一种建立在Hadoop YARN上数据流编程框架,它提供了一个强大而灵活的引擎来任意构建DAG(Directed-acyclic-graph)任务去处理用于批处理和交互用例的数据。 ZooKeeperTM:一种给分布式应用提供高性能的协同服务系统。