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