Я использовал Pig (установленный из Cloudera) в «локальном режиме», а не в режиме MapReduce. Скрипты отлично работали на моем ноутбуке (Mac OS). Но когда я пытаюсь использовать Pig на сервере AWS, Pig не может прочитать или записать файл.
Вот команды Pig:
$ pwd
/root/ert/test
$ pig -x local -l /tmp
grunt> pwd
file:/root/ert/test
grunt> ls
file:/root/ert/test/t.pig<r 1> 1697
file:/root/ert/test/test5.csv<r 1> 330
file:/root/ert/test/test5.pig<r 1> 120
file:/root/ert/test/test5.tsv<r 1> 293
grunt> testdata = load 'test5.tsv' as (name:chararray, lob:chararray, date:chararray);
Файл входных данных (test5.tsv) находится в текущем каталоге, и его содержимое:
John WIRELESS 2014-01-01 00:30:15
Doe TELECOM 2014-02-02 00:30:15
NYC WIRELESS 2014-03-03 00:30:15
Chicago WIRELINE 2014-04-04 00:30:15
SanFrancisco WIRELESS 2014-05-05 00:30:15
Ошибка, которую я получаю:
Input(s):
Failed to read data from "file:///root/ert/test/test5.tsv"
Output(s):
Failed to produce result in "file:/tmp/temp-1810274881/tmp1793050127"
Я установил только Pig, используя yum
($ yum install pig) с репозиторием Cloudera CDH5. Я читал в Интернете, что это может быть связано с правами на чтение и запись в «промежуточном» каталоге, но понятия не имею, какой это промежуточный каталог.
Pig изначально жаловался на отсутствие HBase. После установки HBase эти ошибки прекратились, но по-прежнему не удалось прочитать входной файл.