私のクラスは次のようになります
public class generateAll extends Configured implements Tool
{
public static void main(String[] args) throws Exception
{
ToolRunner.run(new generateAll(), args);
}
.
.
.
私が欲しいのは、プログラム内で getConf() ステートメントを使用しているため、hadoop jar コマンドを使用してプログラムを実行することです。
関連するマッパーレデューサーはありません。
Hadoop ライブラリには既に hsqldb 1.8 があります 私のプログラムは hsqlsb 2.2.9 を使用しています (maven の依存関係として)
ユーザー クラスパスで Hadoop クラスパスをオーバーライドするメソッドが jobConf にありますが、私のプログラムには map/reduce が含まれていないため、hadoop クラスパスをオーバーライドするにはどうすればよいですか?
テストファイルとして実行すると、プログラムは正常に実行されます。Hadoop バージョン - cdh3u3
hadoop jar コマンドの使用中にスローされるエラーは次のとおりです。
スレッド「メイン」での例外 java.sql.SQLException: 予期しないトークン AS、org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.jdbcStatement.fetchResult でステートメント [create table click as] で ( が必要です(ソース不明) org.hsqldb.jdbc.jdbcStatement.execute (ソース不明) com.inmobi.qa.SQLUtil.SQLScriptExecuter.executeScript(SQLScriptExecuter.java:62) com.inmobi.qa.logboxtools.generateAll.test_table_creation( generateAll.java:186) com.inmobi.qa.logboxtools.generateAll.run(generateAll.java:104) org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) org.apache.hadoop .util.ToolRunner.run(ToolRunner.java:84) の com.inmobi.qa.logboxtools.generateAll.main(generateAll.java:55) の sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) の 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)