【发布时间】:2018-02-19 04:46:16
【问题描述】:
我正在尝试获取 Google 存储桶中导向器的大小,但命令运行了很长时间。
我尝试过使用具有 24k 子目录和文件的 8TB 数据,大约需要 20~25 分钟,相反,HDFS 上的相同数据只需不到一分钟即可获得大小。
我用来获取大小的命令
hadoop fs -du gs://mybucketgsutil du gs://mybucket
请建议我怎样才能更快地做到这一点。
【问题讨论】:
-
@tix 好像是重复的,除了我的问题是与 HDFS 的比较。我很想知道为什么存储桶的性能与 Dataproc 上的 HDFS 相比非常低。
-
HDFS 是一个真正的文件系统。 GCS 不是。它必须遍历存储桶中的每个对象并对其进行统计以计算存储桶大小。链接的答案建议启用访问日志作为提高性能的一种方式。
-
@KaustubhDeshpande 1) 您应该告诉我们您想要做什么,以便我们提供更好的解决方案。您需要实际数据集大小是否有原因?,2)
gsutil -m du gs://mybucket更快吗? -m 表示多线程,3)您是否尝试过使用 spark/hadoop 作业来更快地找到它?我敢打赌像sc.wholeTextFiles("gs://mybucket").keys.map(filename => fs.get(filename).size).collect().foldLeft(0)(_ + _)这样的东西会起作用。另外:GCS 的延迟比集群上的 HDFS 高得多——比如 100 毫秒 vs
标签: google-cloud-platform google-cloud-storage google-cloud-dataproc