gpt4 book ai didi

hadoop - 不是 mapreduce 作业时如何设置用户类路径优先级?

转载 作者:行者123 更新时间:2023-12-02 20:09:25 25 4
gpt4 key购买 nike

我的课看起来像这样

public class generateAll extends Configured implements Tool
{
public static void main(String[] args) throws Exception
{
ToolRunner.run(new generateAll(), args);
}
.
.
.

我想要的是,使用 hadoop jar 命令执行程序,因为我在程序中使用 getConf() 语句。

不涉及映射器 reducer 。

hadoop 库中已经有一个 hsqldb 1.8
我的程序正在使用 hsqlsb 2.2.9(作为 maven 依赖项)

jobConf 中有一个方法可以用用户类路径覆盖 hadoop 类路径,但是由于我的程序不涉及 map/reduce ,如何覆盖 hadoop 类路径?

该程序作为测试文件运行时运行良好。
hadoop 版本 - cdh3u3

使用 hadoop jar 命令时抛出的错误是:

线程“主”java.sql.SQLException 中的异常:意外的 token AS,需要(在语句 [create table click as]
在 org.hsqldb.jdbc.Util.sqlException(未知来源)
在 org.hsqldb.jdbc.jdbcStatement.fetchResult(未知来源)
在 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(Native Method)
在 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)

最佳答案

在运行 hadoop jar 之前使用以下命令.

export HADOOP_USER_CLASSPATH_FIRST=true
export HADOOP_CLASSPATH=your_classpath:$HADOOP_CLASSPATH

your_classpath 应该包含 hsqlsb 2.2.9。

关于hadoop - 不是 mapreduce 作业时如何设置用户类路径优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18386621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com