0

私のクラスは次のようになります

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)

4

1 に答える 1

1

を実行する前に、次のコマンドを使用しますhadoop jar

export HADOOP_USER_CLASSPATH_FIRST=true
export HADOOP_CLASSPATH=your_classpath:$HADOOP_CLASSPATH

your_classpath には hsqlsb 2.2.9 が含まれている必要があります。

于 2013-08-23T08:23:54.007 に答える