云计算分布式大数据 Spark 实战高手之路
第一章:构建 Spark 集群
Life is short, you need Spark!
从零开始
云计算分布式大数据 Spark 实战高手之路
不需要任何基础,带领您无痛入门 Spark
王家林著
Spark 亚太研究院系列丛书 版权所有
年度推荐书籍
1 / 58
QQ 交流群:317540673
Spark 从入门到精通
Life is short, you need spark!
伴随着大数据相关技术和产业的逐
步成熟,继 Hadoop 之后,Spark 技术以
其无可比拟的优势,发展迅速,将成为替
代 Hadoop 的下一代云计算、大数据核心
技术。
本书特点
云计算分布式大数据 Spark 实
战高手之路三部曲之第一部
网络发布版为图文并茂方式,
边学习,边演练
不需要任何前置知识,从零开
始,循序渐进
本书作者
Spark 亚太研究院院长和首席专家,
中国目前唯一的移动互联网和云计算大数
据集大成者。在 Spark、Hadoop、Android
等方面有丰富的源码、实务和性能优化经
验。彻底研究了 Spark 从 0.5.0 到 0.9.1
共 13 个版本的 Spark 源码,并已完成
2014 年 5 月 31 日发布的 Spark1.0 源码
研究。
Hadoop 源码级专家,曾负责某知名
公司的类 Hadoop 框架开发工作,专注于
Hadoop 一站式解决方案的提供,同时也
是云计算分布式大数据处理的最早实践者
之一。
“真相会使你获得自由。”
— 耶稣《圣经》约翰 8:32KJV
“所有人类的不幸都来源于不能直面事实。”
— 释迦摩尼
“道法自然”
— 老子《道德经》第 25 章
《云计算分布式大数据 Spark 实战高手之路》
系列丛书三部曲
《云计算分布式大数据 Spark 实战高手之路---从零开始》:
不需要任何基础,带领您无痛入门 Spark 并能够轻松
处理 Spark 工程师的日常编程工作,内容包括 Spark 集群
的构建、Spark 架构设计、RDD、Shark/SparkSQL、机器学
习、图计算、实时流处理、Spark on Yarn、JobServer、Spark
测试、Spark 优化等。
《云计算分布式大数据 Spark 实战高手之路---高手崛起》:
大话 Spark 源码,全世界最有情趣的源码解析,过程
中伴随诸多实验,解析 Spark 1.0 的任何一句源码!更重要
的是,思考源码背后的问题场景和解决问题的设计哲学和
实现招式。
《云计算分布式大数据 Spark 实战高手之路---高手之巅》:
通过当今主流的 Spark 商业使用方法和最成功的
Hadoop 大型案例让您直达高手之巅,从此一览众山小。
Android 架构师、高级工程师、咨询
顾问、培训专家。
通晓 Spark、Hadoop、Android、
HTML5,迷恋英语播音和健美。
2 / 58
www.sparkinchina.com
TEL: 4006-998-758
云计算分布式大数据 Spark 实战高手之路
第一章:构建 Spark 集群
《前言》
Spark 采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、
NoSQL 查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大
数据领域的霸主地位;
要想成为 Spark 高手,需要经历六大阶段
2
精通 Spark 平
台本身提供给
开发者的 API
3
深入 Spark
内核
4
掌握基 Spark
上的核心框架
应用
5
做商业级别的
Spark 项目
1
熟练的掌握
Scala 语言
6
提供 Spark
解决方案
年度推荐书籍
3 / 58
QQ 交流群:317540673
Spark 从入门到精通
Life is short, you need spark!
Spark 实战高手之核心技能点
第一阶段:熟练的掌握 Scala 语言
1. Spark 框架是采用 Scala 语言编写的,精致而优雅。要想成为 Spark 高手,你就必须
阅读 Spark 的源代码,就必须掌握 Scala,;
2. 虽然说现在的 Spark 可以采用多语言 Java、Python 等进行应用程序开发,但是最快
速的和支持最好的开发 API 依然并将永远是 Scala 方式的 API,所以你必须掌握 Scala
来编写复杂的和高性能的 Spark 分布式程序;
3. 尤其要熟练掌握 Scala 的 trait、apply、函数式编程、泛型、逆变与协变等;
推荐课程:”精通 Spark 的开发语言:Scala 最佳实践”
第二阶段:精通 Spark 平台本身提供给开发者 API
1. 掌握 Spark 中面向 RDD 的开发模式,掌握各种 transformation 和 action 函数的使用;
2. 掌握 Spark 中的宽依赖和窄依赖以及 lineage 机制;
3. 掌握 RDD 的计算流程,例如 Stage 的划分、Spark 应用程序提交给集群的基本过程和
Worker 节点基础的工作原理等
推荐课程:“18 小时内掌握 Spark:把云计算大数据速度提高 100 倍以上!”
4 / 58
www.sparkinchina.com
TEL: 4006-998-758
云计算分布式大数据 Spark 实战高手之路
第一章:构建 Spark 集群
第三阶段:深入 Spark 内核
此阶段主要是通过 Spark 框架的源码研读来深入 Spark 内核部分:
1. 通过源码掌握 Spark 的任务提交过程;
2. 通过源码掌握 Spark 集群的任务调度;
3. 尤其要精通 DAGScheduler、TaskScheduler 和 Worker 节点内部的工作的每一步的
细节;
推荐课程:“Spark 1.0.0 企业级开发动手:实战世界上第一个 Spark 1.0.0 课程,涵
盖 Spark 1.0.0 所有的企业级开发技术”
第四阶级:掌握基于 Spark 上的核心框架的使用
Spark 作为云计算大数据时代的集大成者,在实时流处理、图技术、机器学习、NoSQL 查
询等方面具有显著的优势,我们使用 Spark 的时候大部分时间都是在使用其上的框架例如
Shark、Spark Streaming 等:
1. Spark Streaming 是非常出色的实时流处理框架,要掌握其 DStream、transformation
和 checkpoint 等;
2. Spark 的离线统计分析功能,Spark 1.0.0 版本在 Shark 的基础上推出了 Spark SQL,
离线统计分析的功能的效率有显著的提升,需要重点掌握;
3. 对于 Spark 的机器学习和 GraphX 等要掌握其原理和用法;
推荐课程:“Spark 企业级开发最佳实践”
第五阶级:做商业级别的 Spark 项目
通过一个完整的具有代表性的 Spark 项目来贯穿 Spark 的方方面面,包括项目的架构设计、
用到的技术的剖析、开发实现、运维等,完整掌握其中的每一个阶段和细节,这样就可以让
您以后可以从容面对绝大多数 Spark 项目。
推荐课程:“Spark 架构案例鉴赏:Conviva、Yahoo!、优酷土豆、网易、腾讯、
淘宝等公司的实际 Spark 案例”
第六阶级:提供 Spark 解决方案
1. 彻底掌握 Spark 框架源码的每一个细节;
2. 根据不同的业务场景的需要提供 Spark 在不同场景的下的解决方案;
3. 根据实际需要,在 Spark 框架基础上进行二次开发,打造自己的 Spark 框架;
推荐课程:“精通 Spark:Spark 内核剖析、源码解读、性能优化和商业案例实战”
年度推荐书籍
QQ 交流群:317540673
5 / 58
Spark 从入门到精通
Life is short, you need spark!
《第一章:构建 Spark 集群》
对于 90%以上想学习 Spark 的人而言,如何构建 Spark 集群是其最大的难点之一,
为了解决大家构建 Spark 集群的一切困难,家林把 Spark 集群的构建分为了四个步骤,从
零起步,不需要任何前置知识,涵盖操作的每一个细节,构建完整的 Spark 集群。
从零起步,构建 Spark 集群经典四部曲:
第一步:搭建 Hadoop 单机和伪分布式环境;
第二步:构造分布式 Hadoop 集群;
第三步:构造分布式的 Spark 集群;
第四步:测试 Spark 集群;
本文内容为构建 Spark 集群经典四部曲的第一步,从零起步构建 Hadoop 单机版本和伪
分布式的开发环境,涉及:
开发 Hadoop 需要的基本软件;
安装每个软件;
配置 Hadoop 单机模式并运行 Wordcount 示例;
配置 Hadoop 伪分布式模式并运行 Wordcount 示例;
不需任何前置知识,从零开始,循序渐进,成为 Spark 高手!
6 / 58
www.sparkinchina.com
TEL: 4006-998-758
云计算分布式大数据 Spark 实战高手之路
第一章:构建 Spark 集群
目录
第一步:开发 Hadoop 需要的基本软件 ........................................................................ 8
第二步:安装每个软件 ..................................................................................................11
第三步:配置 Hadoop 单机模式并运行 Wordcount 示例 ........................................38
第四步:配置 Hadoop 伪分布模式并运行 Wordcount 示例 ....................................47
年度推荐书籍
7 / 58
QQ 交流群:317540673
Spark 从入门到精通
Life is short, you need spark!
第一步:开发 Hadoop 需要的基本软件
我们的开发环境是在 Windows 7 上面构建 Hadoop,此时需要 Vmware 虚拟机、Ubuntu
的 ISO 镜像文件,Java SDK 的支持、Eclipse IDE 平台、Hadoop 安装包等;
1. Vmware 虚拟机,这里使用的是 VMware Workstation 9.0.2 for Windows, 具体的下载地
址是
https://my.vmware.com/cn/web/vmware/details?downloadGroup=WKST-902-WIN&produc
tId=293&rPId=3526 如下图所示:
下载后在本地的保存如下图所示:
可以看出里面多了一个 keys.txt 文件,这个是安装 Vwware 时需要的序列码,读者需
要从网络上下载;
2. Ubuntu 的 ISO 镜像文件,家林这里使用的 ubuntu-12.10-desktop-i386,具体下载地址为:
http://www.ubuntu.org.cn/download/desktop/alternative-downloads 如下图所示:
8 / 58
www.sparkinchina.com
TEL: 4006-998-758