【spark床头书系列】使用Apache Mesos部署Spark

本文详述了如何在Apache Mesos上部署Spark,强调了动态资源分配和安全性。内容涵盖工作原理、安装Mesos、连接Spark到Mesos、身份验证、运行模式以及Mesos Docker支持等关键步骤,旨在帮助读者理解如何在Mesos集群中高效、安全地运行Spark作业。
摘要由CSDN通过智能技术生成

使用Apache Mesos部署Spark点击这里可看全文


在硬件集群上使用Apache Mesos管理,可以使Spark运行起来。**注意:Apache Mesos支持已经在Apache Spark 3.2.0中被弃用,将在未来的版本中删除。**

部署Spark与Mesos的优势包括:

  • 在Spark和其他框架之间进行动态分配资源
  • 将资源按比例分配给多个Spark实例
  • 安全性

安全性
默认情况下,安全功能(如身份验证)是未启用的。在部署一个对外开放或不受信任网络的集群时,为了防止未经授权的应用程序在集群上运行,确保对集群的访问受到安全保护非常重要。在运行Spark之前,请参阅Spark安全性文档以及本文档中的相关安全部分。

工作原理

在独立集群部署中,下图中的集群管理器是一个Spark主节点实例。而在使用Mesos时,Mesos主节点会取代Spark主节点作为集群管理器。

Spark集群组件

当驱动程序创建作业并开始发出任务进行调度时,Mesos决定哪些机器处理哪些任务。因为它在调度这些短暂任务时考虑了其他框架,所以多个框架可以在同一集群上共存,而无需静态地划分资源。

要开始使用Mesos安装和通过Mesos部署Spark作业,请按照以下步骤操作。

安装Mesos

Spark 3.5.0适用于Mesos 1.0.0或更新版本,并且不需要任何特殊的Mesos补丁。文件和基于环境的密钥支持需要Mesos 1.3.0或更新版本。

如果您已经运行了一个Mesos集群,可以跳过此步骤。

否则,将Spark与Mesos一起安装与为其他框架安装Mesos没有区别。您可以从源代码安装Mesos,也可以使用预编译软件包进行安装。

从源代码安装

要从源代码安装Apache Mesos,请按照以下步骤操作:

  1. 从镜像下载Mesos发行版。
  2. 按照Mesos入门页面上的说明进行编译和安装。

注意:如果您希望在系统默认路径之外(例如,如果您没有管理员权限来安装),请在configure命令中使用--prefix选项指定安装路径,例如:--prefix=/home/me/mesos。默认情况下,安装路径为/usr/local

第三方软件包

Apache Mesos项目只发布源代码版本,而不提供二进制软件包。但是,其他第三方项目发布了二进制软件包,这些软件包可能有助于安装Mesos。

其中一个项目是Mesosphere。要使用Mesosphere提供的二进制版本安装Mesos,请按照以下步骤操作:

  1. 从下载页面下载Mesos安装包。
  2. 按照他们的安装和配置说明进行操作。

Mesosphere的安装文档建议设置ZooKeeper以处理Mesos主节点故障转移,但也可以在没有ZooKeeper的情况下运行Mesos,只需使用单个主节点即可。

验证

要验证Mesos集群是否准备好与Spark一起使用,请访问Mesos主节点的Web界面(端口为5050),确认“Agents”选项卡中存在所有预期的机器。

连接Spark到Mesos

要使用Mesos调度Spark作业,您需要在Mesos可访问的位置上有一个Spark二进制软件包,并且需要配置Spark驱动程序以连接到Mesos。

或者,您还可以在所有Mesos代理中安装Spark,并将spark.mesos.executor.home(默认为SPARK_HOME)配置为指向该位置。

连接到Mesos的身份验证

当启用Mesos Framework身份验证时,需要提供一个主体和密钥,以便Spark对Mesos进行身份验证。每个Spark作业将注册为一个独立的Framework。

根据部署环境的不同,您可以选择创建一组共享给所有用户的Framework凭证,或者为每个用户创建Framework凭证。创建和管理Framework凭证应遵循Mesos身份验证文档。

可以通过多种方式指定Framework凭证,具体取决于部署环境和安全要求。最简单的方法是直接在Spark配置中指定spark.mesos.principalspark.mesos.secret的值。或者,您还可以间接地通过指定spark.mesos.principal.filespark.mesos.secret.file来指定这些值,这些设置指向包含主体和密钥的文件。这些文件必须是UTF-8编码的纯文本文件。通过适当的文件所有权、模式/访问控制列表,可以更安全地指定这些凭证。

此外,如果您更喜欢使用环境变量,也可以通过环境变量来指定上述所有内容。环境变量的名称只是将配置设置转换为大写,并用下划线替换点号,例如:SPARK_MESOS_PRINCIPAL

凭证规范的优先顺序如下所示。如果您指定多种获取凭证的方式,则Spark将使用找到的第一个有效值,忽略后续的值:

  1. spark.mesos.principal配置设置
  2. SPARK_MESOS_PRINCIPAL环境变量
  3. spark.mesos.principal.file配置设置
  4. SPARK_MESOS_PRINCIPAL_FILE环境变量

对于密钥,也适用相同的顺序。基本上,我们更喜欢直接指定配置而不是通过文件间接指定配置,并且我们更喜欢使用配置设置而不是环境变量。

在安全套接字上运行Mesos集群

如果要将Spark应用程序部署到以安全模式运行的Mesos集群中,需要设置一些环境变量。

  • LIBPROCESS_SSL_ENABLED=true:启用SSL通信
  • LIBPROCESS_SSL_VERIFY_CERT=false:验证SSL证书
  • LIBPROCESS_SSL_KEY_FILE=pathToKeyFile.key:密钥文件路径
  • LIBPROCESS_SSL_CERT_FILE=pathToCRTFile.crt:证书文件路径

所有选项的详细说明可以在这里找到。

然后,按照下面的“客户端模式”或“集群模式”的描述进行提交。

上传Spark软件包

当Mesos首次在Mesos代理上运行任务时,该

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值