2014-04-08 15 views
6

Basit dosyayı yüklemeye çalışıyorum:Domuzda NO FILE hatasını yönetmek mümkün mü?

log = load 'file_1.gz' using TextLoader AS (line:chararray); 
dump log 

Ve bir hata alıyorum:

2014-04-08 11:46:19,471 [main] ERROR org.apache.pig.tools.pigstats.SimplePigStats - ERROR 2997: Unable to recreate exception from backend error: org.apache.pig.backend.executionengine.ExecException: ERROR 2118: Input Pattern hdfs://hadoop1:8020/pko/file*gz matches 0 files 
     at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigInputFormat.getSplits(PigInputFormat.java:288) 
     at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:1054) 

hata görünmeden önce böyle bir durum yönetmek mümkündür mı?

+0

Pawel, Bunu nasıl halledeceğinizi biliyor muydunuz? Bende aynı senaryo var.Teşekkürler – Learner

+0

Burada da aynı. Ayrıca birkaç normal ifadeyi denedim. hiçbiri "0 dosya" –

cevap

0

Girdi Desen HDF'ler: // hadoop1: 8020/pko/dosya * gz hatası verilen HDF'ler yolunda yok girdi dosyasıdır 0 dosyaları

eşleşir.

log = TextLoader AS kullanarak 'file_1.gz' dosyasını yükleyin (satır: chararray); , dosya_1.gz'nin mutlak yolundan bahsetmediğiniz gibi, o sizin domuz komut dosyasını çalıştırdığınız kullanıcının ev hdfs dir'ini alacaktır

+0

döndürdüğü sürece çalışır. Hatanın nedenini biliyorum. Ama sorum şu: Domuzdaki bu tür hataları yönetmek mümkün mü? Denemek gibi bir şey. –

0

Maalesef şu anki Pig sürümünde (0.15.0) UDF'leri kullanmadan bu hataları yönetmek imkansızdır.

Buna dikkat çekmek için try ve catch komutunu kullanarak bir Java veya Python betiği oluşturmanızı öneririm. https://wiki.apache.org/pig/PigErrorHandlingInScripts

İyi şanslar öğrenme Domuz:

İşte size bazı kullanım olabilir iyi bir web sitesi var!

+1

Bahsettiğiniz web sitesini sağlayabilir misiniz? –

0

Bu sorunla da karşı karşıya geliyorum.

DATA = LOAD '${qurwf_folder_input}/data/*/' AS (...); 

Veri alt klasörlerdeki tüm dosyaları yüklemek istiyorum, ancak veri klasörü boş ve ben sizinle aynı hata var: My yük komuttur. Yaptığım şey, özel durumumda, veri dizininde boş bir klasör oluşturmaktı. Bu nedenle LOAD boş bir veri kümesi döndürür ve komut dosyası başarısız olmamıştır.

Bu arada, komut dosyalarını çalıştırmak için Oozie iş akışını kullanıyorum ve hazırda boş klasörleri oluşturuyorum.