我必须在我的集群上加载很多文件(+/- 500 000),这需要很长时间。每个文件都是 gzip 格式,占用 80Mb 的空间。
目前我使用一个while循环来加载我的文件,但你可能有一个最好的解决方案......
谢谢你的帮助。
很难以您解释的方式理解问题。
HDFS 支持 gzip 压缩,无需拆分。由于您的文件每个约为 80MB,因此拆分对您来说不是什么大问题,只需确保使用 128MB 或更大的块大小即可。
关于文件上传,为什么不简单地使用 -put 命令上传整个目录呢?
hadoop fs -put local/path/to/dir path/in/hdfs
会成功的。
也许您可以查看 PivotalHD 的 DataLoader,它使用更快的地图作业并行加载数据。检查此链接PivotalHD Dataloader。
您可以使用位于https://github.com/endgameinc/binarypig的 Binarypig 的 BuildSequenceFileFromDir