Hi Cheolsoo, Yeah, I know. I was looking for an alternative way by which we could tell Sqoop to load jars from a location different than Sqoop/lib. I was looking for such an alternative because currently i don't have permissions to add jars in Sqoop/lib, though i have initiated the process.
Thanks & Regards, Dipesh On Mon, Apr 23, 2012 at 11:13 PM, Cheolsoo Park <[email protected]>wrote: > Hi Dipesh, > > 12/04/23 01:02:42 ERROR sqoop.Sqoop: Got exception running Sqoop: >> java.lang.RuntimeException: Could not load db driver class: >> com.teradata.jdbc.TeraDriver >> > java.lang.RuntimeException: Could not load db driver class: >> com.teradata.jdbc.TeraDrive > > > Your Teradata jdbc jar is not found by Sqoop. The easiest way to fix it is > to put *terajdbc4.jar* and *tdgssconfig.jar* in */usr/lib/sqoop/lib*. > > Thanks, > Cheolsoo > > On Mon, Apr 23, 2012 at 10:32 AM, DIPESH KUMAR SINGH < > [email protected]> wrote: > >> Hi Cheolsoo, >> >> As you suggested, I tried after removing "TeraDriver" line from >> connectors file but that didn't worked >> too. Please help..!! >> >> Here is the stack trace: >> >>> >>> 12/04/23 01:02:35 DEBUG tool.BaseSqoopTool: Enabled debug logging. >>> >> Enter password: >>> >> 12/04/23 01:02:42 DEBUG util.ClassLoaderStack: Checking for existing >>> class: com.cloudera.sqoop.manager.TeradataManagerFactory >>> >> 12/04/23 01:02:42 DEBUG util.ClassLoaderStack: Attempting to load jar >>> through URL: >>> jar:file:///ms/user/a/sqoop-user/Sqoop/sqoop-td-connector-1.0.5.jar!/ >>> >> 12/04/23 01:02:42 DEBUG util.ClassLoaderStack: Previous classloader is >>> java.net.URLClassLoader@27b15692 >>> >> 12/04/23 01:02:42 DEBUG util.ClassLoaderStack: Testing class in jar: >>> com.cloudera.sqoop.manager.TeradataManagerFactory >>> >> 12/04/23 01:02:42 DEBUG util.ClassLoaderStack: Loaded jar into current >>> JVM: jar:file:///ms/user/a/sqoop-user/Sqoop/sqoop-td-connector-1.0.5.jar!/ >>> >> 12/04/23 01:02:42 DEBUG util.ClassLoaderStack: Added classloader for jar >>> /ms/user/a/sqoop-user/Sqoop/sqoop-td-connector-1.0.5.jar: >>> java.net.FactoryURLClassLoader@19e3cd51 >>> >> 12/04/23 01:02:42 DEBUG sqoop.ConnFactory: Added factory >>> com.cloudera.sqoop.manager.TeradataManagerFactory in jar >>> /ms/user/a/sqoop-user/Sqoop/sqoop-td-connector-1.0.5.jar specified by >>> /ms/user/a/sqoop-user/Sqoop/conf/managers.d/connectors >>> >> 12/04/23 01:02:42 DEBUG sqoop.ConnFactory: Loaded manager factory: >>> com.cloudera.sqoop.manager.TeradataManagerFactory >>> >> 12/04/23 01:02:42 DEBUG sqoop.ConnFactory: Loaded manager factory: >>> com.cloudera.sqoop.manager.DefaultManagerFactory >>> >> 12/04/23 01:02:42 DEBUG sqoop.ConnFactory: Trying ManagerFactory: >>> com.cloudera.sqoop.manager.TeradataManagerFactory >>> >> 12/04/23 01:02:42 DEBUG manager.TeradataManagerFactory: Trying with >>> scheme: jdbc:teradata: >>> >> 12/04/23 01:02:42 INFO manager.SqlManager: Using default fetchSize of 1000 >>> >> 12/04/23 01:02:42 DEBUG sqoop.ConnFactory: Instantiated ConnManager >>> com.cloudera.sqoop.teradata.TeradataManager@220ca470 >>> >> 12/04/23 01:02:42 INFO tool.CodeGenTool: Beginning code generation >>> >> 12/04/23 01:02:42 ERROR sqoop.Sqoop: Got exception running Sqoop: >>> java.lang.RuntimeException: Could not load db driver class: >>> com.teradata.jdbc.TeraDriver >>> >> java.lang.RuntimeException: Could not load db driver class: >>> com.teradata.jdbc.TeraDriver >>> >> at >>> com.cloudera.sqoop.manager.SqlManager.makeConnection(SqlManager.java:634) >>> >> at >>> com.cloudera.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:51) >>> >> at com.cloudera.sqoop.manager.SqlManager.execute(SqlManager.java:456) >>> >> at com.cloudera.sqoop.manager.SqlManager.execute(SqlManager.java:479) >>> >> at >>> com.cloudera.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:192) >>> >> at >>> com.cloudera.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:176) >>> >> at com.cloudera.sqoop.orm.ClassWriter.generate(ClassWriter.java:1017) >>> >> at com.cloudera.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82) >>> >> at com.cloudera.sqoop.tool.ImportTool.importTable(ImportTool.java:337) >>> >> at com.cloudera.sqoop.tool.ImportTool.run(ImportTool.java:423) >>> >> at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144) >>> >> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) >>> >> at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180) >>> >> at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:219) >>> >> at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:228) >>> >> at com.cloudera.sqoop.Sqoop.main(Sqoop.java:237) >>> >> >>> >> Thanks, >> >> Dipesh >> >> >> >> On Sun, Apr 22, 2012 at 3:01 PM, Cheolsoo Park <[email protected]>wrote: >> >>> Hi Dispesh, >>> >>> I added the line com.teradata.jdbc.TeraDriver=<path to jar file >>>> terajdbc4.jar> along with >>>> com.cloudera.sqoop.manager.TeradataManagerFactory=<path to >>>> sqoop-td-connector-1.0.5.jar> >>>> in connectors file inside managers.d directory. >>> >>> >>> Please remove "com.teradata.jdbc.TeraDriver=<path to jar file >>> terajdbc4.jar>" from your connector file. >>> >>> It should only contain >>> "com.cloudera.sqoop.manager.TeradataManagerFactory=<path >>> to sqoop-td-connector-1.0.5.jar>". >>> >>> Thanks, >>> Cheolsoo >>> >>> >>> On Sat, Apr 21, 2012 at 10:21 PM, DIPESH KUMAR SINGH < >>> [email protected]> wrote: >>> >>>> I am trying to import the data from Teradata to hdfs referring Cloudera >>>> Connector guide. I added the property >>>> >>>> (The Hadoop environment i am working in is a shared Hadoop >>>> installation, So users are not allowed to >>>> add any jars in lib directory or make changes in Sqoop-site.xml of >>>> central installation. >>>> However, users can use .profile i.e. user's configuration files to >>>> specify CLASSPATH ) >>>> >>>> I added the line com.teradata.jdbc.TeraDriver=<path to jar file >>>> terajdbc4.jar> along with >>>> com.cloudera.sqoop.manager.TeradataManagerFactory=<path to >>>> sqoop-td-connector-1.0.5.jar> >>>> in connectors file inside managers.d directory. In my CLASSPATH, i have >>>> added path to >>>> SQOOP_CONF i.e. a Sqoop folder where i have kept my managers.d and all >>>> jars. >>>> >>>> >>>> With these I suppose i am able to connect to teradata using the >>>> teradata manager factory using the teradriver as well >>>> but, still i am facing this when i issue the sqoop import command as >>>> below >>>> >>>> sqoop import >>>> -libjars <path to tdgssconfig.jar> >>>> --driver com.teradata.jdbc.TeraDriver >>>> --connect jdbc:teradata://xxxxxx/DATABASE=dbname >>>> --username hadoop --P >>>> --table SQOOP_TEST >>>> --num-mappers 3 --verbose >>>> >>>> 12/04/13 02:29:32 DEBUG tool.BaseSqoopTool: Enabled debug logging. >>>> 12/04/13 02:29:32 WARN tool.BaseSqoopTool: Setting your password on the >>>> command-line is insecure. Consider using -P instead. >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Checking for existing >>>> class: com.cloudera.sqoop.manager.TeradataManagerFactory >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Attempting to load jar >>>> through URL: jar:file:///Sqoop/sqoop-td-connector-1.0.5.jar!/ >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Previous classloader is >>>> java.net.URLClassLoader@6a8c436b >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Testing class in jar: >>>> com.cloudera.sqoop.manager.TeradataManagerFactory >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Loaded jar into current >>>> JVM: jar:file:///Sqoop/sqoop-td-connector-1.0.5.jar!/ >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Added classloader for >>>> jar /Sqoop/sqoop-td-connector-1.0.5.jar: >>>> java.net.FactoryURLClassLoader@45db05b2 >>>> 12/04/13 02:29:32 DEBUG sqoop.ConnFactory: Added factory >>>> com.cloudera.sqoop.manager.TeradataManagerFactory in jar >>>> /Sqoop/sqoop-td-connector-1.0.5.jar specified by >>>> /Sqoop/conf/managers.d/connectors >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Checking for existing >>>> class: com.teradata.jdbc.TeraDriver >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Attempting to load jar >>>> through URL: jar:file:///Sqoop/lib/terajdbc4.jar!/ >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Previous classloader is >>>> java.net.FactoryURLClassLoader@45db05b2 >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Testing class in jar: >>>> com.teradata.jdbc.TeraDriver >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Loaded jar into current >>>> JVM: jar:file:///Sqoop/lib/terajdbc4.jar!/ >>>> 12/04/13 02:29:32 DEBUG util.ClassLoaderStack: Added classloader for >>>> jar /Sqoop/lib/terajdbc4.jar: java.net.FactoryURLClassLoader@518f5824 >>>> 12/04/13 02:29:32 DEBUG sqoop.ConnFactory: Added factory >>>> com.teradata.jdbc.TeraDriver in jar /Sqoop/lib/terajdbc4.jar specified by >>>> /Sqoop/conf/managers.d/connectors >>>> 12/04/13 02:29:32 DEBUG sqoop.ConnFactory: Loaded manager factory: >>>> com.cloudera.sqoop.manager.TeradataManagerFactory >>>> 12/04/13 02:29:32 ERROR tool.BaseSqoopTool: Got error creating database >>>> manager: java.lang.ClassCastException: com.teradata.jdbc.TeraDriver cannot >>>> be cast to com.cloudera.sqoop.manager.ManagerFactory >>>> at >>>> com.cloudera.sqoop.ConnFactory.instantiateFactories(ConnFactory.java:90) >>>> at com.cloudera.sqoop.ConnFactory.<init>(ConnFactory.java:60) >>>> at com.cloudera.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:186) >>>> at com.cloudera.sqoop.tool.ImportTool.init(ImportTool.java:81) >>>> at com.cloudera.sqoop.tool.ImportTool.run(ImportTool.java:411) >>>> at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144) >>>> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) >>>> at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180) >>>> at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:219) >>>> at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:228) >>>> at com.cloudera.sqoop.Sqoop.main(Sqoop.java:237) >>>> >>>> >>>> Please help. >>>> >>>> Thanks & Regards, >>>> -- >>>> Dipesh Kr. Singh >>>> >>>> >>>> >>>> >>>> >>> >> >> >> -- >> Dipesh Kr. Singh >> >> >> >> >> > -- Dipesh Kr. Singh
