Запрос связан с sqoop-import? - PullRequest
1 голос
/ 22 декабря 2011

Сценарий:

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

part-m-00000
part-m-00001
part-m-00002
part-m-00003

Вопрос:

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

Ответы [ 3 ]

2 голосов
/ 15 февраля 2012

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

RL

1 голос
/ 18 декабря 2017

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

0 голосов
/ 19 декабря 2017

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

$ sudo cat part-m-*

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

...