簡體   English   中英

oozie-在配置單元操作中使用存檔文件

[英]oozie - Using archive file in hive action

在Oozie Hive2動作中,我試圖從壓縮的.zip文件中的'.csv'文件加載蜂巢表。 為了通過Oozie Hive操作工作流讀取* .zip內的文件,Hive操作提供了“歸檔”標簽元素。 只需在“ archive”標簽元素中聲明Zip文件,如下所示,

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

“ archive”元素中“#”之后的引用是讀取未壓縮文件的臨時文件夾的名稱。 可以通過引用路徑' unzipFile /.csv'來讀取.zip內的.csv文件。

問題是 -Hive操作無法找到存檔元素中引用的路徑。 默認情況下,Hive在“ 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操作成功測試“歸檔”標簽,並將文件“ cat”為

cat unzipFile/file.csv

由於Oozie配置單元操作在群集中而不是在邊緣節點上運行,因此所有支持文件都必須位於hdfs路徑中。 那就是蜂巢動作本身將在運行時在Oozie選擇的任何節點中運行。 將文件上傳到hdfs路徑,以便可以從群集中的任何節點進行訪問

Shell操作會將文件本地復制到運行腳本的容器中。 這就是它起作用的原因。

蜂巢2:

LOAD DATA [LOCAL] INPATH

將文件移入容器后,必須使用LOCAL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM