问题标签 [spark-submit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - Spark Driver 在集群模式下运行在哪里,可以控制吗?
虽然我有几个文档表明驱动程序在其自己的节点上运行,该节点是主节点,从节点上的执行器也称为 Worker,但我对此感到困惑。因此,如果可能,我想确认以下内容:
Driver 在什么类型的集群上运行:
- 独立
- 纱
- 梅索斯
所以我想我有 2 的答案,即 master 中的驱动程序。但是我不确定 1 和 3。有人可以帮忙澄清一下吗?
最后,如果驱动程序与执行程序共享一个节点,这是否意味着当我们调整集群节点的大小时,我们需要考虑到实际上可能在其上运行更多线程并且内存使用量可能更大?换句话说,我们应该系统地超大我们的节点以考虑潜在的驱动因素。
apache-spark - 在火花中将外部属性文件添加到类路径
我目前正在使用以下命令将我的 fat jar 提交到 spark 集群。应用fat jar和相关配置在文件夹/home/myapplication
现在我的要求是将外部属性文件/home/myapplication/external-prop.properties添加到驱动程序和工作节点的类路径中。
我搜索了很多资源,但找不到我正在寻找的正确解决方案!
请帮助解决问题。提前致谢
amazon-web-services - 如何从 Lambda 函数在亚马逊 EMR 上执行 spark 提交?
我想根据 S3 上的文件上传事件在 AWS EMR 集群上执行 spark 提交作业。我正在使用 AWS Lambda 函数来捕获事件,但我不知道如何通过 Lambda 函数在 EMR 集群上提交 spark 提交作业。
我搜索的大多数答案都谈到在 EMR 集群中添加一个步骤。但我不知道我是否可以在添加的步骤中添加任何步骤来触发“spark submit --with args”。
python - spark2集群模式下的JSON解码错误,在客户端模式下工作正常
使用 spark-submit cmd(Spark2 CDH 5.9) 运行 python 脚本,我只在集群模式下收到以下 json 解码错误(客户端很好):
我了解上述错误是由于无效的 json 造成的。但是,传递给脚本的 json 是有效的(前面解释过)。似乎 spark-submit 集群模式正在修改 python 脚本的 json 参数。我比较了“客户端”和“集群”模式下的日志,发现客户端中的 json arg 保持原样,而在集群模式下被修改。
我传递的 json 具有这样的结构:
客户端模式按原样接收它,其中集群模式获得以下内容:
这似乎是一个非常奇怪的行为。任何见解都会非常有帮助。
apache-spark - 在 VisualVM 中看不到 Spark Metrics
我在配置 metrics.properties 文件后尝试查看 spark 指标。这是我用于火花提交的命令 -
/home/spark/spark/bin/spark-submit --class SparkRunner --master spark://xxxx:7077 --files /home/spark/spark/conf/metrics.properties --conf spark.default.parallelism= 96 --conf spark.metrics.conf=/home/spark/spark/conf/metrics.properties --conf "spark.driver.extraJavaOptions= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote .port=9099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=xxxx -Dcom.sun .management.jmxremote.rmi.port=9099" x.jar
我可以从我的本地机器上连接到端口 9099 上的 VisualVM。但我无法在 MBean 中获取指标。我看到的只是 java.lang 或 java.util.logging MBean。我已从我的 metrics.properties 中取消注释 jmx sink 行。我究竟做错了什么?
scala - 使用 spark-submit 提交 spark scala 作业时出错
我使用 Eclipse -> New Scala Project 在 scala 中编写了一个简单的应用程序。
我正在使用 Scala 2.10.6 和 Spark 2.0.2。该应用程序正在编译没有错误,我还导出了 jar 文件。
我正在使用以下命令来执行 JAR
scala代码片段如下
这不是完整的代码。当我运行它时,我收到以下错误。
我是 spark 和 scala 的新手,所以不确定我错过了什么。
apache-spark - 如何将文件中的配置参数作为环境变量传递给 Spark 作业?
我正在运行一个 spark 应用程序,它将使用文件中的配置参数。
文件:- Spark.conf
如何在运行时使用此文件。当我们更改配置文件时,如何让作业在运行时动态选择文件,而不是重新启动作业。
我尝试将它与 spark-submit using 一起使用--conf spark.yarn.appMasterEnv
,但这是在寻找一个不是文件的变量。
有没有可能实现这一点。
在此先感谢您的帮助。
python - 执行 python 文件时带有 spark-submit 的 CLI 参数
我正在尝试通过 pyspark 中的以下代码将 sql server 表转换为 .csv 格式。
所以,如果我想转换多个表,我需要编写多个数据框。所以,为了避免这种情况,我想为数据库名称和用户的表名取命令行参数,同时通过迭代数据框for 循环。
甚至可能吗?如果是,有人可以通过 spark-submit 指导我如何做到这一点吗?
apache-spark - 如果通过 spark-submit 提交作业,我们可以在不显式创建的情况下使用 spark session 对象吗
我的问题非常基本,我的代码运行良好。但我不清楚这两点:
1)当我们使用 spark-submit 提交任何 pyspark 作业时,我们是否需要像这样创建 spark session 对象?在我的脚本中:
或者我可以直接在我的脚本中访问 spark session 对象而不创建它。
如果火花会话对象可用,那么我如何添加如下配置属性或如何启用配置单元支持。
2)另一种方法是不使用 spark-submit 我可以编写我的 python 代码来生成 spark-session 对象并像这样使用它
我的疑问是,如果我使用 spark-submit 提交作业并如上所述创建 spark 会话对象,我最终会创建两个 spark 会话吗?
如果有人可以向我解释使用 spark-submit 超过第 2 步方法的额外优势,那将非常有帮助。如果我从命令行使用 spark-submit 调用作业,我是否需要创建 spark-session 对象
hadoop - Spark程序在集群上运行很慢
我正在尝试在具有 2 个节点和 1 个主节点(均具有 16 Gb RAM)的集群中运行我的PySpark 。我已经用下面的命令运行了我的 spark。
spark-submit --master yarn --deploy-mode cluster --name "Pyspark" --num-executors 40 --executor-memory 2g CD.py
但是我的代码运行速度很慢,解析 8.2 GB 的数据需要将近 1 个小时。然后我尝试更改我的YARN中的配置。我更改了以下属性。
完成这些更改后,我的 spark 仍然运行非常缓慢,需要 1 个多小时才能解析 8.2 GB 的文件。