2016-08-20 1 views
0

Мой импорт Sqoop работает только с 1 задачей карты (- m 1) не более.Sqoop работает только с 1 задачей карты (- m 1) не более,

Это работает:

sqoop import --connect jdbc:mysql://localhost/databaseY --username root --password PASSWORD --table tableX --target-dir /tmp/databaseY --as-textfile -m 1 

Это не так:

sqoop import --connect jdbc:mysql://localhost/databaseY --username root --password PASSWORD --table tableX --target-dir /tmp/databaseY --as-textfile -m 3 

Мой кластер представляет собой 3 узлов на AWS.

Я пропустил что-то во время конфигурации?

---- EDIT FOR SOLUTION ---- Проблема была локальная. Я изменил его по IP-адресу, и он работает нормально.

+0

ли исходная таблица имеет PK? –

+0

обе команды одинаковы. Пожалуйста, измените свой вопрос. –

+0

Dev: Он модифицирован. Теперь -m в конце не то же самое. BigDataLearner: Исходная таблица должна быть в порядке, так как она является официальной тестовой примерной таблицей. – Selverine

ответ

1

Как sqoop docs достаточно, чтобы положить некоторый свет на это,

При выполнении параллельного импорта, Sqoop нужен критерий, с помощью которого он может разделить нагрузку. Sqoop использует разделительную колонку для разделения рабочей нагрузки. По умолчанию Sqoop идентифицирует столбец первичного ключа (если он есть) в таблице и использует его как столбец разделения. Низкие и высокие значения для столбца разделения извлекаются из базы данных, а задачи карты работают с равномерными компонентами всего диапазона. Например, если у вас была таблица с столбцом первичного ключа с идентификатором, минимальное значение которого равнялось 0, а максимальное значение - 1000, а Sqoop было направлено на использование 4 задач, Sqoop запускал бы четыре процесса, каждый из которых выполнял SQL-выражения формы SELECT * FROM sometable WHERE id >= lo AND id < hi, с (lo, hi), установленными в (0, 250), (250, 500), (500, 750) и (750, 1001) в разных задачах.


Если таблица не имеет первичный ключ определена и --split-by <col> не предусмотрен, то импорт будет ошибка, если количество картографов явно не установлено в единицу с опцией --num-mappers 1.

(выделено мной)

Edit: Мой предыдущий answer по соответствующей теме также поможет вам в этом.