2016-06-17 8 views
0

Sqoop-Job fordert immer zur Eingabe eines Passworts in CLI auf. Um dies zu vermeiden, wurde die Eigenschaft sqoop.metastore.client.record.password als wahr definiert. Aber überall heißt es, dass ich diesen Wert in sqqop_site.xml ändern muss. Kann ich diesen Wert trotzdem auf einen Job setzen? Ich habe versucht, einen Job zu erstellen, wie unten und Sqoop versagt esSqoop-Job mit Passwortproblem

sqoop job --create TEST -D sqoop.metastore.client.record.password=true -- import \ 
--connect jdbc:netezza://xx.xxx.xx.xxx/database \ 
--username username \ 
--password password \ 
--table tablename \ 
--split-by key \ 
--hcatalog-database hivedatabase \ 
--hcatalog-table hivetable \ 
--hcatalog-storage-stanza 'STORED as ORC TBLPROPERTIES('orc.compress'='NONE')' \ 
-m 100 

Fehler zu erstellen:

Warning: /usr/iop/4.1.0.0/sqoop/../accumulo does not exist! Accumulo imports will fail. 
Please set $ACCUMULO_HOME to the root of your Accumulo installation. 
16/06/17 07:10:08 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6_IBM_20 
16/06/17 07:10:08 ERROR tool.BaseSqoopTool: Error parsing arguments for job: 
16/06/17 07:10:08 ERROR tool.BaseSqoopTool: Unrecognized argument: -D 
16/06/17 07:10:08 ERROR tool.BaseSqoopTool: Unrecognized argument: sqoop.metastore.client.record.password=true 

Kann jemand bitte helfen Sie mir mit diesem. Ich muss einen Job ohne Eingabeaufforderung in CLI ausführen.

+0

configure diese Parameter im Sqoop-site.xml sqoop.metastore.client.autoconnect.username sqoop.metastore.client.autoconnect.password – marjun

+0

Ich will nicht die sqoop_site.xml Datei ändern. Ich möchte nur für einen Job wechseln – Sathyaraj

Antwort

1

Sie können Ihr Passwort in einer Datei speichern und den Pfad zu dieser Datei mit dem Parameter --password-file angeben.

--password-file 'Set path for a file containing the authentication password' 

Sqoop wird dann das Kennwort aus der Datei gelesen und in den MapReduce-Cluster mit sicheren Mitteln passieren, ohne das Passwort in der Konfiguration des Projekt auszusetzen.

+0

Genau so haben wir dieses Problem gelöst. Es ist relativ sicher, solange der Speicherort des gespeicherten Passworts durch Berechtigungen und Gruppen usw. gesperrt ist. In unserem Fall haben wir einen weiteren Schritt unternommen, nämlich das Passwort auf der Hadoop-Seite zu verschlüsseln und dann den sqoop-Befehl innerhalb von a aufzurufen Wrapper-Programm, das das Passwort entschlüsseln konnte, bevor es an sqoop übergeben wurde. –

+0

./bin/sqoop Export --bindir ./ --connect jdbc: mysql: // localhost/DBname - Benutzername DB_Username --passoword yourDBpassword --tabelle Tabellenname --export-dir/hdfspath –