zyx*_*xue 6 google-compute-engine apache-spark google-cloud-platform google-cloud-dataproc
我有一个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
Run Code Online (Sandbox Code Playgroud)
在/usr/lib/spark/conf/spark-defaults.conf.我想spark.dynamicAllocation.enabled true,执行器的数量会自动增加.
此外,Web控制台的DataProc页面上的信息也不会自动更新.似乎DataProc仍然认为所有节点都是n1-standard-4.
我的问题是
如您所见,首次创建群集时会设置群集的配置,而不会调整为手动调整大小.
回答你的问题:
不要调整群集节点的大小并在之后手动编辑配置文件,而是考虑启动具有新计算机大小的新群集,并将旧群集中的所有数据复制到新群集.通常,移动数据的最简单方法是使用hadoop内置的distcp实用程序.一个示例用法将是:
$ hadoop distcp hdfs:///some_directory hdfs://other-cluster-m:8020/
Run Code Online (Sandbox Code Playgroud)
或者,如果您可以使用云存储:
$ hadoop distcp hdfs:///some_directory gs://<your_bucket>/some_directory
Run Code Online (Sandbox Code Playgroud)
或者,考虑始终将数据存储在云存储中,并将每个群集视为可以随时拆除和重新创建的短暂资源.通常,只要将数据保存到HDFS,您也可以将其保存为:
gs://<your_bucket>/path/to/file
Run Code Online (Sandbox Code Playgroud)
保存到GCS有一个很好的好处,允许您在不使用时删除您的群集(以及HDFS中的数据,在永久磁盘上).
| 归档时间: |
|
| 查看次数: |
1415 次 |
| 最近记录: |