我的類看起來像這樣如何在不是mapreduce作業時設置用戶類路徑優先級?
public class generateAll extends Configured implements Tool
{
public static void main(String[] args) throws Exception
{
ToolRunner.run(new generateAll(), args);
}
.
.
.
我要的是,執行使用Hadoop jar命令的程序,因爲我使用的內部程序getConf()語句。
沒有涉及mapper reducer。
已經有在Hadoop中的庫 我的程序正在使用hsqlsb 2.2.9(作爲Maven的依賴)一HSQLDB 1.8
有在jobConf的方法來超越用戶類路徑的Hadoop類路徑,但由於我的程序不涉及map/reduce,如何重寫hadoop classpath?
作爲測試文件運行時,程序運行良好。 的Hadoop版本 - cdh3u3
的錯誤,而使用Hadoop jar命令拋出的是:
異常線程 「main」 值java.sql.SQLException:意外的令牌,需要(在語句[創建表咔嗒] at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source) at org.hsqldb.jdbc.jdbcStatement.execute(Unknown Source) at com.inmobi。 qa.SQLUtil.SQLScriptExecuter.executeScript(SQLScriptExecuter.java:62) at com.inmobi.qa.logboxtools.generateAll.test_table_creation(generateAll.java:186) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.util。com.inmobi.qa.logboxtools.generateAll.run(generateAll.java:104) 。 ToolRunner.run(ToolRunner.java:84) at com.inmobi.qa.logboxtools.generateAll.main(generateAll.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl .invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在org.apache.hadoop .util.RunJar.main(RunJar.java:208)
如果hsqldb 2.2.9已被加載(我提供作爲maven依賴),它將工作正常。 – t0il3ts0ap