背景:
Spark 2.3.0 开始支持使用k8s 作为资源管理原生调度spark。使用k8s原生调度的spark主要有以下好处:
- 采用k8s原生调度,不再需要二级调度,直接使用k8s原生的调度模块,实现与其他应用的混布;
- 资源隔离:任务可以提交到指定的namespace,这样可以复用k8s原生的qouta限制,实现任务资源的限制;
- 资源分配:可以指定每个spark任务的指定资源限制,任务之间更加隔离;
- 用户自定义:用户可以在spark基础镜像中打上自己的application, 更加灵活和方便;
试用条件:
- 一个k8s 1.7版本以上的集群,由于spark on k8s 任务提交后实际上在集群中是以custom resources和custom controller的形式,故你需要一个1.7+版本的k8s集群,同时需要启动k8s dns和RBAC。
- 下载spark2.3.0版本