gpt4 book ai didi

java - 如何使用 oozie 工作流将数据从 HDFS 复制到本地 FS?

转载 作者:可可西里 更新时间:2023-11-01 15:31:22 26 4
gpt4 key购买 nike

我已经使用 FileUtil.CopyMerge(...) 编写了 java 代码以将文件合并为单个文件。

下面是我的 oozie java Action :

<main-class>Merging</main-class
<arg>${nameNode}/user/abhime01/haadoop/Merge/merge_output</arg>
<arg>file:///home/abhi01/yoooize.txt</arg>

在上面的工作流程中,如果我尝试将第二个 arg(destination) 作为 hdfs 中的路径,我能够合并数据并存储在 hdfs 中。

但是如果我将它作为本地文件系统中的路径(如上面的代码片段所示),我会收到以下错误:

Mkdirs failed to create file:/home/abhime01 (exists=false, cwd=file:/CDH/sdu1/yarn/nm/usercache/abhime01/appcache/application_1440579785423_1755/container_e27_1440579785423_1755_01_000001)

任何人都可以建议我如何使用 ooize 合并文件并将其存储到本地文件系统中。

PS:Java 代码在没有 oozie 的情况下运行正常,通过 oozie 运行时存在问题。

最佳答案

当您使用 Oozie 执行操作时,相应的操作将由集群中任意随机节点中的容器执行。

因此,您提到的本地文件路径将不再对 Oozie 有效,因为它的范围在集群上。

因此,您不应该使用本地文件路径作为任何类型的 Oozie 操作的输入,在使用 Oozie 时尝试引入所有相关输入并期望仅在 HDFS 上输出。

关于java - 如何使用 oozie 工作流将数据从 HDFS 复制到本地 FS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32242512/

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