pig与piggybank和avrostorage的emr故障

pinkon5k  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(383)

我在emr上运行一个pig脚本,读取以avro格式存储的数据。它一直在本地工作,但是为了让脚本的其他部分在emr上工作,我不得不将我使用的piggybank.jar恢复到0.9.2而不是0.10.0。在进行更改之后,avrostorage会自动读取任何数据,只返回零条记录。日志里什么都没提到。剧本如下:

REGISTER ../../../lib/avro-1.7.0.jar                                                                    
REGISTER ../../../lib/json-simple-1.1.1.jar                                                             
REGISTER ../../../lib/jackson-core-asl-1.5.2.jar                                                        
REGISTER ../../../lib/jackson-mapper-asl-1.5.2.jar                                                      
REGISTER ../../../lib/piggybank.jar                                                                     
a = LOAD '/data/' USING org.apache.pig.piggybank.storage.avro.AvroStorage();
DUMP a;

再说一次,如果piggybank.jar的版本是0.10.0,它就可以工作了。如果是版本0.9.2,则不是。我应该使用其他库的不同版本吗?我尝试了avro-1.5.3.jar,但也没有成功。
另一个注意事项:如果我这样做 describe a; 它正确地输出模式。

exdqitrt

exdqitrt1#

不确定这是否仍然是您的问题,但我使用的一组寄存器是:

REGISTER s3://..path../lib/piggybank-0.10.0.jar;
REGISTER file:/home/hadoop/lib/pig/piggybank.jar;
REGISTER s3://..path../lib/avro-1.7.1.jar;
REGISTER s3://..path../lib/jackson-core-2.0.6.jar;
REGISTER s3://..path../lib/jackson-mapper-lgpl-1.9.9.jar;
REGISTER s3://..path../lib/json-simple-1.1.1.jar;
REGISTER s3://..path../lib/joda-time-2.1.jar;
REGISTER s3://..path../lib/snappy-java-1.0.4.1.jar

你可以把两个Pig圈叠在一起。piggybank-0.10.0jar与piggybank-jar之间的关系有些奇怪——它似乎对订单敏感,但希望这能有所帮助,或者至少能给你一些其他的尝试。

eqqqjvef

eqqqjvef2#

您可能已经考虑过这一点了,但是如果您将pig脚本中依赖于0.9.2的部分更改为适用于0.1.0的部分,可能会更快。

相关问题