В результате запроса на улей я получаю несколько выходных файлов (распределялся по сортировке), и теперь я хочу объединить их для создания одного файла. Поэтому я пробовал команду 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) между конкатенированными файлами.
Ex: $ Hadoop фс -getmerge [-nl] src1 [src2 [src3]]
Смежные вопросы
- 1. Команда Cloudera: hdfs dfs -put testfile.txt Сбой
- 2. Spark coalesce vs HDFS getmerge
- 3. Hadoop: обратный hdfs dfs -text
- 4. Разница между «hdfs dfs -ls» и «hdfs dfs -ls /»
- 5. hadoop getmerge на другую машину
- 6. Что делает команда «hadoop namenode -format»
- 7. hdfs dfs -put с перезаписью?
- 8. Результат команды hdfs dfs -ls
- 9. Потребление HDFS: «hdfs dfs -du /» vs «hdfs dfsadmin -report»
- 10. Что делает команда arg1?
- 11. Что делает команда linux?
- 12. Что делает команда CVS?
- 13. Что делает команда GIT?
- 14. Что делает команда flush?
- 15. Что делает команда xargs?
- 16. Как работает getMerge в Hadoop?
- 17. HDFS -copyFromLocal DataNode DFS отказывающиеся соединение
- 18. Что делает команда «tar cvf -.»?
- 19. Git - что делает команда stash?
- 20. Что делает команда windbg «kd»?
- 21. Что делает команда Shell/Awk?
- 22. Python: Что делает команда -o?
- 23. Что делает команда gdb 'x'?
- 24. Что делает команда «узел». делать?
- 25. Что делает команда «git reset»?
- 26. Что именно делает эта команда?
- 27. Что делает эта команда sed?
- 28. Что делает эта команда? SED
- 29. Что делает эта команда оболочки?
- 30. Что делает команда usb start?
я не думаю, что 'getmerge' сорта. Это просто конкатенация. –
@PhaniRahul Я думаю, что это сортирует, если вы видите реализацию, она делает Arrays.sort в коде и сортирует файлы по возрастанию по умолчанию. Но я пока не проверял его. –