0

ODI (12.1.3.0.0) を使用しています。問題があると思われるファイル技術を使用して、Oracle DB のトポロジを作成し、HDFS のトポロジを作成しました。

HDFS 用の DataServer では、JDBC ドライバーを空のままにし、JDBC URL に hdfs://remotehostname:port を入力しました。

HDFS の物理スキーマ。スキーマと作業スキーマの両方に /my/path を入力しました

次に、論理スキーマとモデルを作成しました。その後、これらの定義を使用してモデルの下にデータストアを作成しました。名前: TestName リソース名: TESTFILE.txt ファイル形式: 固定

これらすべての後、プロジェクトとプロジェクトの下のマッピングを作成しました。

マッピング

最後に、マッピングを実行すると、次のエラーが表示されます。

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

私はどこでそれを間違えたのだろうか?

4

1 に答える 1

0

ファイル データストアの場合、データストアを開いて属性タブに移動し、属性 (列) を定義する必要があります。ファイルがすでに存在する場合は、属性をリバース エンジニアリングして名前を変更し、必要に応じてデータ型を変更できます。

2 番目のタスクで受け取ったエラー メッセージには、(最初のタスクで生成された) ファイルが存在しないことが示されています。そのため、おそらくデータストアに属性がないために、最初のタスクに問題がある可能性があります。

これは、ODI A-Team によって書かれた SQL To HDFS ファイル (Sqoop) KM に関する詳細な記事です: http://www.ateam-oracle.com/importing-data-from-sql-databases-into-hadoop-with- sqoop-and-oracle-data-integrator-odi/

于 2015-06-29T10:07:49.863 に答える