无法读取Pig中的本地文件

时间:2014-07-22 19:59:18

标签: apache-pig

我在本地模式中使用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后,这些错误已停止但仍无法读取输入文件。

1 个答案:

答案 0 :(得分:0)

我的同事发现了这个问题。隐藏在Java消息中的是以下消息:java.net.UnknownHostException: <host name>.local: <host name>.local。他创建了/opt/mapr/hostname文件并在那里存储了主机名,并更新了/etc/hosts文件并指定了localhost值。这解决了问题。