Spark on Kubernetes与阿里云的深度整合

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 将Spark on Kubernetes与阿里云深度整合,设计一个开箱即用的Spark on Kubernetes镜像。

最近,笔者尝试将Spark on Kubernetes与阿里云深度整合,设计一个开箱即用的Spark on Kubernetes镜像。

首先通过Terraform在阿里云上一键创建和销毁Kubernetes集群。然后写了一个脚本生成Spark镜像,使其在Kubernetes上运行时可以直接读写阿里云OSS上的数据。最后还写了一个spark-submit脚本,可以让镜像动态地从阿里云OSS上下载需要运行的主程序包(jar)。

功能:
一次编译,多次运行,同时支持共有云、私有云、以及混合云。用户只需专注于Spark job本身,无需担心运维。解耦计算与存储,不再需要HDFS集群,更加节省费用。避免了常规做法中的二次资源调度,进一步提升资源管理效率。每一个job都可以指定资源,实现更好的资源隔离。自带弹性伸缩属性,无需被集群太小所困扰。

优势:
镜像可以部署到共有云、私有云、或混合云上的任意一个Kubernetes集群
镜像可以直接读写阿里云的对象存储服务(OSS),节省了HDFS的费用
可以从阿里云的OSS上自动下载包含Spark job的工作包(jar),不再用为每个工作包制作新的镜像

特点:
使用Kubernetes原生调度的Spark on Kubernetes是对现有的Spark on Yarn/Mesos的资源使用方式的革命性的改进,主要表现在以下几点:
1、Kubernetes原生调度:不再需要二层调度,直接使用Kubernetes的资源调度功能,跟其他应用共用整个kubernetes管理的资源池;
2、资源隔离,粒度更细:原先yarn中的queue在Spark on Kubernetes中已不存在,取而代之的是Kubernetes中原生的namespace,可以为每个用户分别指定一个namespace,限制用户的资源quota;
3、细粒度的资源分配:可以给每个spark任务指定资源限制,实际指定多少资源就使用多少资源,因为没有了像yarn那样的二层调度(圈地式的),所以可以更高效和细粒度的使用资源;
4、监控的变革:因为做到了细粒度的资源分配,所以可以对用户提交的每一个任务做到资源使用的监控,从而判断用户的资源使用情况,所有的metric都记录在数据库中,甚至可以为每个用户的每次任务提交计量;
5、日志的变革:用户不再通过yarn的web页面来查看任务状态,而是通过pod的log来查看,可将所有的Kubernetes中的应用的日志等同看待收集起来,然后可以根据标签查看对应应用的日志;

所有这些变革都可以让我们更高效的获取资源、更有效率的获取资源!

笔者设计的Spark on Kubernetes在普通版本的基础上,与阿里云深度整合,添加了一些比较实用的特性:
可以通过Terraform配置阿里云ACK Kubernetes集群,一键创建和销毁集群,避免重复劳动以及不必要的集群消耗
可以直接从阿里云OSS上获取Spark所需jar包,避免重复打包镜像
可以直接通过阿里云OSS读写数据,避免不必要的HDFS费用

目前正在免费Alpha测试中,具体操作步骤记录在了这篇博客里。欢迎感兴趣的同学一起讨论。也可通过邮箱与笔者联系沟通。
————————————————

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
29天前
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
2月前
|
人工智能 运维 Kubernetes
阿里云容器服务ACK AI助手正式上线带来的便利性
作为开发者想必大家都知道,云原生容器技术的优势,尤其是近两年的随着容器技术的迅猛发展,Kubernetes(K8s)已成为广泛应用于容器编排和管理的领先解决方案,但是K8s的运维复杂度一直是挑战之一。为了应对这一问题,就在最近,阿里云容器服务团队正式发布了ACK AI助手,这是一款旨在通过大模型增强智能诊断的产品,旨在帮助企业和开发者降低Kubernetes(K8s)的运维复杂度。那么本文就来详细讲讲关于这款产品,让我们结合实际案例分享一下K8s的运维经验,探讨ACK AI助手能否有效降低K8s的运维复杂度,并展望ACK AI助手正式版上线后的新功能。
264 2
阿里云容器服务ACK AI助手正式上线带来的便利性
|
3月前
|
Kubernetes 容器
要获取ACK(阿里云容器服务)集群中的Deployment
要获取ACK(阿里云容器服务)集群中的Deployment【1月更文挑战第8天】【1月更文挑战第40篇】
64 4
|
3月前
|
人工智能 弹性计算 调度
阿里云容器服务 ACK 产品技术动态(202312)
容器服务 Kubernetes 版 ACK 【新功能】 Feature:支持基于机密虚拟机的 AI 模型推理保护 ACK 现已支持将基于 Intel® Trusted Domain Extension(Intel® TDX)技术的 ECS 实例加入 TDX 机密虚拟机计算节点池,使集群具备 TDX 机密计算能力,实现 AI 模型的可信推理和微调,保障模型数据的机密性与完整性。结合 PyTorch 与 Intel® AMX指令集,您可以在 32 核实例上实现秒级出图的推理能力。
416 1
|
18天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
14 0
|
29天前
|
分布式计算 运维 大数据
阿里云 EMR Serverless Spark 版免费邀测中
阿里云 EMR Serverless Spark 版,以 Spark Native Engine 为基础,旨在提供一个全托管、一站式的数据开发平台。诚邀您参与 EMR Serverless Spark 版免费测试,体验 100% 兼容 Spark 的 Serverless 服务:https://survey.aliyun.com/apps/zhiliao/iscizrF54
390 0
阿里云 EMR Serverless Spark 版免费邀测中
|
3月前
|
分布式计算 Kubernetes Java
spark on k8s native
spark on k8s native
|
3月前
|
Kubernetes 容器
阿里云OpenAPI咋取到ack集群的Deployment呀?
阿里云OpenAPI咋取到ack集群的Deployment呀?【1月更文挑战第17天】【1月更文挑战第84篇】
22 2
|
3月前
|
人工智能 运维 Kubernetes
期待已久!阿里云容器服务 ACK AI 助手正式上线
期待已久!阿里云容器服务 ACK AI 助手正式上线
|
3月前
|
Kubernetes 容器
使用阿里云kubernetes镜像源出现gpg问题
使用阿里云kubernetes镜像源出现gpg问题