使用OSX,我按原样下载了pig-0.11.1,并在我的bashrc中创建了一个别名。我有以下别名:
alias pigalias ='/ dev / pig-0.11.1 / bin / pig -D udf.import.list = org.apache.pig.piggybank.storage.avro -D pig.additional.jars =的/ dev /阿夫罗-1.7.4.jar; /dev/avro-mapred-1.7.4.jar; /dev/json_simple-1.1.jar; /Users/devpig-0.11.1/contrib/扑满/ JAVA / piggybank.jar'
问题出在我运行的时候:
piglias myscript.pig
弹出grunt shell,但似乎没有真正执行我的脚本。
注意:我也得到/dev/avro-mapred-1.7.4.jar: Permission Denied
。该文件设置为chmod为644(适合所有人阅读)。
更新:在参数周围添加双引号后,我得到了一个:
/dev/avro-1.7.4.jar;/dev/avro-mapred-1.7.4.jar;/dev/json_simple-1.1.jar;/Users/devpig-0.11.1/contrib/piggybank/java/piggybank.jar' does not exist.
这些文件显然存在。他们每个人。
答案 0 :(得分:0)
您需要围绕包含分号的-D
参数的引号,否则它将终止命令。
alias pigalias='/dev/pig-0.11.1/bin/pig -D udf.import.list=org.apache.pig.piggybank.storage.avro -D "pig.additional.jars=/dev/avro-1.7.4.jar;/dev/avro-mapred-1.7.4.jar;/dev/json_simple-1.1.jar;/Users/devpig-0.11.1/contrib/piggybank/java/piggybank.jar"'
您收到Permission denied
错误是因为您尝试将/dev/avro-mapred-1.7.4.jar
作为程序执行,因为它在分号之后,并且没有执行权限。