《Spark与Hadoop大数据分析》一一3.4 Spark 应用程序

简介:

本节书摘来自华章计算机《Spark与Hadoop大数据分析》一书中的第3章,第3.4节,作者:文卡特·安卡姆(Venkat Ankam) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 Spark 应用程序

让我们来了解 Spark Shell 和 Spark 应用程序之间的区别,以及如何创建和提交它们。
3.4.1 Spark Shell 和 Spark 应用程序
Spark 让你可以通过一个简单的、专门用于执行 Scala、Python、R 和 SQL 代码的 Spark shell 访问数据集。用户探索数据并不需要创建一个完整的应用程序。他们可以用命令开始探索数据,这些命令以后可以转换为程序。这种方式提供了更高的开发生产效率。Spark 应用程序则是使用 spark-submit 命令提交的带有 SparkContext 的完整程序。
Scala 程序通常使用 Scala IDE 或 IntelliJ IDEA 编写,并用 SBT 进行编译。Java 程序通常在 Eclipse 中编写,用 Maven 进行编译。Python 和 R 程序可以在任何文本编辑器中编写,也可以使用 Eclipse 等 IDE。一旦编写好 Scala 和 Java 程序,它们会被编译并用 spark-submit 命令执行,如下所示。由于 Python 和 R 是解释型语言,它们是使用 spark-submit 命令直接执行的。因为 Spark 2.0 是用 scala 2.11 构建的,因此,用 Scala 构建 Spark 应用程序就需要用到 scala 2.11。
3.4.2 创建 Spark 环境
任何 Spark 程序的起点都是创建一个 Spark 环境,它提供了一个到 Spark API 的入口。要设置配置属性,需要把一个 SparkConf 对象传递到 SparkContext,如下面的 Python 代码所示:
image

3.4.3 SparkConf
SparkConf 是 Spark 中的主要配置机制,创建新的 SparkContext 时需要一个它的实例。SparkConf 实例包含的是一些字符串的键/值对,对应了用户需要覆盖默认值的那些配置选项。SparkConf 设置可以被硬编码到应用程序代码中,从命令行传递,或从配置文件传递,如以下代码所示:
image

image

与具体应用程序相关联的那个 SparkConf 一旦传递给了 SparkContext 构造函数,它就是不可变的。这意味着所有配置的决定必须在实例化 SparkContext 之前做出。
3.4.4 SparkSubmit
spark-submit 脚本用于在具有任何集群资源管理器的集群上启动 Spark 应用程序。
SparkSubmit 允许动态设置配置,然后在应用程序启动时(当构建新的 SparkConf 时)注入到环境中。如果使用 SparkSubmit,用户的应用程序可以只构造一个“空”的 SparkConf,并将其直接传递给 SparkContext 构造函数。SparkSubmit 工具为最常见的 Spark 配置参数提供了内置标志(flag),还提供了一个通用的 --conf 标志,它可以接受任何 Spark 配置值,如下所示:
image

在有多个配置参数的情况下,可以将它们全部放在一个文件中,并利用 --properties-file 参数把该文件传递给应用程序:
image

image

--jars 选项里包含的应用程序依赖 JAR 包会自动发送到工作机节点。对于 Python 而言,等效的 --py-files 选项可用于将 .egg、.zip 和 .py 库分发到执行进程。注意,这些 JAR 包和库文件会被复制到执行进程节点上每个 SparkContext 的工作目录中。在创建 JAR 包时,最好把所有代码依赖都添加到一个 JAR 包里。这可以在 Maven 或 SBT 中轻松完成。
要获取 spark-submit 的完整选项列表,请使用以下命令:image

3.4.5 Spark 配置项的优先顺序
Spark 配置优先顺序,从高到低,如下所示:
(1)在用户代码中用 SparkConf 对象上的 set() 函数显式声明的配置。
(2)传递给 spark-submit 或 spark-shell 的标志。
(3)在 spark-defaults.conf 属性文件中的值。
(4)Spark 的默认值。
3.4.6 重要的应用程序配置
用于提交应用程序的一些重要配置参数如下表所示:
image

image

相关文章
|
5天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】金融数据分析中的机器学习应用
【4月更文挑战第30天】本文探讨了机器学习在金融数据分析中的应用,如股价预测、信用评分、欺诈检测、算法交易和风险管理,并以Python为例展示了如何进行股价预测。通过使用机器学习模型,金融机构能更准确地评估风险、识别欺诈行为并优化交易策略。Python结合scikit-learn库简化了数据分析过程,助力金融从业者提高决策效率。随着技术发展,机器学习在金融领域的影响力将持续增强。
|
5天前
|
数据采集 SQL 数据挖掘
Python数据分析中的Pandas库应用指南
在数据科学和分析领域,Python语言已经成为了一种非常流行的工具。本文将介绍Python中的Pandas库,该库提供了强大的数据结构和数据分析工具,使得数据处理变得更加简单高效。通过详细的示例和应用指南,读者将了解到如何使用Pandas库进行数据加载、清洗、转换和分析,从而提升数据处理的效率和准确性。
|
6天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据分析领域的应用研究
Python在数据分析领域的应用研究
12 0
|
6天前
|
分布式计算 DataWorks 大数据
MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因
|
6天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之spark3.1.1通过resource目录下的conf文件配置,报错如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
6天前
|
数据处理 Python
Pandas在数据分析中的应用案例
使用Pandas分析销售数据,通过`read_csv`读取CSV,`groupby`按产品类别分组并应用`agg`计算类别总销售额、平均价和销售量。之后,利用`sort_values`按销售额降序排列,`head`获取前5高销售额类别。示例代码展示了Pandas在数据处理和分析中的高效性。
18 0
|
11天前
|
分布式计算 大数据 数据处理
[AIGC大数据基础] Spark 入门
[AIGC大数据基础] Spark 入门
|
16天前
|
数据挖掘 数据处理 索引
Python数据分析面试:NumPy基础与应用
【4月更文挑战第16天】了解并熟练运用NumPy是衡量Python数据分析能力的关键。本文探讨了面试中常遇到的NumPy问题,包括数组创建、属性、索引切片、数组运算、统计函数以及重塑和拼接,并提供了相关代码示例。同时强调了易错点,如混淆Python列表与NumPy数组、误解广播规则等,提醒在数据处理中注意性能和内存效率。掌握这些知识点将有助于提升数据分析面试表现和技能。
30 5
|
18天前
|
数据采集 数据可视化 数据挖掘
SciPy在数据分析中的应用:从数据清洗到可视化
【4月更文挑战第17天】# SciPy在数据分析中的应用:从数据清洗到可视化。文章探讨了SciPy在数据清洗(使用NumPy处理缺失值和异常值)、数据分析(描述性统计和模型拟合)以及数据可视化(结合Matplotlib和Seaborn进行图表绘制)中的作用。SciPy与其他Python库结合,为完整的数据分析流程提供了强大支持。
|
分布式计算 Java Spark
Spark修炼之道(高级篇)——Spark源码阅读:第一节 Spark应用程序提交流程
作者:摇摆少年梦 微信号: zhouzhihubeyond spark-submit 脚本应用程序提交流程 在运行Spar应用程序时,会将spark应用程序打包后使用spark-submit脚本提交到Spark中运行,执行提交命令如下: root@sparkmaster:/hadoopLearning/spark-1.5.0-bin-hadoop2.4/bin# .
8556 0

热门文章

最新文章