Я новичок в Hadoop. Моя версия hadoop - 3.1.1, а версия pig - 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 (',');
Результат для режима уменьшения карты ИЛИ Примечание: 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
- Почему говорится, что не удалось прочитать данные, когда файл существует по этому пути?
- Каковы могут быть возможные причины того, что я упускаю?
Любая помощь приветствуется.