首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon EMR和Yarn部署模式

Amazon EMR和Yarn部署模式
EN

Stack Overflow用户
提问于 2020-01-27 03:12:59
回答 2查看 1.6K关注 0票数 0

我正在学习Spark基础知识,为了测试我的Pyspark应用程序,我在AWS上创建了一个使用Spark、Yarn、Hadoop和Oozie的EMR实例。我成功地使用spark-submit从驱动程序节点执行了一个简单的pyspark应用程序。我有使用Yarn Resource Manager的AWS创建的默认/etc/spark/conf/spark-default.conf文件。一切都运行得很好,我还可以监控跟踪URL。但我无法区分spark作业是在“客户端”模式下运行还是在“集群”模式下运行。我该如何确定呢?

摘录自/etc/spark/conf/spark-default.conf

代码语言:javascript
复制
spark.master                     yarn                                                                                                            
spark.driver.extraLibraryPath    /usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native                                                       
spark.executor.extraClassPath    :/usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*:/usr/share/aws/emr/emrfs/conf:/usr/share/aws/emr/emrfs/lib/*:/usr/share/aws/emr/emrfs/auxlib/*:/usr/share/aws/emr/goodies/lib/emr-spark-goodies.jar:/usr/share/aws/emr/security/conf:/usr/share/aws/emr/security/lib/*:/usr/share/aws/hmclient/lib/aws-glue-datacatalog-spark-client.jar:/usr/share/java/Hive-JSON-Serde/hive-openx-serde.jar:/usr/share/aws/sagemaker-spark-sdk/lib/sagemaker-spark-sdk.jar:/usr/share/aws/emr/s3select/lib/emr-s3-select-spark-connector.jar    
spark.executor.extraLibraryPath  /usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs:///var/log/spark/apps
spark.history.fs.logDirectory    hdfs:///var/log/spark/apps
spark.sql.warehouse.dir          hdfs:///user/spark/warehouse
spark.sql.hive.metastore.sharedPrefixes com.amazonaws.services.dynamodbv2
spark.yarn.historyServer.address ip-xx-xx-xx-xx.ec2.internal:18080 
spark.history.ui.port            18080
spark.shuffle.service.enabled    true 
spark.driver.extraJavaOptions    -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:MaxHeapFreeRatio=70 -XX:+CMSClassUnloadingEnabled -XX:OnOutOfMemoryError='kill -9 %p'
spark.sql.parquet.fs.optimized.committer.optimization-enabled true
spark.sql.emr.internal.extensions com.amazonaws.emr.spark.EmrSparkSessionExtensions                                                              
spark.executor.memory            4743M                                                                                                           
spark.executor.cores             2                                                                                                               
spark.yarn.executor.memoryOverheadFactor 0.1875
spark.driver.memory              2048M

摘录自我的pypspark作业:

代码语言:javascript
复制
import os.path
from pyspark.sql import SparkSession
from pyspark.conf import SparkConf   
from boto3.session import Session 

conf = SparkConf().setAppName('MyFirstPySparkApp')
spark = SparkSession.builder.config(conf=conf).getOrCreate()
sc = spark.sparkContext 
spark._jsc.hadoopConfiguration().set("fs.s3a.access.key", ACCESS_KEY)
spark._jsc.hadoopConfiguration().set("fs.s3a.secret.key", SECRET_KEY) 
spark._jsc.hadoopConfiguration().set("fs.s3a.impl","org.apache.hadoop.fs.s3a.S3AFileSystem")
....# access S3 bucket
....
....

有没有一种叫做'yarn-client‘的部署模式,或者仅仅是’客户端‘和’集群‘?另外,为什么AWS没有在配置文件中指定"num-executors“?这是我需要补充的吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2020-02-02 20:00:14

这取决于您在提交作业时发送选项的方式,请参见Documentation

从电子病历控制台或通过web服务器访问spark历史服务器后,您可以在环境选项卡中找到spark.submit.deployMode选项。在我的例子中,它是客户端模式。

票数 2
EN

Stack Overflow用户

发布于 2020-02-05 11:08:15

默认情况下,spark应用程序在客户端模式下运行,即驱动程序在提交应用程序的节点上运行。有关这些部署配置的详细信息,请参阅here。一个容易验证的方法是,在作业进入运行状态后,通过在终端上按ctrl +c来终止正在运行的进程。如果它在客户端模式下运行,应用程序将会死掉。如果它在集群模式下运行,它将继续运行,因为驱动程序在EMR集群中的一个工作节点上运行。在群集模式下运行作业的spark-submit命令示例如下

代码语言:javascript
复制
spark-submit --master yarn \
--py-files my-dependencies.zip \
--num-executors 10 \
--executor-cores 2 \
--executor-memory 5g \
--name sample-pyspark \
--deploy-mode cluster \
package.pyspark.main

默认情况下,number of executors设置为1。您可以检查所有spark configs here的默认值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59921797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档