Pig in grunt mode

こ雲淡風輕ζ 提交于 2019-12-10 14:55:47

问题


I have installed cygwin, hadoop and pig in windows. The configuration seems ok, as I can run pig scripts in batch and embedded mode.

When I try to run pig in grunt mode, something strange happens. Let me explain. I try to run a simple command like

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

When I press Enter, nothing happens. The cursor goes to the next line and the grunt> prompt does not appear at all anymore. It seems as I am typing in a text editor.

Has anything similar ever happened to you? Do you have any idea how can I solve this?


回答1:


The behavior is consistent with what you are observing. I will take the pig tutorial for example.

The following command does not result in any activity by pig.

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

But if you invoke a command that results in using data from variable raw using some map-reduce thats when you will see some action in your grunt shell. Some thing along the lines of second command that is mentioned there.

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

Similarly, your command will not result in any action, you have to use the data from variable A which results in map-reduce command to see some action on grunt shell:

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



回答2:


Pig will only process the commands when you use a command that creates output namely DUMP (to console) or STORE you can also use command DESCRIBE to get the structure of an alias and EXPLAIN to see the map/reduce plan

so basically DUMP A; will give you all the records in A




回答3:


Please try to run in the windows command window.

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/home/$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

Replace $USERNAME$ with your user id accordingly ..

Modify the class path and conf path accordingly ..

It works well in both local as well as map reduce mode ..




回答4:


Pig shell hangs up in cygwin. But pig script successfully executed from pig script file.

As below:

$pig ./user/input.txt  

For local mode:

pig -x local ./user/input.txt



回答5:


I came across the same problem as you yesterday,and I spent one whole day to find what was wrong with my pig or my hotkey and fix it finally. I found that it's only because I copied the pig code from other resource,then the bending quotation marks cannot be identified in pig command line, which only admits straight quotation marks, so the input stream would not end. My suggestion is that you should take care of the valid characters in the code, especially when you just copy codes into the command line, which always causes unexpected faults.



来源:https://stackoverflow.com/questions/16315180/pig-in-grunt-mode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!