SQOOP SQLSERVER Failed to load driver " appropriate connection manager is not being set" SQOOP SQLSERVER Failed to load driver " appropriate connection manager is not being set" hadoop hadoop

SQOOP SQLSERVER Failed to load driver " appropriate connection manager is not being set"


In vast majority of cases using parameter --driver is not required and even more will lead to an undesirable behaviour. I would strongly recommend dropping this argument entirely from your command line. Check out Connectors vs Drivers blog post for more details.

Also in addition you are specifying a nonexistent JDBC Driver class. The correct one is:

com.microsoft.sqlserver.jdbc.SQLServerDriver

You can see it in the official docs, whereas you are specifying

com.microsoft.jdbc.sqlserver.SQLServerDriver

Notice the different order of jdbc and sqlserver packages. This is one of the reasons why it's recommended to not use the --driver option at all.


You need to put sqljdbc4.jar in $SQOOP_HOME/lib and also add sqoop-1.4.4.jar or whatever version you are using along with sqljdbc4.jar to $HADOOP_HOME/lib.

I'm using Hadoop-2.2.0, so i put it inside $HADOOP_HOME/share/hadoop/common/lib directory, and use the following command to do the import:

export HCAT_HOME=/home/Kuntal/BIG_DATA/hive-0.12.0/hcatalog

(sometimes HCatlog of Hive needs to be exported or set.)

./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

Sometimes you have to specify the port, otherwise default works. Hope you find it useful.


According to this sqoop documentation, generic options like -libjars must come before tool-specific options:

Generic Hadoop command-line arguments:
(must preceed any tool-specific arguments)
...
-libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.