gpt4 book ai didi

apache-spark - 在 Cloud Dataproc 中调整工作程序节点大小后如何更新 spark 配置

转载 作者:行者123 更新时间:2023-12-04 14:56:16 25 4
gpt4 key购买 nike

我有一个 DataProc Spark 集群。最初,主节点和 2 个工作节点的类型为 n1-standard-4(4 个 vCPU,15.0 GB 内存),然后我通过 Web 控制台将它们全部调整为 n1-highmem-8(8 个 vCPU,52 GB 内存)。

我注意到两个工作节点没有得到充分利用。特别地,第一个工作节点上只有 2 个执行程序,第二个工作节点上只有 1 个执行程序,其中

spark.executor.cores 2
spark.executor.memory 4655m

/usr/lib/spark/conf/spark-defaults.conf .我想过 spark.dynamicAllocation.enabled true ,执行器的数量将自动增加。

此外,Web 控制台的 DataProc 页面上的信息也不会自动更新。看来DataProc 还是认为所有节点都是n1-standard-4。

我的问题是
  • 为什么第一个工作节点上的执行器比第二个多?
  • 为什么没有向每个节点添加更多的执行程序?
  • 理想情况下,我希望整个集群得到充分利用,如果 spark 配置需要更新,如何更新?
  • 最佳答案

    正如您发现的那样,集群的配置是在首次创建集群时设置的,并且不会调整为手动调整大小。

    回答您的问题:

  • Spark ApplicationMaster 在工作节点上采用 YARN 中的容器,如果只有单个 Spark 应用程序正在运行,通常是第一个工作节点。
  • 当集群启动时,Dataproc 会尝试在每台机器上安装两个 YARN 容器。
  • 每台机器上的 YARN NodeManager 配置决定了应该将多少机器资源专用于 YARN。这可以在/etc/hadoop/conf/yarn-site.xml 下的每个 VM 上更改,然后是 sudo service hadoop-yarn-nodemanager restart。一旦机器向 ResourceManager 通告更多资源,Spark 就可以启动更多容器。在向 YARN 添加更多资源后,您可能希望通过修改 spark.executor.memory 和 spark.executor.cores 来修改 Spark 请求的容器的大小。

  • 与其调整集群节点的大小并随后手动编辑配置文件,不如考虑使用新的机器大小启动一个新集群,并将旧集群中的任何数据复制到新集群中。通常,移动数据的最简单方法是使用 hadoop 内置的 distcp 实用程序。一个示例用法是:
    $ hadoop distcp hdfs:///some_directory hdfs://other-cluster-m:8020/

    或者,如果您可以使用 Cloud Storage:
    $ hadoop distcp hdfs:///some_directory gs://<your_bucket>/some_directory

    或者,考虑始终将数据存储在 Cloud Storage 中,并将每个集群视为可以随时拆除和重新创建的临时资源。通常,任何时候您将数据保存到 HDFS,您也可以将其保存为:
    gs://<your_bucket>/path/to/file

    保存到 GCS 有一个很好的好处,它允许您在不使用时删除集群(以及 HDFS 中的数据,在永久磁盘上)。

    关于apache-spark - 在 Cloud Dataproc 中调整工作程序节点大小后如何更新 spark 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38749660/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com