Spork 大数据处理技术 夏俊鸾 刘旭晖 邵赛赛 程浩史鸣飞 黄洁 著 電子工紫出版社 Publishing House of Electronics Industry
序 2009年的时候,Netflix公司举办了一个叫作Netflix Prize的推荐算法比赛。这 个比赛匿名公布了Netflix五十万用户对近两万部电影的一亿个评分数据,希望参赛 者能够开发出更好的推荐算法,以提高推荐系统的质量。这个比赛的奖金有一百万 美元。一百万美元看似很多,但是和一个更好的推荐算法给Ntix带来的效益相比, 实则九牛一毛。 高昂的奖金和Ntix提供的真实数据吸引了不少的参赛者,其中也包括了来自 加州大学伯克利分校(UC Berkeley)的博士生Lester Mackey。Lester师从机器学习 领域泰斗Michael Jordan,在一个叫作AMPLab的大数据实验室里进行博士研究。 AMPLab和大多数学术界实验室不同的地方在于实验室内有多个教授和他们带领的 学生一起合作。这些研究人员来自不同的领域,包括机器学习、数据库、计算机网 络、分布式系统等。当时,要想提高算法研究迭代的效率,需要利用多台机器的分 布式建模。在尝试了当时业界最流行的Hadoop MapReduce后,Lester发现自己的时 间并不是花在提高算法效率上,而是耗费在MapReduce的编程模型和低效的执行模 式上。这个时候,他向实验室内部的另外一名进行分布式系统研究的学生Matei Zaharia求助。 Spark大数据处理技术
目 录 第1章Spark系统概述 01 1.1大数据处理框架 1.2 Spark大数据处理框架 ,3 1.2.1RDD表达能力 3 1.2.2 Spark子系统 4 13小结… 7 第2章Spark RDD及编程接口 9 2.1 Spark程序“Hello World" 9 2.2 Spark RDD......... 12 2.2.1RDD分区(partitions) 13 2.2.2RDD优先位置(preferredLocations) 13 2.2.3RDD依赖关系(dependencies) .l5 2.2.4RDD分区计算(compute) 19 2.2.5RDD分区函数(partitioner) 20 2.3创建操作 23 2.3.1集合创建操作 23 2.3.2存储创建操作 23 2.4转换操作 26 Spark大数据处理技术
X目录 2.4.1RDD基本转换操作 26 2.4.2键值RDD转换操作 35 2.4.3再论RDD依赖关系 43 2.5控制操作(control operation) 46 2.6 行动操作(action operation) 47 2.6.1集合标量行动操作… 47 2.6.2存储行动操作 52 2.7 小结… 56 第3章Spark运行模式及原理 .57 3.1 Spark运行模式概述 57 3.1.1 Spark运行模式列表… 57 3.l.2 Spark基本工作流程 44 58 313相关基本类… 59 3.2L0cal模式 62 3.2.1部署及程序运行… 62 3.2.2内部实现原理 63 3.3 Standalone模式 64 3.3.1部署及程序运行… .64 3.3.2 内部实现原理 67 3.4 Local cluster模式 68 3.4.1部署及程序运行 68 3.4.2内部实现原理 69 3.5 Mesos模式… 69 3.5.1部署及程序运行… 69 3.52内部实现原理 70 3.6 YARN standalone/YARN cluster模式,. 72 3.6.1部署及程序运行 72 3.62内部实现原理 75 3.7 YARN client模式… …76 3.7.1 部署及程序运行 76 3.7.2内部实现原理 …77 Spark大数据处理技术
xIl 3.8各种模式的实现细节比较… 78 3.8.1环境变量的传递 78 3.8.2JAR包和各种依赖文件的分发 80 3.83任务管理和序列化 82 3.8.4用户参数配置 83 3.8.5用户及权限控制 84 3.9 Spark1.0版本之后的变化 85 3.10小结… 86 第4章 Spark调度管理原理 .87 4.1 Spark作业调度管理概述 87 4.2 Spark调度相关基本概念 88 4.3 作业调度模块顶层逻辑概述 89 4.4作业调度具体工作流程 92 4.4.1调度阶段的拆分 94 4.4.2调度阶段的提交.… 97 4.4.3任务集的提交.… 99 4.4.4完成状态的监控 99 4.4.5任务结果的获取… 101 4.5 任务集管理模块详解 102 4.6 调度池和调度模式分析… 104 4.7 其他调度相关内容…… 106 4.7.1 Spark应用之间的调度关系 106 4.7.2调度过程中的数据本地性问题 106 4.8小结… 107 第5章 Spark的存储管理 109 5.1存储管理模块整体架构 109 5.1.1通信层架构.… 110 5.1.2通信层消息传递.… 112 5.13注册存储管理模块 113 5.1.4存储层架构… 114 Spark大数据处理技术