我对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
为什么说当文件存在于该路径中时读取数据失败?
我错过的可能原因是什么?
感谢您的帮助。
1条答案
按热度按时间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的支持还在进行中。