web-dev-qa-db-ja.com

エラー1066:エイリアスのイテレータを開くことができません-Pig

Pigを始めたばかりです。ファイルからデータをロードして、それ以降ダンプしようとしています。読み込みは適切なようで、エラーはスローされません。以下はクエリです:

NYSE = LOAD '/ root/Desktop/Works/NYSE-2000-2001.tsv' USING PigStorage()AS(exchange:chararray、stock_symbol:chararray、date:chararray、stock_price_open:float、stock_price_high:float、stock_price_low:float、stock_price_close :float、stock_volume:int、stock_price_adj_close:float);

ダンプを実行しようとすると、次のエラーがスローされます。

豚のスタックトレース

エラー1066:エイリアスNYSE org.Apache.pig.impl.logicalLayer.FrontendExceptionのイテレータを開くことができません:エラー1066:org.Apache.pig.PigServer.openIterator(PigServer.Java:857)でエイリアスNYSEのイテレータを開くことができませんorg.Apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.Java:303)at org.Apache.pigのorg.Apache.pig.tools.grunt.GruntParser.processDump(GruntParser.Java:682) 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.run( Grunt.Java:69)at org.Apache.pig.Main.run(Main.Java:490)at org.Apache.pig.Main.main(Main.Java:111)原因:Java.io.IOException:ジョブorg.Apache.pig.PigServer.openIterator(PigServer.Java:849)で異常なステータスFAILEDで終了しました。 "

問題の原因は何ですか?

8
knowone

hadoop 2.2に対してpig0.12.0以前のjarを実行していますか?その場合は、srcからpigjarを再コンパイルすることで、このエラーを回避できました。これは、 debianタイプボックスに関連する手順

  1. pig-0.12.0.tar.gzをダウンロードします

  2. 瓶を開梱し、権限を設定します

  3. 次に、解凍​​されたディレクトリ内でsrcを'ant clean jar -Dhadoopversion=23'でコンパイルします。

次に、同じディレクトリなど、Mavenのクラスパスでjarを取得する必要があります。

mvn install:install-file -Dfile=pig.jar -DgroupId={set a groupId}-
                 DartifactId={set a artifactId} -Dversion=1.0 -Dpackaging=jar  

または、Eclipseの場合は、外部ライブラリ/依存関係としてjarを追加します

pig 12hadoop 2.2.0を実行しようとして正確なトレースを取得していましたが、上記の手順でうまくいきました

更新
問題を豚のjiraに投稿すると、彼らは応答しました。ここには、hadoop2pig-h2.jar用にコンパイル済みのpigjarがあります http://search.maven.org/#artifactdetails|org.Apache.pig|pig|0.12.0|jar
このjarのmavenタグは

  <dependency>
       <groupId>org.Apache.pig</groupId>
       <artifactId>pig</artifactId>
      <classifier>h2</classifier>
      <version>0.12.0</version>
      <scope>provided</scope>
  </dependency>  
4
Nigel Savage

これは、0.12以降のPigバージョンの変更が原因である可能性があります。具体的な変更点は、Pigが以前は許容的であり、データファイルの最初の行を自動的に無視するか、その行を列名として解釈することです。新しいバージョンのPigでは、この許容性が削除されました。回避策は、入力ファイルから列名を削除することです。これにより、問題が解決するはずです。

カピル

2
Kapil Kumar

私もこの問題に直面しています。そして、私はこのリンクを見ます: http://www.fanli7.net/a/JAVAbiancheng/ANT/20140325/441264.html

pigバージョンを0.12.0から0.13.0に置き換えるだけで、問題は解決します。 (ここで、私のhadoopバージョンは2.3.0

0
Haimei

クラスPigServerへのブレークポイントをメソッドstore()に配置できます。

for(JobStats js : stats.getJobGraph()){
  if(js.getException() != null) {
    ex = js.getException();
  }
}

Jsオブジェクト内にフィールドerrorMessageがあり、問題の説明が含まれている可能性があります

0