Запрос, связанный с sqoop-импортом?

Сценарий:

Я импортировал данные с сервера SQl в HDFS. Данные хранятся в каталоге HDFS в нескольких файлах как:

часть-m-00000
часть-m-00001
часть-m-00002
часть-m-00003

Вопрос:

Мой вопрос заключается в том, что при чтении этих сохраненных данных из каталога HDFS мы должны прочитать весь файл (part-m-00000,01,02,03) или только part-m-00000. Потому что, когда я прочитал эти данные, я обнаружил, что данные внутри HDFS немного отсутствуют. Так бывает или я что-то упустил?


person Bhavesh Shah    schedule 22.12.2011    source источник


Ответы (3)


Вам нужно прочитать все файлы, а не только 00000. Причина, по которой существует несколько файлов, заключается в том, что sqoop работает в режиме уменьшения карты, разделяя работу «импорта» на несколько частей. Результат каждой части помещается в отдельный файл.

RL

person Harel Ben Attia    schedule 15.02.2012

Sqoop выполняет импорт без редукторов. В результате нет консолидации файлов частей, которые были обработаны преобразователями. Следовательно, вы увидите файлы частей в зависимости от количества преобразователей, которые вы установили в команде sqoop как --m4 или --num-4.Поэтому, если вы укажете sqoop import --connect jdbc:mysql://localhost/db --username <>--table <>--m1, будет создан только один файл детали.

person Subash    schedule 18.12.2017

Если размер вашего результата огромен, Hive сохранит результат в кусках. И если вы хотите прочитать все эти файлы с помощью CLI, выполните приведенную ниже команду.

$ sudo cat part-m-*

Это даст вам окончательный результат без какой-либо недостающей части.

person JAy PaTel    schedule 19.12.2017