媒介
Apache Spark是一个快速、通用的大规模数据处理引擎,它支持多种编程语言进行数据分析和机器学习。在利用Spark进行数据处理时,使命的提交参数配置对于使命的实行效率、资源利用和管理至关紧张。本文将详细解析Spark提交使命时常用的参数,资助读者更好地理解和配置Spark作业。
常用的spark-submit参数
1. --master
--master参数用于设置Spark作业的主节点URL,决定作业提交到何处实行。常见的选项包括:
- local:在当地机器上运行Spark作业,利用单个线程。
- local[K]:在当地机器上运行Spark作业,利用K个工作线程。
- local
- :在当地机器上运行Spark作业,尽大概多地利用CPU逻辑线程。
- spark://HOSTORT:连接到Spark standalone集群的master节点。
- mesos://HOSTORT:连接到Mesos集群。
- yarn:连接到YARN集群。
- k8s://https://host:port:连接到Kubernetes集群。
2. --deploy-mode
--deploy-mode参数决定Spark驱动程序的启动位置,可选值为client和cluster。
- client:在当地启动驱动程序,使命实行在集群上。
- cluster:在集群的某个工作节点上启动驱动程序,逻辑运算与使命实行均在集群上。
3. --class
--class参数用于指定应用程序的主类,仅实用于Java或Scala应用。
4. --name
--name参数用于设置应用程序的名称,方便管理和监控。
5. 资源分配相关参数
- --driver-memory MEM:分配给驱动程序的内存大小,默认为1024M。
- --executor-memory MEM:分配给每个实行器的内存大小,默认为1G。
- --driver-cores NUM:驱动程序可以利用的CPU核数,默认为1。
- --executor-cores NUM:每个实行器可以利用的CPU核数,默认为1。
- --num-executors NUM:哀求的实行器数量,默认为2。
6. 其他常用参数
- --jars:用逗号分隔的当地jar包,这些jar包将被包含在driver和executor的classpath下。
- --packages:通过Maven坐标指定的jar包,这些jar包将被添加到driver和executor的classpath中。
- --exclude-packages:为避免冲突,指定不包含的jars包。
- --repositories:添加额外的远程资源库。
- --py-files:对于Python应用,指定.py、.egg或.zip文件列表,这些文件将被传递给每个实行器。
- --files:指定需要被传递给每个实行器的文件列表。
- --conf PROP=VALUE:通过命令行动态地更改应用程序的配置。
示例1
以下是一个利用spark-submit提交Spark作业的示例命令:
- spark-submit \
- --master spark://23.195.26.187:7077 \
- --deploy-mode cluster \
- --name "MySparkApp" \
- --class com.example.MySparkApp \
- --driver-memory 1g \
- --executor-memory 4g \
- --executor-cores 2 \
- --num-executors 4 \
- /path/to/your/sparkapp.jar \
- arg1 arg2 arg3
复制代码
- 在这个例子中,我们提交了一个名为MySparkApp的应用程序到指定的Spark集群。应用程序的入口类是com.example.MySparkApp,位于/path/to/your/sparkapp.jar。我们配置了驱动程序和实行器的内存大小、CPU核数以及实行器的数量,并传递了arg1、arg2、arg3三个参数给应用程序。
示例2
- /opt/cloudera/parcels/spark3.3.2/bin/spark-submit --master yarn --deploy-mode cluster --executor-memory 8G --num-executors 80 --executor-cores 1 --driver-cores 1 --driver-memory 8G --queue root.spark --class com.dw.process.mid.FenceIntoOutApplication spark-java-job-1.0-jar-with-dependencies.jar ${fenceId}
复制代码 总结
假如此篇文章有资助到您, 希望打大佬们能关注、点赞、收藏、批评支持一波,非常感谢大家!
假如有不对的地方请指正!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |