我对Hadoop非常陌生。我的hadoop版本是 3.1.1 ,而猪版本是 0.17.0 。
通过在本地模式下运行此脚本,一切都能正常工作
猪-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模式无法成功工作。
猪-x mapreduce
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 (',');
OR
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
感谢您的帮助。
答案 0 :(得分:3)
部分问题是Pig 0.17尚不支持Hadoop 3。
Apache Pig Releases的值为0.17:
2017年6月19日:可用的版本为0.17.0
此版本的亮点是在Spark上引入了Pig
注意: 此版本适用于Hadoop 2.X(高于2.7.x)
JIRA PIG-5253 - Pig Hadoop 3 support仍在进行中。