我在本地模式中使用Pig(从Cloudera安装)'而不是在MapReduce模式下。这些脚本在我的笔记本电脑上运行良好(Mac OS)。但是当我尝试在AWS服务器上使用Pig时,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"
我使用cloudera的CDH5 repo使用yum
($ yum install pig)安装了Pig。我在网上看到,这可能是由于“暂存”的读写权限所致。目录但不知道哪个是临时目录。
猪最初抱怨缺乏HBase。安装HBase后,这些错误已停止但仍无法读取输入文件。
答案 0 :(得分:0)
我的同事发现了这个问题。隐藏在Java消息中的是以下消息:java.net.UnknownHostException: <host name>.local: <host name>.local
。他创建了/opt/mapr/hostname
文件并在那里存储了主机名,并更新了/etc/hosts
文件并指定了localhost
值。这解决了问题。