как я могу предоставить пароль для SQOOP через OOZIE для подключения к MS-SQL?

я экспортирую информацию из HDFS в MS-SQL с помощью SQOOP. Я запускаю SQOOP через OOZIE. Прямо сейчас я жестко закодировал uid, pwd для соединения jdbc в рабочем процессе OOZIE. Как только я переключусь на prod, я не смогу этого сделать. Каков наилучший способ передачи информации аутентификации в такой ситуации?

<sqoop xmlns="uri:oozie:sqoop-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <arg>export</arg>
            <arg>--connect</arg>
            <arg>jdbc:sqlserver://$sqlServerIP:1433</arg>
            <arg>--table</arg>
            <arg>tableName</arg>
            <arg>--export-dir</arg>
            <arg>/user/sqoop/file</arg>
            <arg>--username</arg>
            <arg>me</arg>
            <arg>--password</arg>
            <arg>password</arg>
</sqoop>

я мог бы передать их в качестве параметров, таких как $userName, $password. Но фактический uid / pwd все равно будет отображаться в сети oozie приставка.

обновление

Я пробовал два способа (как предложено ниже) сделать это...в VIM я создал pwd, чтобы просто иметь пароль (без пробелов или чего-либо еще). Называется этот дуо.

1) я попытался использовать файловую систему. Однако я получил IOException, говорящее, что файл не существует. После просмотра кода, похоже, что sqoop использует переданный conf для доступа к fs. Поэтому я предполагаю, что когда пробежал через oozie, у него будет только доступ к Файловую систему HDFS.

2) я загрузил файл пароля в случайное место на hdfs. / users / my-name / pwd (pwd-это файл). Теперь он может получить доступ к файлу (так как я не получаю IOException). Однако ему не удается подключиться к SQLServer. Я не уверен, что мне нужно сделать, чтобы заставить его работать?

обновление 2 Я создавал файл пароля следующим образом:echo "pwd" > my.password Это добавляет EOL в файл my.пароль: Я перешел на echo -n "pwd" > my.password и теперь он работает.

1 ответов


Я думаю, что вы можете воспользоваться указанием аргумента --password-file, чтобы Oozie никогда не видел пароль. Взгляните в Sqoop Руководство Пользователя для более подробной информации.