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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何释放Dataproc中块池使用的空间相关的知识,希望对你有一定的参考价值。

我已经开始了一个火花流工作,该工作流从kafka传输数据。我仅分配了两个带有15gb磁盘的工作节点进行测试。在2个小时内磁盘已满,并且在YARN Resource Manager网站上这些节点的状态显示为不正常界面,并且我检查了HDFS Web界面,该界面显示“块池”已使用了95%的磁盘空间。问题是我没有在节点上存储任何数据,只是从kafka读取数据,进行处理并存储到MongoDB。

答案
Dataproc基本映像至少需要占用几GB的空间,所以每个工作人员剩下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机器类型。

以上是关于如何释放Dataproc中块池使用的空间的主要内容,如果未能解决你的问题,请参考以下文章

ha hdfs : 块池 <registering> 初始化失败(未分配 Datanode Uuid)

Smarty 模板:如何更改子模板中块的顺序?

如何设置 sparkmagic 以通过 Livy 使用 DataProc?

如何在 dataproc 集群上重新启动 hadoop 服务

如何在android中使用imageloader释放位图内存?

如何检查 Dataproc 上 pyspark 作业的每个执行程序/节点内存使用指标?