运行 Spark 应用

转自:http://cwiki.apachecn.org/pages/viewpage.action?pageId=2162910

运行 Spark 应用

您可以在本地或者群集中运行 Spark 应用程序,既可以通过使用 交互式 Shell 的方式, 又可以通过 提交一个应用程序 的方式。通常在执行数据探索阶段和为了 Ad-Hoc 分析 时运行交互式的 Spark 应用程序。

因为 Scala 编译代码方式的一些局限性,一些运行在交互式 shell 的嵌套定义的应用也许会发生一个 Task not serializable 异常。Cloudera 建议您提交那些应用。

为了在群集中运行应用程序,Spark 需要一个 Cluster Manager(群集管理者)。Cloudera 支持两种 Cluster Manager : YARN 和 Spark Standlone。当运行在 YARN 上时,Spark 应用程序的进程被 YARN ResourceManager 和 NodeManager 角色管理。当运行在 Spark Standlone 上时,Spark 应用程序的进程被 Spark Master 和 Worker 角色管理。

在 CDH5 中,Cloudera 建议在 YARN 群集管理上运行 Spark 应用,而不是在 Spark Standlone 群集管理上运行,YARN 上运行有下列的好处 : 

  • 您可以动态共享和集中配置所有运行在 YARN 上的框架的相同的群集资源的 pool(池)。
  • 您可以使用 所有 YARN 调度器的特性 用于分类,隔离,和优先级的工作。
  • 您选择需要使用的 Executor 的数量。与此相反,Spark Standlone 需要每个应用去在群集中的每个主机上运行一个 Executor。
  • Spark 可能运行在没启用 Kerberos 的 Hadoop 群集并且在它的进程中使用 安全的身份认证

 

提交 Spark 应用

为了提交由一个 Python 文件或者一个编译并且打包的 Java 或者 Spark JAR 的应用,使用 spark-submit 脚本。

spark-submit 语法

spark-submit --option value \

  application jar | python file [application arguments]

例子 : 在 YARN 上运行 SparkPi 演示了如何去运行一个简单的例子,SparkPi,与 Spark 打包。它计算了 PI 的近似值。

spark-submit 参数

选项

描述

application jar包含一个 Spark 应用和所有依赖的 JAR 文件的路径。这个路径必须在您的群集内部是可见的,请看 高级依赖管理
python file包含一个 Spark 应用的 Python 文件的路径。这个路径必须在您的群集内部是可见的,请看 高级依赖管理 。
application arguments传递到您的 main class 中 main 方法的参数。

spark-submit 选项

使用 --option value 而不是 --option=value 的形式指定 spark-submit 的选项。(使用一个空格而不是一个等号)。

of an equals sign.)

 

选项

描述

class

对于 Java 和 Scala 应用来说。包含应用的 main 方法是完全限定的 classname(类名)。例如 : org.apache.spark.examples.SparkPi。

confSpark 配置属性 用 key=value 的格式。多个 values 包含空格,使用引号 "key=value"。
deploy-mode

部署模式 : cluster 和 client。在 cluster 模式中,driver 运行在 worker 主机上。在 client 模式中,driver 作为一个外部的 client 运行在本地。生产环境的 Job 使用 cluster 模式。 client 模式更适合用于交互式和调试案例,这样您可以立刻看到您应用的输出。为了在 YARN 上运行时看到部署模式的效果,请看 部署模式

默认 : client。

driver-class-path配置和进入到 dirvier 的 classpath 入口。JARs 使用 --jars 添加的 JARs 被自动带包含到 classpath 中。
driver-corescluster 模式中 driver 使用的 core 的数量。

默认 : 1。

driver-memory

分配给 driver 的最大的堆内存大小(表示为一个 JVM 字符串,例如 1024m,2g,等等),您可以使用 spark.driver.memory 属性。

files

逗号分隔的文件列表被放到每个 executor 的工作目录。该路径必须在您的群集内部是全局可见的,请看 高级依赖管理

jars

添加 JARs 加载到 driver 的 classpath 中,并且 executo 在 cluster 模式中或者在 client 模式的 executor classpath 中。该路径必须在您的群集内部是全局可见的,请看 高级依赖管理

master运行应用的位置。
packages

逗号分隔的 Maven JARs 的坐标的列表,包括在 driver 和 executor classpath 上。本地的 Maven,Maven central,和被指定在仓库中的远程仓库用于说说的顺序。坐标的格式是 groupId:artifactId:version。

 

py-files

逗号分隔的 .zip,.egg,或者 .py 文件用来放到 PYTHONPATH 上,该路径必须在您的群集内部是全局可见的,请看 高级依赖管理

repositories

逗号分隔的远程仓库用来搜索在 package 中指定的 Maven 坐标。

 

 

Master Values

 

Master

描述

local用一个 worker 线程本地运行 Spark(也就是说,不是并行的)。
local[K]用 K 个 worker 线程本地运行 Spark (理想状态,设置这个值为您主机的 Core 数量)
local[*]用您主机上尽可能多的逻辑 Core 本都运行 Spark。
spark://host:port

使用 Spark Standlone 群集管理器与指定的主机和端口(默认 : 7077)运行。

yarn使用 YARN cluster manager 运行。群集位置由 HADOOP_CONF_DIR 或者 YARN_CONF_DIR 决定。请看 配置环境

群集执行概述

Spark 通过 driver 程序协调操作。当 driver 程序运行时,Spark 框架初始化您群集中处理数据的主机上的 executor 进程。当您提交 Spark 应用程序到群集中是发生了如下事情 : 

  • driver 启动并且调用 Spark 应用程序中的 main 方法。
  • driver 从群集管理器中请求资源用来启动 executor。
  • 群集管理器为了 driver 程序启动 executor。
  • driver 运行应用程序。基于应用程序的 transformation 和 action,driver 发送任务到 executor。
  • 任务运行在 executor 上以计算和保存结构。
  • 如果启用了 动态分配,在指定的阶段 executor 是空闲时,它们将会释放。
  • 当 driver 的 main 方法退出或者调用了 SparkContext.stop,它中断了任何未完毕的 executor 并释放来自群集管理器的资源。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值