Spark支持3种集群管理器(Cluster Manager),分别为:
- Standalone:独立模式,Spark原生的简单集群管理器,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统,使用Standalone可以很方便地搭建一个集群; --master spark://jinghang01:7077
- Apache Mesos:一个强大的分布式资源管理框架,它允许多种不同的框架部署在其上; --master mesos://jinghang01:7077
- Hadoop YARN:统一的资源管理机制,在上面可以运行多套计算框架,如map reduce、storm等,根据driver在集群中的位置不同,分为yarn client和yarn cluster。 --master yarn-client --master yarn-cluster
实际上,除了上述这些通用的集群管理器外,Spark内部也提供了一些方便用户测试和学习的简单集群部署模式。由于在实际工厂环境下使用的绝大多数的集群管理器是Hadoop YARN,因此我们关注的重点是Hadoop YARN模式下的Spark集群部署。
Spark的运行模式取决于传递给SparkContext的MASTER环境变量的值,个别模式还需要辅助的程序接口来配合使用,目前支持的Master字符串及URL包括:
用户在提交任务给Spark处理时,以下两个参数共同决定了Spark的运行方式。
- –master MASTER_URL :决定了Spark任务提交给哪种集群处理。
- –deploy-mode DEPLOY_MODE:决定了Driver的运行方式,可选值为Client或者Cluster。
--deploy-mode client/cluster