pig没有在mapreduce中运行(hadoop3.1.1+pig 0.17.0)

kcugc4gi  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(360)

我对hadoop非常陌生。我的hadoop版本是3.1.1,pig版本是0.17.0。
通过在本地模式下运行此脚本,一切都正常工作
pig-x本地

grunt> student = LOAD '/home/ubuntu/sharif_data/student.txt' USING PigStorage(',') as ( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );
grunt> DUMP student;

本地模式的结果

但是对于相同的输入文件和pig脚本,mapreduce模式不能成功工作。
pig-xMapReduce

grunt> student = LOAD '/pig_data/student.txt' USING PigStorage(',') AS ( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );
grunt> STORE student INTO '/pig_data/student_out' USING PigStorage (',');

grunt> student = LOAD 'hdfs://NND1:9000/pig_data/student.txt' USING PigStorage(',') AS ( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );
grunt> STORE student INTO 'hdfs://NND1:9000/pig_data/student_out' USING PigStorage (',');

mapreduce模式的结果

或者

注意:student.txt已成功上传到hdfs。

hdfs dfs -ls  /pig_data 
Found 2 items
-rw-r--r--   3 ubuntu supergroup     861585 2019-07-12 00:55 /pig_data/en.sahih.txt
-rw-r--r--   3 ubuntu supergroup        234 2019-07-12 12:25 /pig_data/student.txt

即使在grunt下,这个命令也会返回正确的hdfs文件名。

grunt> fs -cat /pig_data/student.txt

为什么说当文件存在于该路径中时读取数据失败?
我错过的可能原因是什么?
感谢您的帮助。

tp5buhyn

tp5buhyn1#

问题的一部分是pig0.17还不支持hadoop3。
apache pig发布0.17的状态:
2017年6月19日:发布0.17.0
此次发布的亮点是pig on spark的引入
注意:此版本适用于Hadoop2.x(2.7.x以上)
而jira pig-5253-pig hadoop3的支持还在进行中。

相关问题