Как передать свойства 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
Проверьте, если вы обнаружите какие-либо различия в первом исполнении и последующем исполнении.