2016-04-01 8 views
0

-f usecatalogオプションを使用して豚スクリプトを実行しようとしていますが、問題が出ています。 それは、ファイルがhdfsファイルシステムに存在するのがわかりますが、スクリプトは存在しないと言います。下記参照。豚スクリプトが存在しません.HDFSで見ることができます。

[[email protected] ec2-user]$ pig -useHCatalog -f /user/admin/pig/scripts/hcat1.pig 
    WARNING: Use "yarn jar" to launch YARN applications. 
    16/04/01 13:44:13 INFO pig.ExecTypeProvider: Trying ExecType : LOCAL 
    16/04/01 13:44:13 INFO pig.ExecTypeProvider: Trying ExecType : MAPREDUCE 
    16/04/01 13:44:13 INFO pig.ExecTypeProvider: Picked MAPREDUCE as the ExecType 
    2016-04-01 13:44:13,645 [main] INFO org.apache.pig.Main - Apache Pig version 0.15.0.2.3.4.0-3485 (rexported) compiled Dec 16 20      15, 04:30:33 
    2016-04-01 13:44:13,645 [main] INFO org.apache.pig.Main - Logging error messages to: /tmp/hsperfdata_hdfs/pig_1459532653643.log 
    2016-04-01 13:44:14,184 [main] ERROR org.apache.pig.Main - ERROR 2997: Encountered IOException. File /user/admin/pig/scripts/hca      t1.pig does not exist 
    Details at logfile: /tmp/hsperfdata_hdfs/pig_1459532653643.log 
    2016-04-01 13:44:14,203 [main] INFO org.apache.pig.Main - Pig script completed in 753 milliseconds (753 ms) 

[[email protected] ec2-user]$ hadoop fs -cat /user/admin/pig/scripts/hcat1.pig 
    a = load 'trucks' using org.apache.hive.hcatalog.pig.HCatLoader(); 
    b = filter a by truckid == 'A1'; 
    store b INTO '/user/admin/pig/scritps/outputb1'; 
+0

HDFS上の豚のスクリプトを保存するのはなぜ?このファイルは、分散ストレージが必要な大きさではありません。 –

+0

Ok ..しかし、スクリプトファイルをocalサーバーに保存すると、mapreduceモードでジョブを実行できます。 –

+0

ファイルの内容はstdinを介して、おそらくgruntシェルにストリーミングされます。このファイルをHDFS上に置いても同じことが尋ねられます。ファイルは、実行するジョブのためにダウンロードする必要があります。 –

答えて

0

HDFSに保存されているスクリプトを実行するには、完全なHDFS URIを指定する必要があります。ここで

は何が必要です:

$pig -useHCatalog hdfs://namenode_hostname:port/user/admin/pig/scripts/hcat1.pig 
+0

ありがとうございました... –

関連する問題