2017-02-03 4 views
0

У меня есть большой файл в HDFS и вы хотите разбить его на несколько кусков.Как использовать команду разделения linux для файла в HDFS?

Если файл находится в моей локальной файловой системе, я могу использовать split для его достижения.

Однако файл находится в HDFS, и я не хочу (не могу) скопировать его в локальную файловую систему.

Как я могу использовать сплит команды на файл в формате HDFS?

+0

Насколько велик ваш файл? – ravi

+1

* У меня большой файл в HDFS и вы хотите разбить его на несколько кусков *. Это бессмысленно. HDFS уже разбивает файл в вашем кластере –

+0

@ cricket_007 Это, безусловно, имеет смысл. HDFS разбивает файлы внутри и не предоставляет их вам. – syko

ответ

0

Комбинация команд HDFS и Unix может выполнять задание, если размер файла невелик.

Однако я бы не рекомендовал его. Рамка Hadoop разбивает файл на более мелкие куски (размер по умолчанию составляет 64 МБ для Hadoop-1.X & 128 МБ для Hadoop-2.X) и физически распределяется по кластеру.

Можете ли вы описать причину разделения файла на HDFS?

+0

Размер файла превышает несколько TB, что превышает емкость одного диска. Мне нужно скопировать содержимое файла в HDFS в локальную файловую систему нескольких машин. Для этого мне сначала нужно разделить файл в HDFS явно. (Я не знаю, как писать программу Map/Reduce, я просто использую HDFS как распределенную файловую систему.) – syko

+0

Вы пробовали утилиту сжатия, такую ​​как bzip2, которая также может быть разделена на HDFS? – ravi