Hive

2011-04-21 21 views
6

'da saklanan veriler üzerinde Domuz sorgusu çalıştırılıyor Kovan formatında depolanan Domuz sorgularının nasıl çalıştırılacağını öğrenmek istiyorum. Sıkıştırılmış verileri depolamak için Hive'yi yapılandırdım (bu eğiticiyi kullanarak http://wiki.apache.org/hadoop/Hive/CompressedStorage).Hive

Bundan önce sadece Hive sınırlayıcı (^ A) ile normal Pig yükleme işlevini kullandım. Ancak şimdi Hive, verileri sıralı olarak sıkıştırma ile depolar. Hangi yükleme fonksiyonu kullanılır?

Belirtilen yakın entegrasyona ihtiyaç duymadığına dikkat edin: Using Hive with Pig, Hive tarafından oluşturulan sıkıştırılmış sıralı dosyaları okumak için hangi yükleme işlevini kullanın.

Tüm cevaplar için teşekkürler.

cevap

5

Öğrendiklerim: HiveColumnarLoader'ı kullanmak verileri RCFile olarak depolarsanız mantıklıdır. Bu kullanarak tabloyu yüklemek için öncelikle bazı kavanozları kaydetmeniz gerekir:

register /srv/pigs/piggybank.jar 
register /usr/lib/hive/lib/hive-exec-0.5.0.jar 
register /usr/lib/hive/lib/hive-common-0.5.0.jar 

a = LOAD '/user/hive/warehouse/table' USING org.apache.pig.piggybank.storage.HiveColumnarLoader('ts int, user_id int, url string'); 

Sıra veri (önceki örnekte olduğu gibi) piggybank kullanmak zorunda dosyasını yükleyin.

register /srv/pigs/piggybank.jar 
DEFINE SequenceFileLoader org.apache.pig.piggybank.storage.SequenceFileLoader(); 
a = LOAD '/user/hive/warehouse/table' USING SequenceFileLoader AS (int, int); 

Bu Pig 0.7 o BytesWritable türünü okuyup Domuz türü için döküm yapamaz çünkü çalışmaz ve bu durum almak:: Piggybank dan SequenceFile yükleyici sıkıştırılmış dosyaları işlemek gerekir

2011-07-01 10:30:08,589 WARN org.apache.pig.piggybank.storage.SequenceFileLoader: Unable to translate key class org.apache.hadoop.io.BytesWritable to a Pig datatype 
2011-07-01 10:30:08,625 WARN org.apache.hadoop.mapred.Child: Error running child 
org.apache.pig.backend.BackendException: ERROR 0: Unable to translate class org.apache.hadoop.io.BytesWritable to a Pig datatype 
    at org.apache.pig.piggybank.storage.SequenceFileLoader.setKeyType(SequenceFileLoader.java:78) 
    at org.apache.pig.piggybank.storage.SequenceFileLoader.getNext(SequenceFileLoader.java:132) 
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader.nextKeyValue(PigRecordReader.java:142) 
    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:448) 
    at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67) 
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143) 
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:639) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:315) 
    at org.apache.hadoop.mapred.Child$4.run(Child.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:396) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1063) 
    at org.apache.hadoop.mapred.Child.main(Child.java:211) 

Piggybank nasıl derlenir burada açıklanmaktadır: Unable to build piggybank -> /home/build/ivy/lib does not exist