2017-02-01 8 views
0

Ich habe Probleme wurde mit Blick auf, während Tabellen aus RDBMS durch Sqoop importieren, ich bin die Ausführung des Befehls mit der folgenden Syntax:Sqoop Import bezogene Abfrage

sqoop import --connect jdbc:sqlserver://<hostname>:<port>;username=xxx;password=xxx;database=xxx --table xxx --hive-import --create-hive-table --hive-table xxxx 

Wenn ich es durch Befehlszeile bin die Ausführung seiner Arbeit in Ordnung, aber wenn ich versuche, durch Shell-Skript auszuführen, es wirft den folgenden Fehler:

"error tool.basesqooptool got error creating database manager"

ich verschiedene Permutation Kombination versucht haben, immer noch nicht funktioniert

habe ich --username--password verwendet, dann den db-Namen rechts neben die Portnummer verschoben, habe ich --driver verwendet. Aber nichts funktioniert.

Ich habe ähnliche Diskussionen bei SO überprüft, aber keiner von ihnen funktioniert für mich. $SQOOP_HOME/lib hat die erforderliche Bibliothek. Der Besitz und der Gruppenbesitz entspricht root:root. Der "Benutzer" hat jedoch nur read Erlaubnis, und ich stelle fest, dass es im selben Pfad viele andere Bibliotheken gibt, und der "Benutzer" hat rw Erlaubnis. Trotzdem glaube ich, dass, da der Befehl über CLI funktioniert, keine Probleme mit dem Skript auftreten sollten. Ich möchte nicht mit der Erlaubnis spielen, da es eine sehr eingeschränkte Umgebung ist, möchte ich das als letzte Option beibehalten.

Jede Hilfe wird geschätzt.

+0

Versuchen Sie, Ihre JDBC-URL doppelt anzugeben –

Antwort

0

Wenn Sie mehrmals in dieselbe Tabelle schreiben, wird dies vorkommen.

Verwenden Sie die folgenden Sqoop Befehl und

Sqoop Import -libjars /var/lib/sqoop/ojdbc6.jar --connect siehe 'jdbc: oracle: thin: @ hostname/service_name' - -UserName Benutzer -password Passwort -m 1 --hive-Überschreibungs --hive-Import--hive-Datenbank database_name --hive-Tabelle table_nmae --target-dir ‚/ user/Nest/Lager/databasename.db/name‘--query "select * from source_database.source_tablename WHERE 1 = 1 und \ $ BEDINGUNGEN"

wenn es noch gibt Ihnen die gleichen Fehler, die ändern target-dir zu einem anderen hdfs-Speicherort (Beispiel:/temp/test/table_name)

Wenn es einen Fehler nach dem Fehler widerspiegelt, kann ich Ihnen besser helfen.