SQOOP SQLSERVER pas réussi à charger un pilote “ gestionnaire de connexions approprié n'est pas réglé”
J'ai téléchargé sqljdbc4.jar
. Je suis en invoquant sqoop
comme si à partir du dossier (où le pot est stockée):
sqoop list-tables --driver com.microsoft.jdbc.sqlserver.SQLServerDriver --connect jdbc:sqlserver://localhost:1433;user=me;password=myPassword; -libjars=./sqljdbc4.jar
J'obtiens le message d'avertissement suivant & erreur:
13/10/25 18:38:13 WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
13/10/25 18:38:13 INFO manager.SqlManager: Using default fetchSize of 1000
13/10/25 18:38:13 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.microsoft.jdbc.sqlserver.SQLServerDriver
java.lang.RuntimeException: Could not load db driver class: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:727)
at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
at org.apache.sqoop.manager.SqlManager.listTables(SqlManager.java:418)
at org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
Mise à JOUR
J'ai changé la ligne de commande afin de refléter les commentaires ci-dessous, j'obtiens le même message d'erreur:
sqoop list-databases -libjars=<ABSOLUTE_PATH>/jars/sqljdbc4.jar --connect jdbc:sqlserver://localhost:1433;user=me;password=password
13/10/28 17:00:33 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver
java.lang.RuntimeException: Could not load db driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver
at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:727)
at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
at org.apache.sqoop.manager.CatalogQueryManager.listDatabases(CatalogQueryManager.java:57)
at org.apache.sqoop.tool.ListDatabasesTool.run(ListDatabasesTool.java:49)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
Quand je regarde la liste des sqljdbc4.jar
, je vois la classe dans ce chemin... Est-il possible que libjars option
n'est pas de faire ce que je pense que c'est censé faire?
OriginalL'auteur hba | 2013-10-25
Vous devez vous connecter pour publier un commentaire.
Dans la grande majorité des cas à l'aide du paramètre
--driver
n'est pas nécessaire et même plus conduire à un comportement indésirable. Je vous recommande fortement de tomber cet argument entièrement à partir de votre ligne de commande. Découvrez Connecteurs vs Pilotes sur le blog pour plus de détails.Aussi en plus de la spécification d'un inexistante de la classe du Pilote JDBC. La bonne est:
Vous pouvez le voir dans le officiel docs, alors que vous êtes en précisant
Avis différents afin de
jdbc
etsqlserver
paquets. C'est une des raisons pourquoi il est recommandé de ne pas utiliser le--driver
option.changer pour ce com.microsoft.sqlserver.jdbc.SQLServerDriver' résolu mon problème ...cela a été me rend fou..merci
OriginalL'auteur Jarek Jarcec Cecho
Vous avez besoin de mettre
sqljdbc4.jar
dans$SQOOP_HOME/lib
et également ajoutersqoop-1.4.4.jar
ou quelle que soit la version que vous utilisez avecsqljdbc4.jar
à$HADOOP_HOME/lib
.Je suis en utilisant
Hadoop-2.2.0
, donc je l'ai mis à l'intérieur de$HADOOP_HOME/share/hadoop/common/lib
répertoire, et utilisez la commande suivante pour effectuer l'importation:export HCAT_HOME=/home/Kuntal/BIG_DATA/hive-0.12.0/hcatalog
(parfois
HCatlog
de la Ruche doit êtreexport
ed ouset
.)./sqoop-import --connect "jdbc:sqlserver://IP\INSTANCE;port=1433;username=USERNAME;password=PASSWORD;database=DATABASE_NAME" --table TABLE_NAME --target-dir hdfs://localhost:50315/sqoop --m 1
Parfois, vous devez spécifier le port, sinon par défaut fonctionne. J'espère que vous trouverez utile.
OriginalL'auteur Kuntal-G
Selon cette documentation sqoop, des options génériques comme
-libjars
doit venir avant outil-options spécifiques:OriginalL'auteur Mark Rotteveel