Since the tar.gz is blocked by security, I will attached the file separately.
From: Zhou, Richard [mailto:[email protected]] Sent: Thursday, December 04, 2014 1:26 PM To: [email protected]; 呂佳鴻 Subject: RE: sqoop 1.99.3 problem in using java api Hi, I have tested it. And it works fine. The source code of the project is attached. Run command “mvn clean compile assembly:single” to build jar with dependency, in case there is no maven repo in your test environment. Run command “java -classpath test-1.0-SNAPSHOT-jar-with-dependencies.jar com.intel.richard.App” with your jar package “test-1.0-SNAPSHOT-jar-with-dependencies.jar”. And here is the result from Sqoop client: ============================================================================== [root@server-519 richard]# sh /usr/lib/sqoop2/bin/sqoop.sh client Sqoop home directory: /usr/lib/sqoop2 :/usr/lib/sqoop2/client-lib/commons-cli-1.2.jar:/usr/lib/sqoop2/client-lib/commons-lang-2.6.jar:/usr/lib/sqoop2/client-lib/groovy-all-1.8.5.jar:/usr/lib/sqoop2/client-lib/hamcrest-core-1.3.jar:/usr/lib/sqoop2/client-lib/jansi-1.7.jar:/usr/lib/sqoop2/client-lib/jersey-client-1.11.jar:/usr/lib/sqoop2/client-lib/jersey-core-1.9.jar:/usr/lib/sqoop2/client-lib/jline-0.9.94.jar:/usr/lib/sqoop2/client-lib/json-simple-1.1.jar:/usr/lib/sqoop2/client-lib/log4j-1.2.16.jar:/usr/lib/sqoop2/client-lib/sqoop-client-1.99.3-cdh5.2.0.jar:/usr/lib/sqoop2/client-lib/sqoop-common-1.99.3-cdh5.2.0.jar:/usr/lib/sqoop2/client-lib/sqoop-shell-1.99.3-cdh5.2.0.jar Sqoop Shell: Type 'help' or '\h' for help. sqoop:000> show connection +----+--------------+-----------+---------+ | Id | Name | Connector | Enabled | +----+--------------+-----------+---------+ | 1 | c | 1 | true | | 2 | MyConnection | 1 | true | +----+--------------+-----------+---------+ ============================================================================== Btw, I use 1.99.3 sqoop-shell lib in pom.xml. <dependency> <groupId>org.apache.sqoop</groupId> <artifactId>sqoop-shell</artifactId> <version>1.99.3</version> </dependency> Regards Richard From: Abraham Elmahrek [mailto:[email protected]] Sent: Thursday, December 04, 2014 12:11 PM To: [email protected]<mailto:[email protected]> Subject: Re: sqoop 1.99.3 problem in using java api Hey there, What are you trying to achieve exactly? It seems like you are extending Sqoop2 instead of using its Java client? -Abe On Wed, Dec 3, 2014 at 1:04 AM, 呂佳鴻 <[email protected]<mailto:[email protected]>> wrote: hi , i have problem in using sqoop java api. First, I add dependency to sqoop (sqoop/shell/pom.xml) and run command: mvn install (Is it correct ?) Here is the testing code i use import org.apache.sqoop.client.SqoopClient; import org.apache.sqoop.model.MConnection; import org.apache.sqoop.model.MConnectionForms; import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MJobForms; import org.apache.sqoop.model.MSubmission; import org.apache.sqoop.submission.counter.Counter; import org.apache.sqoop.submission.counter.CounterGroup; import org.apache.sqoop.submission.counter.Counters; import org.apache.sqoop.validation.Status; import org.apache.sqoop.*; public class SqoopAccess{ public static void main(String[] args){ String url = "http://localhost:12000/sqoop/"; SqoopClient client = new SqoopClient(url); client.setServerUrl(url); MConnection newCon = client.newConnection(1); MConnectionForms conForms = newCon.getConnectorPart(); MConnectionForms frameworkForms = newCon.getFrameworkPart(); newCon.setName("MyConnection"); conForms.getStringInput("connection.connectionString").setValue("jdbc:mysql://localhost/sqoop_test"); conForms.getStringInput("connection.jdbcDriver").setValue("com.mysql.jdbc.Driver"); conForms.getStringInput("connection.username").setValue("root"); conForms.getStringInput("connection.password").setValue("root"); frameworkForms.getIntegerInput("security.maxConnections").setValue(0); } } when i run, i got the exception Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/sqoop/common/ErrorCode at SqoopAccess.main(SqoopAccess.java:15) Caused by: java.lang.ClassNotFoundException: org.apache.sqoop.common.ErrorCode at java.net.URLClassLoader$1.run(URLClassLoader.java:372) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:360) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more Which part is incorrect? I'm no idea for how to use it . Is any sample i can find or use on the website? Thanks.
App.java
Description: App.java
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.intel.richard</groupId> <artifactId>test</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>test</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <sqoop.version>1.99.3</sqoop.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.sqoop</groupId> <artifactId>sqoop-shell</artifactId> <version>${sqoop.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>fully.qualified.MainClass</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build> </project>
