hadoop - ODI 在处理语句时发出错误:/usr/lib/hive/lib/hive-contrib.jar 不存在
问题描述
我有三个虚拟机 Oracle 数据库、带有 Hive 的 Hadoop 服务器和 Orcale 数据集成器。每个都有自己的数据库。我的目标是使用 Oracle Data Integrator 连接所有数据库并进行从 Hive 数据库到 Oracle 数据库的映射。
我配置了我的 Oracle 和我的 Hive 数据服务器。连接成功,然后我创建 hive 和 oracle 数据模型,然后创建一个新映射以将数据从我的 hive 表加载到 mxy oracle 表。在我为 Target Control Append 选择的逻辑选项卡上。在物理选项卡上,我为 LKM 选择:lkm hive to Oracle OLH-OSCH.GLOBAL 和 IKM:ikm oracle insert.GLOBAL,但在按下播放按钮后,我得到了这个异常:
`ODI-1590: The execution of the script failed.
Caused By: org.apache.bsf.BSFException: exception from Groovy: java.sql.SQLException: [FMWGEN][Hive JDBC Driver][Hive]Error while processing statement: /usr/lib/hive/lib/hive-contrib.jar does not exist
at org.codehaus.groovy.bsf.GroovyEngine.exec(GroovyEngine.java:114)
at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.
execInBSFEngine(SnpScriptingInterpretor.java:396)
at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.
exec(SnpScriptingInterpretor.java:247)
at oracle.odi.runtime.agent.execution.interpreter.
SessionTaskScriptingInterpretor.scripting(SessionTaskScriptingInterpretor.java:190)
at oracle.odi.runtime.agent.execution.SessionTask.scripting
(SessionTask.java:105)
at oracle.odi.runtime.agent.execution.cmd.
ScriptingExecutor.execute(ScriptingExecutor.java:49)
at oracle.odi.runtime.agent.execution.cmd.
ScriptingExecutor.execute(ScriptingExecutor.java:21)
at oracle.odi.runtime.agent.execution.TaskExecutionHandler.
handleTask(TaskExecutionHandler.java:52)
at oracle.odi.runtime.agent.execution.SessionTask.
processTask(SessionTask.java:206)
at oracle.odi.runtime.agent.execution.SessionTask.
doExecuteTask(SessionTask.java:117)
at oracle.odi.runtime.agent.execution.AbstractSessionTask.
execute(AbstractSessionTask.java:886)
at oracle.odi.runtime.agent.execution.
SessionExecutor$SerialTrain.runTasks(SessionExecutor.java:2225)
at oracle.odi.runtime.agent.execution.SessionExecutor.
executeSession(SessionExecutor.java:610)
at oracle.odi.runtime.agent.processor.
TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:718)
at oracle.odi.runtime.agent.processor.
TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:611)
at oracle.odi.core.persistence.dwgobject.
DwgObjectTemplate.execute(DwgObjectTemplate.java:203)
at oracle.odi.runtime.agent.processor.
TaskExecutorAgentRequestProcessor.doProcessStartAgentTask(TaskExecutorAgentRequestProcessor.java:800)
at oracle.odi.runtime.agent.processor.impl.
StartSessRequestProcessor.access$1400(StartSessRequestProcessor.java:74)
at oracle.odi.runtime.agent.processor.impl.
StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:702)
at oracle.odi.runtime.agent.processor.task.
AgentTask.execute(AgentTask.java:180)
at oracle.odi.runtime.agent.support.
DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:108)
at java.lang.Thread.run(Thread.java:748)`
解决方案
推荐阅读
- matlab - 使用matlab对声音进行反卷积
- java - hibernate get me 引起:java.lang.AbstractMethodError
- c++ - 使用 std::vector 是否安全
作为异构记录的存储? - firebase - 文档中的 Firestore 更新数组字段
- scala - 选择以特定模式开头的字段:Spark XML Parsing
- python - 将 dash_html_components 传递给 Jinja 模板
- colors - 如何添加png文件
- neo4j - 获取指定起始节点下所有节点的最快方法
- reactjs - 根据路径中的参数渲染组件
- c# - 使用 AD 和 OWIN 保护端点