oozie-在配置单元操作中使用存档文件

n3h0vuf2  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(352)

在oozie hive2操作中,我尝试从压缩的.zip文件中的.csv文件加载配置单元表。为了通过oozie配置单元操作工作流读取*.zip中的文件,配置单元操作提供了“archive”标记元素。只需在“archive”标记元素中声明zip文件,如下所示,

<archive>${ZipfilePath}#unzipFile</archive>

“archive”元素中“#”之后的引用是用于读取解压缩文件的临时文件夹的名称。可以通过引用路径“unzipfile/.csv”来读取.zip中的.csv文件
问题是-配置单元操作无法找到存档元素中引用的路径。默认情况下,配置单元在“”中查找解压缩文件夹hdfs://nameservice1/user/hive/“位置和错误为”

"Error: Error while compiling statement: FAILED: SemanticException Line     1:17 Invalid path ''unzipFile/file.csv'': No files matching path hdfs://nameservice1/user/hive/unzipFile/file.csv (state=42000,code=40000"

但是,我能够使用shell操作成功地测试'archive'标记,并将文件作为

cat unzipFile/file.csv
1zmg4dgp

1zmg4dgp1#

由于oozie配置单元操作在集群中运行,而不是在边缘节点上运行,因此所有支持文件都需要位于hdfs路径中。也就是说,配置单元操作本身将在运行时由oozie选择的任何节点中运行。将文件上载到hdfs路径,以便可以从集群中的任何节点访问它

xriantvc

xriantvc2#

shell操作将文件本地复制到运行脚本的容器中。这就是为什么它能起作用。
配置单元2:

LOAD DATA [LOCAL] INPATH

一旦文件被移动到容器中,就必须使用local。

相关问题