猪在grunt模式

时间:2013-05-01 08:44:02

标签: hadoop cygwin apache-pig gruntjs

我在windows中安装了cygwin,hadoop和pig。配置似乎没问题,因为我可以在批处理和嵌入模式下运行pig脚本。

当我尝试以grunt模式运行pig时,会发生一些奇怪的事情。让我解释。 我尝试运行像

这样的简单命令
grunt> A = load 'passwd' using PigStorage(':'); 

当我按Enter键时,没有任何反应。光标转到下一行,grunt>提示符不再出现。好像我正在输入文本编辑器。

有没有类似的事发生在你身上?你有什么想法我能解决这个问题吗?

5 个答案:

答案 0 :(得分:0)

行为与您观察的内容一致。我将以pig tutorial为例。

以下命令不会导致pig的任何活动。

raw = LOAD 'excite.log' USING PigStorage('\t') AS (user, time, query);

但是如果你调用一个导致使用变量raw的数据的命令,那么当你在grunt shell中看到一些动作时会使用map-reduce。在那里提到的第二个命令的一些东西。

clean1 = FILTER raw BY org.apache.pig.tutorial.NonURLDetector(query);

同样,您的命令不会导致任何操作,您必须使用变量A中的数据,这会导致map-reduce命令在grunt shell上看到一些操作:

grunt> A = load 'passwd' using PigStorage(':'); 

答案 1 :(得分:0)

Pig只会在您使用创建输出的命令DUMP(到控制台)或STORE时处理命令,您也可以使用命令DESCRIBE来获取别名的结构和EXPLAIN查看地图/减少计划

所以基本上DUMP A;会给你A

中的所有记录

答案 2 :(得分:0)

请尝试在Windows命令窗口中运行。

  

C:\ FAST \ JDK64 \ 1.6.0.31/bin/java -Xmx1000m -Dpig.log.dir = C:/ cygwin / home / $ USERNAME $ / nubes / pig / logs -Dpig.log.file = pig .log -Dpig.home.dir = C:/ cygwin / home / $ USERNAME $ / nubes / pig / -classpath C:/ cygwin / home / $ USERNAME $ / nubes / pig / conf; C; C:/ FAST / JDK64 / 1.6.0.31 / lib中/的tools.jar; C:/cygwin/home/$USERNAME$/nubes/pig/lib/jython-standalone-2.5.3.jar; C:/ Cygwin的/家庭/ $ USERNAME $ / nubes / pig / conf; C:/ cygwin / home / $ USERNAME $ / nubes / hadoop / conf; C:/cygwin/home/$USERNAME$/nubes/pig/pig-0.11.1.jar org.apache.pig .Main -x local

相应地将$USERNAME$替换为您的用户ID ..

相应地修改类路径和conf路径..

它在本地以及地图缩小模式中都很有效。

答案 3 :(得分:0)

猪壳在cygwin中挂起。但猪脚本从猪脚本文件中成功执行。

如下:

$pig ./user/input.txt  

对于本地模式:

pig -x local ./user/input.txt

答案 4 :(得分:0)

我昨天遇到了和你同样的问题,我花了一整天的时间发现我的猪或热键出了什么问题,并最终解决了。我发现这仅仅是因为我从其他资源复制了Pig代码,然后在Pig命令行中无法识别出弯引号,而仅允许使用直引号,因此输入流不会结束。 我的建议是,您应该注意代码中的有效字符,尤其是当您仅将代码复制到命令行中时,这总是会导致意外错误。