



在运行Spark应用之前,我们首先要在集群上安装部署Spark。Spark官网 [68] 上提供了多个版本,包括Standalone、Mesos、YARN和Kubernetes版本。这几个版本的主要区别在于:Standalone版本的资源管理和任务调度器由Spark系统本身负责,其他版本的资源管理和任务调度器依赖于第三方框架,如YARN可以同时管理Spark任务和Hadoop MapReduce任务。为了方便探讨和理解Spark本身的系统结构和运行原理,我们选择Standalone版本安装。这里选择Spark-2.4.3版本安装部署在9台机器上,1台机器作为Master节点,8台机器作为Worker节点。由于官网和一些博客已经提供了详细的Spark安装过程,这里不再赘述。虽然Spark的版本在不断更新中,但其设计原理变化不大,因此本书的分析具有一定的通用性。
需要注意的是,在安装时需要配置很多资源信息,包括CPU、内存等,在接下来的章节中会有一些涉及,读者如果想详细了解各种配置参数的含义,那么可以参考官网上的配置说明。另外,如果没有集群环境,但是想运行Spark用户代码,则可以直接下载IntelliJ IDEA集成开发环境,在IDEA中通过Maven包管理工具添加Spark包(Package),然后直接编写Spark用户代码,并通过local(本地)模式运行。与集群版Spark的区别是,所有的Spark任务和main()函数等都运行在本地,没有网络交互等。