当前位置: 首页 > 知识库问答 >
问题:

亚马逊EMR和纱线部署模式

李森
2023-03-14

我正在学习Spark的基础知识,为了测试我的Pyspark应用程序,我在AWS上用Spark、Yarn、Hadoop、Oozie创建了一个EMR实例。我成功地能够使用spark-submit从驱动程序节点执行一个简单的pyspark应用程序。我有一个默认的/etc/spark/conf/spark-default.conf文件,该文件是由AWS使用Yarn资源管理器创建的。一切运行良好,我可以监测跟踪URL以及。但我无法区分spark作业是在“客户机”模式下运行还是在“集群”模式下运行。我怎么确定?

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
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
....
....

是否有一种部署模式叫做“纱线-客户机”,或者仅仅是“客户机”和“集群”?另外,为什么AWS没有在配置文件中指定“num-executors”?那是我需要补充的吗?

谢谢

共有1个答案

慕铭
2023-03-14

它由提交作业时发送选项的方式决定,请参阅文档。

从EMR控制台或通过web服务器访问spark history server之后,可以在Environment选项卡中找到spark.submit.deploymode选项。在我的情况下,它是客户端模式。

 类似资料:
  • 我刚刚开始使用AWS EC2。我明白EC2就像一台远程计算机,在那里我可以做几乎所有我想做的事情。然后我发现了ECS的事。我知道它使用Docker,但我对这两者之间的关系感到困惑。 ECS只是EC2中的Docker安装吗?如果我已经有一个EC2并且我启动了一个ECS,这是否意味着我有两个实例?

  • 亚马逊云 图 1.20.2.1 - AWS AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT

  • 我想问alexa各种各样的问题,最后我想让它问“你还有什么想知道的吗?”当我说“是”(yes是工作建议)时,它应该根据我的意图来建议我。就像我在

  • 我在AWS EMR Spark上运行一个应用程序。这里,是spark提交作业- AWS使用纱线进行资源管理。我正在查看指标(下面的屏幕截图),对纱线“容器”指标有疑问。 这里,分配的容器显示为2。但是,我使用了4个节点(3个从1个主节点),所有8个内核CPU。那么,只有2个容器是如何分配的呢?

  • 在AWS KCL库中,检查点和修剪是如何相关的? 处理启动、关机和节流的文档页面表示: 第一页似乎表示KCL在流的顶端恢复,第二页在最后一个已知处理的记录(该记录被标记为由使用处理)恢复。在我的情况下,我肯定需要在最后一个已知处理过的记录处重新启动。是否需要将initialPositionInStream设置为Trim_Horizon?

  • 但有些多重问题, 如何在.NET中对Amazon Cognito用户池执行身份验证。我以以下方式启动Auth: 他们的文档非常非常糟糕,当我想回应挑战时,我似乎找不到该通过什么。 我假设它只是用默认的JWT中间件配置OWIN,还是应该期待其他东西?