Amazon web services 在EMR上配置Spark
当您选择一个性能更高的节点时,例如aAmazon web services 在EMR上配置Spark,amazon-web-services,apache-spark,amazon-ec2,emr,Amazon Web Services,Apache Spark,Amazon Ec2,Emr,当您选择一个性能更高的节点时,例如ar3.xlargevsm3.xlarge,Spark会自动利用额外的资源吗?或者这是您需要手动配置和调整的内容 就配置而言,哪种配置值最适合优化以充分利用集群?它将尝试 AWS有一个设置,您可以在EMR群集配置中启用该设置,该设置将尝试执行此操作。它被称为spark.DynamicLocation.enabled。在过去,这种设置存在一些问题,它会提供太多的资源来激发。在较新的版本中,他们降低了给spark的金额。但是,如果您使用的是Pyspark,那么它们不
r3.xlarge
vsm3.xlarge
,Spark会自动利用额外的资源吗?或者这是您需要手动配置和调整的内容
就配置而言,哪种配置值最适合优化以充分利用集群?它将尝试
AWS有一个设置,您可以在EMR群集配置中启用该设置,该设置将尝试执行此操作。它被称为spark.DynamicLocation.enabled。在过去,这种设置存在一些问题,它会提供太多的资源来激发。在较新的版本中,他们降低了给spark的金额。但是,如果您使用的是Pyspark,那么它们不会考虑python的资源需求
我通常禁用DynamicLocation,并根据选择的实例类型从自己的代码中动态设置适当的内存和内核设置
本页讨论他们将为您选择的默认设置:
如果手动执行此操作,您至少需要设置:
spark.executor.memory
spark.executor.cores
此外,您可能需要通过以下方式调整纱线容器尺寸限制:
yarn.scheduler.maximum-allocation-mb
yarn.scheduler.minimum-allocation-mb
yarn.nodemanager.resource.memory-mb
如果您使用Pyspark,请确保为操作系统保留一个内核和一些RAM,为python保留RAM。要澄清动态分配是Spark本身的一个属性和功能。在使用PySpark时,根据您对Python的需求(因为解释器在JVM堆外运行),可能需要增加spark.Thread.[driver | executor].memoryOverhead()。另外,我强烈建议不要调整调度器和节点管理器资源,因为超过默认值会有过度订阅内存的风险。