作爲配置單元查詢的結果,我獲得了多個輸出文件(按排序分配),現在我想合併它們以生成單個文件。所以我試過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,並按默認順序升序排列這些文件。但到目前爲止我還沒有測試過它。 –