Description
Currently, tajo-client and tajo-jdbc are included in tajo-core-backend, which depends on lots of third-party libraries. So, even just client programs should include unnecessary third-party libraries. This patch separates tajo-jdbc and tajo-client from tajo-core-backend to individual maven modules. As a result, the client and jdbc's dependencies are more simplified than before.
After this patch, 'mvn package -Pdist' commands generates tajo jdbc drivers in ${TAJO_HOME}/tajo-dist/target/tajo-${tajo.version}/share/jdbc-dist. There will be the following files in the directory:
joda-time-2.3.jar tajo-catalog-common-0.8.0-SNAPSHOT.jar tajo-client-0.8.0-SNAPSHOT.jar tajo-common-0.8.0-SNAPSHOT.jar tajo-jdbc-0.8.0-SNAPSHOT.jar tajo-rpc-0.8.0-SNAPSHOT.jar tajo-storage-0.8.0-SNAPSHOT.jar
In order to load the Tajo JDBC driver, client programs must be able to locate the all above JAR files* and hadoop's JAR files.
For that, users should set classpath for them. If the jar files are located in the directory '/usr/local/share/tajo-jdbc' and hadoop binary is located in '/opt/hadoop', you should set classpath as follows:
export CLASSPATH=`/opt/hadoop/bin/hadoop classpath`:/usr/local/share/tajo-jdbc/*:$CLASSPATH
Note that the command '${HADOOP_HOME}/bin/hadoop classpath' prints out hadoop's classpaths via stdout.