猪没有以mapreduce心情奔跑(hadoop 3.1.1 +猪0.17.0)

时间:2019-07-12 07:41:09

标签: hadoop bigdata apache-pig hadoop3

我对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;

本地模式的结果enter image description here

但是对于相同的输入文件和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模式的结果enter image description here 要么 enter image description here 注意: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 个答案:

答案 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仍在进行中。