如何释放dataproc中块池使用的空间

uhry853o  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(314)

我已经启动了一个spark streaming作业,该作业从kafka流式传输数据。我只分配了2个具有15gb磁盘的工作节点进行测试。在2小时内,磁盘已满,并且这些节点的状态在yarn resource manager web界面上显示为不正常,并且我检查了hdfs web界面,该界面显示块池已使用了95%的磁盘空间。问题是我没有在节点上存储任何数据,只是从kafka读取数据,处理并存储到mongodb。

7hiiyaii

7hiiyaii1#

dataproc基本映像至少占用几gb的空间,因此每个worker只能占用10gb的空间。
我可以想到磁盘空间的两种主要用途:
1) 如果您启用了检查点(例如。 ssc.checkpoint(dir) ): https://spark.apache.org/docs/latest/streaming-programming-guide.html#checkpointing. 这可能在hdfs上。
如果你认为hdfs是个问题,你可以 ssh 进入主节点,然后运行 hdfs dfs -ls -R / 查找哪些文件占用空间。
2) 临时的随机数据在两个阶段之间写入磁盘
这在流式处理作业中不太可能,但值得检查hdfs是否没有占用太多空间。你可以跑了 du 找到占用空间的目录,我打赌它是在nm local dirs中:https://linuxhint.com/disk_space_directory_command_line/
尽管如此,15gb是一个非常非常小的磁盘大小。与计算机相比,pd相对便宜,我建议使用更大的启动盘大小。如果你想降低成本,可以考虑使用 e2 机器类型。

相关问题