我正在尝试获取Google存储桶中的控制器大小,但命令运行时间很长。
我已尝试过具有24k子目录和文件的8TB数据,大约需要20~25分钟,相反,HDFS上的相同数据需要不到一分钟的时间来获得大小。
我用来获取大小的命令
hadoop fs -du gs://mybucket
gsutil du gs://mybucket
请建议我如何更快地完成。
答案 0 :(得分:1)
1
和2
几乎完全相同,1
使用GCS连接器。
GCS通过发出列表请求来计算使用情况,如果你有大量的对象,这可能需要很长时间。
本文建议将Access Logs设置为gsutil du
的替代方案:
https://cloud.google.com/storage/docs/working-with-big-data#data
但是,如果您打算对数据进行任何分析,则可能仍会产生相同的20-25分钟成本。来自GCS Best Practices指南:
对象中的正斜杠对云存储没有特殊意义, 因为没有本机目录支持。正因为如此,深刻 使用斜杠分隔符的嵌套目录类结构是可能的, 但是没有深入了解本机文件系统的性能 嵌套的子目录。
假设您打算分析这些数据;您可能需要考虑使用time hadoop distcp
对不同文件大小和glob表达式的获取性能进行基准测试。