Spark内核设计的艺术:架构设计与实现——前言

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/79001468 前言为什么写这本书         给这本书写前言,让我想起了两年前给《深入理解Spark:核心思想与源码分析》一书写前言的经历。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/79001468

前言

为什么写这本书

         给这本书写前言,让我想起了两年前给《深入理解Spark:核心思想与源码分析》一书写前言的经历。这让我不禁想起崔护的《题都城南庄》,诗的内容是:

去年今日此门中,人面桃花相映红。

人面不知何处去,桃花依旧笑春风。

         Spark从核心思想和架构来看,它依然是那个Spark,但是我已经找了一个新的东家。我的年龄不知不觉中又长了两岁,Spark也在大数据领域从 “新贵”变成了“老人”。Spark的版本从0.X.X到2.X.X所用的时间和我的两年基本相同。

         自从《深入理解Spark:核心思想与源码分析》一书出版后,收到了一些市场的反响,更难得的是得到了很多读者的反馈。一些热心的读者通过微信或者邮件向我指出了很多书中内容的不足之处,包括错别字、错误的描述、代码分析有点像流水账、提纲挈领的内容偏少、代码版本过低等。一些错误在修订的版本中得到了解决,有些修正的内容则单独写博客来补充。在与读者的沟通过程中,也纠正了我对于一些问题的理解偏差。再次深深的感谢广大读者的支持与帮助!

         一些读者对《深入理解Spark:核心思想与源码分析》一书的内容非常肯定,希望能够出第二版,高婧雅编辑也一再“怂恿”我,但是我一直没有写第二版的打算。我当时希望有人能够以更好的方式写一本介绍和分析2.0版本的源码分析书籍,因为我感觉之前的写作方式的确不是很好。在我心中一直有个矛盾——如果源码太少,源码分析的书籍将退化成讲原理的,对于想深入理解实现的读者来说这是不够的。如果源码太多,让人又有堆砌代码或者混篇幅的感觉。很多源码分析的书只简单说说接口或者方法的功能,让人始终有种“雾里看花”的感觉。所以我一直很期待能有更好的方式来写作源码分析类型的书。

         在一年多的等待中,我始终没有发现类似书籍的出现,于是我打算再做一次尝试。本书这次摈弃了《深入理解Spark:核心思想与源码分析》一书按照代码执行流程分析的方式,改为先从整体上介绍一个系统,然后逐个分析每个组件的功能,最后将这些组件之间的关系用流程图的方式串联起来的方式。本书的写作方式依然犯有代码过多的“毛病”,但我还是期待本书能带来一些新的气象。

本书的主要特色

l   按照源码分析的习惯设计,从脚本分析到初始化再到核心内容。整个过程遵循由浅入深的基本思路。

l   每一章先对本章的内容有个总体的介绍,然后深入分析各个组件的实现原理,最后将各个组件之间的关系通过执行流程来展现。

l   本书尽可能的用图来展示原理,加速读者对内容的掌握。

l   本书讲解的很多实现及原理都值得借鉴,能帮助读者提升架构设计、程序设计等方面的能力。

l   本书尽可能保留较多的源码,以便于初学者能够在脱离办公环境的地方(如地铁、公交),也能轻松阅读。

本书面向的读者

         源码阅读是一项苦差事,人力和时间成本都很高,尤其对于刚刚接触Spark的人来说。本书尽可能保留源码,使得分析过程不至于产生跳跃感,目的是降低大多数人的学习门槛。如果你是从事IT工作1~3年的新人或者希望开始学习Spark核心知识的人来说,本书非常适合你。如果你已经对Spark有所了解或者已经使用它,还想进一步提高自己,那么本书更适合你。如果你是一个开发新手,对Java、Linux等基础知识不是很了解的话,本书可能不太适合你。如果你已经对Spark有深入的研究,本书也许可以作为你的参考资料。

    总体说来,本书适合以下人群:

l   已经了解过Spark,但还想深入理解Spark实现原理的人;

l   大数据技术爱好者;

l   对性能优化和部署方案感兴趣的运维工程师和架构师;

l   开源代码爱好者,喜欢研究源码的同学可以从本书学到一些阅读源码的方式方法。

         本书不会教你如何开发Spark应用程序,只拿word count的经典例子做演示。本书会简单介绍Hadoop MapReduce、Hadoop YARN、Mesos、Alluxio(Tachyon)、ZooKeeper、HDFS、Akka、Jetty、Netty,但不会过多介绍这些框架的使用,因为市场上已经有丰富的书籍供读者挑选。本书也不会过多介绍Scala、Java、Shell的语法,读者可以在市场上选择适合自己的书籍阅读。本书将无比适合那些想要破解潘多拉魔盒的人!

如何阅读本书

         本书一共有10章内容,主要包括以下部分:

准备部分(第1 ~ 2章):简单介绍了Spark的环境搭建和基本原理,帮助读者了解一些背景知识。

基础部分(第35章):介绍Spark的基础设施、SparkContext的初始化、Spark执行环境等内容。

核心部分(第69章):这部分是Spark最为核心的部分,包括存储体系、调度系统、计算引擎、部署模式等。

API部分(第10章):这部分主要对Spark的新老API进行对比,对新API进行介绍。

      本书最后的附录中还包括一些内容:附录A介绍的Spark中最常用的工具类Utils;附录BAkka的简介;附录CJetty的简介和工具类JettyUtils的介绍;附录DMetrics库的简介和Metrics中部分API的介绍;附录E演示了Hadoop1.0版本中的word count例子;附录F 介绍了工具类CommandUtils的常用方法;附录G是关于Netty的简介和工具类NettyUtils的介绍;附录H是对Spark中的RPC工具类RpcUtils的介绍。

      为了降低读者阅读理解Spark源码的门槛,本书尽可能保留源码实现。本书以Spark2.1.0版本为主,有兴趣的读者也可按照本书的方式,阅读Spark的最新源码。

 

勘误

         本书内容很多,限于笔者水平有限,书中内容难免有错误之处。在本书出版的任何时间,如果你对本书有任何问题或者意见都可以通过邮箱beliefer@163.com或者博客http://blog.csdn.net/beliefer联系我,给我提交你的建议或者想法,我本人将怀着一颗谦卑之心与大家共同进步。

致谢

    感谢我们生活在信息时代,让我们有机会接触互联网与大数据。感谢父母,多年来在学习、工作及生活上的帮助与支持;感谢妻子在生活中的照顾和谦让。

    感谢高婧雅编辑给予本书出版的大力支持与帮助。

    感谢我在大数据路上的领路人——和仲;感谢热心于技术的王欢在对本书内容提出的宝贵建议;感谢对本书内容进行审阅的余尧尧和马晓波;感谢对本书内容有过帮助的读者朋友们。


关于《Spark内核设计的艺术 架构设计与实现

经过近一年的准备,基于Spark2.1.0版本的《 Spark内核设计的艺术 架构设计与实现》一书现已出版发行,图书如图:


纸质版售卖链接如下:
电子版售卖链接如下:
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
207 6
|
3月前
|
安全 调度 开发者
探索操作系统的心脏:现代内核架构与挑战
【10月更文挑战第7天】 本文深入探讨了现代操作系统内核的复杂性和功能性,从微观角度剖析了内核在系统运行中的核心作用及其面临的主要技术挑战。通过浅显易懂的语言解释专业概念,旨在为读者提供一个关于操作系统内核的全面视角。
55 2
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
97 2
|
1月前
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
2月前
|
架构师 数据挖掘 开发者
架构师的真内核
本文旨在帮助大家深入理解技术、架构和团队领导力的本质,从而获得持续成长的方法。欢迎在文末留言,你觉得架构师需要具备的核心能力是什么?
|
2月前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。
|
2月前
|
缓存 运维 网络协议
深入Linux内核架构:操作系统的核心奥秘
深入Linux内核架构:操作系统的核心奥秘
83 2
|
2月前
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
116 3
|
3月前
|
存储 资源调度 算法
操作系统的心脏:深入理解内核架构与机制####
【10月更文挑战第16天】 本文旨在揭开操作系统最神秘的面纱——内核,通过剖析其架构设计与关键机制,引领读者一窥究竟。在这篇探索之旅中,我们将深入浅出地讨论内核的基本构成、进程管理的智慧、内存分配的策略,以及那至关重要的系统调用接口,揭示它们是如何协同工作,支撑起现代计算机系统的高效运行。这既是一次技术的深潜,也是对“看不见的手”调控数字世界的深刻理解。 ####
73 3
|
3月前
|
架构师 数据挖掘 UED
什么才是架构师的真内核?
技术架构师是在技术领域扮演着关键角色的专业人员。他们在业务需求分析、项目实施、技术架构治理等多个环节中发挥着重要的作用。 技术架构师不仅需要具备高超的专业技能,还需要具备良好的系统思维和认知心态。他们要能在宏观层面上进行技术架构的规划和治理,同时也要在微观层面上带领团队进行业务项目的交付实施。技术架构师是技术人从最初的研发编码,到成长为技术团队的核心骨干、技术主管、高阶技术主管,甚至是技术 CTO 的关键一步,如图 10-1 所示。
411 0