Oozie Hive2アクションでは、圧縮された '.zip'ファイルに存在する '.csv'ファイルからハイブテーブルをロードしようとしています。 Oozie Hiveアクションワークフローを通じて* .zip内のファイルを読み込むために、Hiveアクションは 'archive'タグ要素を提供します。ただ、以下のように「アーカイブ」タグ要素でZipファイルを宣言する必要があり、「アーカイブ」要素で「#」の後oozie - ハイブアクションでのアーカイブファイルの使用
<archive>${ZipfilePath}#unzipFile</archive>
リファレンスは、解凍されたファイルを読み取るために一時フォルダの名前です。 .zipファイル内部の.csvファイルパスを参照して読むことができる「unzipFile /.csv」
問題がある - アーカイブ要素で参照パスを見つけることができませんハイブのアクション。 「私は成功したシェルアクション を使用して「アーカイブ」タグをテストすることができたと、
"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"
として場所とエラーしかし:デフォルトでは、ハイブは「// nameservice1 /ユーザー/ハイブ/ HDFS」で解凍フォルダを探します猫Oozieハイブのアクションは、エッジノードのクラスタではなく実行されているので
cat unzipFile/file.csv
Oh my。 Oozieの ''命令は、Hadoopコマンドラインの '-archives'オプションやHive' add archives'コマンドのように動作します。 **パッケージ化されたライブラリや設定ファイル**を出荷することを意図しています。データファイルではありません。 –
Hadoopは主に** archive **形式であり、多くのファイルが同じZIPにパッケージ化されているため、データファイルのZIPはサポートしていません。 MapReduceのパラダイム全体が壊れてしまいます。 HDFS *でロードする前に素材を解凍する必要があります(個々のファイルをGZIP形式で保存することができるので、 '.gz'拡張子は自動的に認識されます)。* –
ありがとうございます。 oozie Shellのアクションがアーカイブから* .csvを読み取ることができたからといって、Hiveの場合と同じように動作するはずです。 – SaRu