首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle Data Integrator SQL to HDFS IKM返回错误

Oracle Data Integrator SQL to HDFS IKM返回错误
EN

Stack Overflow用户
提问于 2015-06-25 16:44:41
回答 1查看 4.9K关注 0票数 0

我正在使用ODI (12.1.3.0.0)。我为Oracle DB创建了拓扑,这是正常的,并且我使用File技术为HDFS创建了拓扑,我认为问题出在哪里。

对于HDFS,我将JDBC driver留空,并用hdfs://remotehostname: DataServer填充了JDBC Url

HDFS的物理模式,我用/my/path填充了Schema和Work Schema

然后创建了逻辑模式和模型。之后,使用这些定义在模型下创建数据存储。名称:固定资源名称: TESTFILE.txt文件格式: TestName

之后,创建了一个项目并在该项目下创建了一个映射。

最后,当我运行映射时,我看到了以下错误:

代码语言:javascript
复制
ODI-1217: Session Oracle2HDFSMapping_Physical_SESS (15) fails with return code ODI-1298.
ODI-1226: Step Physical_STEP fails after 1 attempt(s).
ODI-1240: Flow Physical_STEP fails while performing a Add execute to Sqoop script-IKM SQL to HDFS File (Sqoop)- operation. This flow loads target table null.
ODI-1298: Serial task "SERIAL-MAP_MAIN- (10)" failed because child task "SERIAL-EU-GGUSER_UNIT (20)" is in error.
ODI-1298: Serial task "SERIAL-EU-GGUSER_UNIT (20)" failed because child task "Add execute to Sqoop script-IKM SQL to HDFS File (Sqoop)- (40)" is in error.
Caused By: java.io.IOException: Cannot run program "chmod": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
    at java.lang.Runtime.exec(Runtime.java:617)
    at java.lang.Runtime.exec(Runtime.java:450)
    at java.lang.Runtime.exec(Runtime.java:347)
    at oracle.odi.runtime.agent.execution.cmd.OSCommandExecutor.execute(OSCommandExecutor.java:54)
    at oracle.odi.runtime.agent.execution.cmd.OSCommandExecutor.execute(OSCommandExecutor.java:29)
    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:52)
    at oracle.odi.runtime.agent.execution.SessionTask.processTask(SessionTask.java:203)
    at oracle.odi.runtime.agent.execution.SessionTask.doExecuteTask(SessionTask.java:114)
    at oracle.odi.runtime.agent.execution.AbstractSessionTask.execute(AbstractSessionTask.java:886)
    at oracle.odi.runtime.agent.execution.SessionExecutor$SerialTrain.runTasks(SessionExecutor.java:2198)
    at oracle.odi.runtime.agent.execution.SessionExecutor.executeSession(SessionExecutor.java:591)
    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:745)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:385)
    at java.lang.ProcessImpl.start(ProcessImpl.java:136)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
    ... 20 more

我想知道我哪里做错了?

EN

回答 1

Stack Overflow用户

发布于 2015-06-29 18:07:50

对于文件数据存储区,您需要通过打开数据存储区并转到属性选项卡来定义属性(列)。如果文件已经存在,您可以对属性进行反向工程,重命名属性并根据需要更改数据类型。

您收到的第二个任务的错误消息提到该文件(在第一个任务中生成)不存在。因此,第一个任务可能会出现问题,可能是因为数据存储中缺少属性。

下面是一篇由ODI团队撰写的关于SQL To HDFS file (Sqoop) KM的详细文章:http://www.ateam-oracle.com/importing-data-from-sql-databases-into-hadoop-with-sqoop-and-oracle-data-integrator-odi/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31045386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档