作为配置单元查询的结果,我获得了多个输出文件(按排序分配),现在我想合并它们以生成单个文件。所以我试过hdfs dfs -getmerge命令。现在我想了解-getmerge是否在连接之前对文件进行排序,或者它只是连接在一起?hdfs dfs -getmerge命令有什么作用?
2
A
回答
4
public static boolean More ...copyMerge(FileSystem srcFS, Path srcDir,
277 FileSystem dstFS, Path dstFile,
278 boolean deleteSource,
279 Configuration conf, String addString) throws IOException {
280 dstFile = checkDest(srcDir.getName(), dstFS, dstFile, false);
281
282 if (!srcFS.getFileStatus(srcDir).isDirectory())
283 return false;
284
285 OutputStream out = dstFS.create(dstFile);
286
287 try {
288 FileStatus contents[] = srcFS.listStatus(srcDir);
289 Arrays.sort(contents);
290 for (int i = 0; i < contents.length; i++) {
291 if (contents[i].isFile()) {
292 InputStream in = srcFS.open(contents[i].getPath());
293 try {
294 IOUtils.copyBytes(in, out, conf, false);
295 if (addString!=null)
296 out.write(addString.getBytes("UTF-8"));
297
298 } finally {
299 in.close();
300 }
301 }
302 }
303 } finally {
304 out.close();
305 }
306
307
308 if (deleteSource) {
309 return srcFS.delete(srcDir, true);
310 } else {
311 return true;
312 }
313 }
它排序文件阵列(默认升序),源的hadoop 0.23
0
这里是文档(Hadoop的2.7.1): https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/FileSystemShell.html#getmerge
基本上: 1 - 串联的文件到一个 2 - 可以在连接文件之间插入一个新行(-nl)。
例如: $ Hadoop的FS -getmerge [-nl] SRC1 [SRC2 [SRC3]
相关问题
- 1. Cloudera命令:hdfs dfs -put testfile.txt失败
- 2. 无法使用hdfs dfs命令复制hdfs中的数据
- 3. `hdfs dfs -put`命令在HDFS中执行不正确
- 4. 星火聚结VS HDFS getmerge
- 5. 命令用法:当使用Hadoop的FS和HDFS DFS
- 6. Hadoop -getmerge如何工作?
- 7. Hadoop DFS的CopyFromLocal命令如何工作?
- 8. Hadoop:hdfs dfs -text
- 9. 'export'命令有什么作用?
- 10. linux make命令有什么作用?
- 11. flush命令有什么作用?
- 12. Hadoop standalone - hdfs命令很慢
- 13. 为什么没有'hadoop fs -head'shell命令?
- 14. 命令模式,有什么资格作为命令?
- 15. HDFS DFS -copyFromLocal Datanode的拒绝连接
- 16. 如何HDFS mv命令工作
- 17. subprocess popen运行命令(HDFS/hadoop)
- 18. 消耗的HDFS空间:“hdfs dfs -du /”vs“hdfs dfsadmin -report”
- 19. 为什么在运行hadoop(或dfs命令)时,它一直显示不被使用的错误
- 20. 命令为什么不起作用
- 21. 为什么命令Diff2不起作用?
- 22. HDFS命令行追加
- 23. 问题与HDFS命令采取100%cpu
- 24. GIT Checkout命令有什么用?
- 25. ssh命令引用有什么不同?
- 26. hadoop getmerge到另一台机器
- 27. 我的dfs实现有什么问题?
- 28. Hadoop HDFS命令 - 重命名目录
- 29. 无法构建fuse-dfs来挂载HDFS
- 30. 网站发布了以下命令,它有什么作用?
我不认为'getmerge'排序。它只是连接在一起。 –
@PhaniRahul我认为它可以分类,如果你看到实现,它会在代码中执行一个Arrays.sort,并按默认顺序升序排列这些文件。但到目前为止我还没有测试过它。 –