我有一个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。
我的问题是
答案 0 :(得分:6)
您已经发现群集的配置是在首次创建群集时设置的,并且不会调整为手动调整大小。
回答你的问题:
不考虑调整群集节点的大小并在之后手动编辑配置文件,而是考虑使用新的计算机大小启动新群集,并将旧群集中的所有数据复制到新群集。通常,移动数据的最简单方法是使用内置于distcp实用程序中的hadoop。一个示例用法将是:
$ hadoop distcp hdfs:///some_directory hdfs://other-cluster-m:8020/
或者,如果您可以使用云端存储:
$ hadoop distcp hdfs:///some_directory gs://<your_bucket>/some_directory
或者,考虑始终将数据存储在云存储中,并将每个群集视为可以随时拆除和重新创建的短暂资源。通常,只要将数据保存到HDFS,您也可以将其保存为:
gs://<your_bucket>/path/to/file
保存到GCS的好处是允许您在不使用时删除群集(以及HDFS中的数据,在永久磁盘上)。