1

私はちょうどハイブで何かを試していて、PigでHcatLoaderを試していました。私が行ったことは、Hiveでビューを作成し、HcatLoaderを使用してpigに作成したビューでデータをロードしようとしたことです。しかし、それは機能していないようです。これを行う方法があることを確認したかっただけですか?HcatLoaderを使用してpigにビューを読み込もうとすると、次のエラーが発生します

events = Load'ViewName' using org.apache.hcatalog.pig.HCatLoader(); イベントをダンプします。

View from Hiveの代わりにtableNameを使用すると、機能するようです。さらに、メタストアエラーは発生しません。ダンプに関しては、loadステートメントでメタストアに正常に接続されていると表示されているため、次のエラーでクラッシュします。

任意のポインタが役立ちます。

ありがとう、アトゥル

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias events
at org.apache.pig.PigServer.openIterator(PigServer.java:857)
at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:682)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:303)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)
at org.apache.pig.Main.run(Main.java:555)
at org.apache.pig.Main.main(Main.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store alias events
at org.apache.pig.PigServer.storeEx(PigServer.java:956)
at org.apache.pig.PigServer.store(PigServer.java:919)
at org.apache.pig.PigServer.openIterator(PigServer.java:832)
... 12 more
Caused by: org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobCreationException: ERROR 2017: Internal error creating job configuration.
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(JobControlCompiler.java:731)
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.compile(JobControlCompiler.java:259)
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:180)
at org.apache.pig.PigServer.launchPlan(PigServer.java:1270)
at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1255)
at org.apache.pig.PigServer.storeEx(PigServer.java:952)
4

3 に答える 3

3

他のフォーラムに投稿して受け取った応答。

" HCatLoader は Hive でのビューの読み取りをサポートしていません。問題は、ビューがテーブルに対するクエリとして定義されていることです(ビュー V を select x, y from t として作成します)

Pig は SQL を話せませんが、

HCat には Hive の実行エンジンが含まれていません

そのため、クエリも実行できません。Pig および MR から Hive ビューを読み取るには、現在よりもはるかに緊密に製品を統合する必要があります。」

于 2013-03-08T19:34:03.997 に答える
1

今日、同じ問題を難しい方法で見つけました。Hive は Hive ビューを読み取ることができません (ただし、このトピックに関する適切な例外処理コードがありません)。記録 (この問題に陥った他の人) については、現在のバージョンの動作は次のとおりです。

エラー org.apache.pig.tools.grunt.Grunt - エラー 2017: ジョブ構成の作成中に内部エラーが発生しました。

(ビューからロードしようとしたため) ロードするファイルがないため、Pig はこの方法で失敗します。

于 2016-01-06T12:39:18.460 に答える
-1

Pig は Hadoop のファイルからデータをロードするため、(物理ファイルを持たない) ビューからのデータの読み取りが機能しない場合があります。Hadoop でビュー用のファイルを作成できれば、Pig がそれをロードできる可能性があります。少なくとも、実際のデータ ファイルへの仮想ポインタ ファイル。これが可能かどうか、または考え抜かれているかどうかはわかりません。

于 2014-12-16T04:25:59.810 に答える