0

我必须使用 Java 代码将 HDFS 文件复制到本地文件系统中,然后再写入磁盘,然后拆分为多个部分。使用 snappy / lzo 压缩文件。我使用 Bufferedreader 和 Filewriter 来读取和写入文件。但是这个操作很慢。30 GB 文件需要 20 分钟。我可以在 2 分钟内使用 hadoop fs -text 转储文件(但不能拆分它)。我还能做些什么来加快操作速度吗?

4

1 回答 1

0

由于我有两个通过,首先要获得行数,然后是拆分。hadoop fs -text 是 CPU 密集型的。是否采用以下方法:

1) 使用行数 Java 程序作为 Map reduce 来获取文件中的行数。然后将它除以我需要的文件总数,我得到了要写入每个文件的行数。

2) 使用这个链接提到的代码和 hadoop fs -text

https://superuser.com/a/485602/220236

希望它可以帮助别人。

于 2013-04-27T02:57:29.290 回答