Esportare informazioni da HDFS in MS-SQL utilizzando SQOOP. Sto eseguendo SQOOP tramite OOZIE. In questo momento ho hard-coded l'uid, pwd per la connessione jdbc nel flusso di lavoro OOZIE. Una volta che passo a prod, non sarò in grado di farlo. Qual è il modo migliore per passare le informazioni di autenticazione in una situazione come questa?Come posso fornire la password a SQOOP tramite OOZIE per connettersi a MS-SQL?
<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>
Potrei passarli come parametri come $ userName, $ password. Ma l'attuale uid/pwd dovrebbe ancora essere mostrato nella console web di oozie.
UPDATE
Ho provato due modi (come suggerito sotto) per fare questo ... In VIM ho creato pwd di avere solo la password (senza spazi bianchi o qualsiasi altra cosa). Chiamato questo pwd
1) Ho provato a utilizzare il file system. Tuttavia ho ricevuto una IOException che dice che il file non esiste. Dopo aver esaminato il codice, sembra che sqoop usi il conf passato per accedere a fs. Quindi presumo che quando ha funzionato attraverso Oozie avrà accesso solo a HDFS.
2) Ho caricato il file della password in una posizione casuale su hdfs./users/my-name/pwd (pwd è il file). Ora può accedere al file (dal momento che non ottengo una IOException). Tuttavia non riesce a connettersi a SQLServer. Non sono sicuro di cosa devo fare per farlo funzionare?
UPDATE 2 stavo creando il file delle password in questo modo: echo "pwd" > my.password
Questo aggiunge un EOL al file my.password ho cambiato per echo -n "pwd" > my.password
ed ora funziona.
Volevo solo notare che (almeno su CentOS 7) "echo -n" pw_d "> my.password'' omette il simbolo' '_'' se esiste, scrivendo solo' 'pwd'' sul file. Quindi, '' vi'' può essere un'alternativa migliore – Nutle