Как передать свойства Java для задания импорта sqoop

При использовании sqoop import возможно передать свойства java. В моем случае мне нужно пройти

-Doraoop.oracle.rac.service.name=myservice

вместе с --direct использовать sqoop прямое подключение к оракулу RAC.

Теперь мне нужно создать задание sqoop с тем же параметром, но когда я пытаюсь выдать

sqoop job --create myjob -- import -Doraoop.oracle.rac.service.name=myservice --direct --connect...

Жалуется говоря

ERROR tool.BaseSqoopTool: Error parsing arguments for import:
ERROR tool.BaseSqoopTool: Unrecognized argument: -Doraoop.oracle.rac.service.name=myservice
....

Куда бы я ни положил -D это не работает, в то время как с прямым импортом sqoop это работает.

Работает только следующим образом

sqoop job -Doraoop.oracle.rac.service.name=myservice --create myjob -- import ...

но таким образом свойство передается текущему выполнению, а не последующему выполнению задания.

Есть ли способ передать свойства Java через -D к sqoop job --create myjob -- import команда?

Пытаюсь с sqoop 1.4.6 на cdh 5.5

1 ответ

Согласно документам Sqoop,

Синтаксис для команды задания sqoop:

sqoop job (generic-args) (job-args) [-- [subtool-name] (subtool-args)]

Сейчас -Dявляется родовым аргументом и --create myjob работа-аргумент

Таким образом, вы должны использовать команду как:

sqoop job -Doraoop.oracle.rac.service.name=myservice --create myjob ....

Для текущего и последующего выполнения задания оно должно вести себя одинаково.

Проверьте конфигурацию работы, используя:

sqoop job --show myjob

Проверьте, если вы обнаружите какие-либо различия в первом исполнении и последующем исполнении.

Другие вопросы по тегам