2014-01-12 286 views
0

使用OSX,我下載了pig-0.11.1,並在我的bashrc中創建了一個別名。我有以下別名:爲什麼腳本沒有被執行?

別名pigalias ='的/ dev /豬-0.11.1/bin中/豬-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」

的問題是,當我運行類似:

piglias myscript.pig 

繁重的外殼彈出,但不AP梨實際上執行我的腳本。

注:我也/dev/avro-mapred-1.7.4.jar: Permission Denied。該文件被設置爲具有644的chmod(爲所有人閱讀)。

更新:增加周圍的參數雙引號後,我得到一個:

/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

分號是一個命令分隔符,您需要將參數放在引號中以防止出現這種情況。 – Barmar

回答

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作爲一個程序,因爲它是分號之後,並沒有執行權限。

+0

獲取ERROR101文件'/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'不存在。 – Setsuna

+0

對我來說,就像你不應該用分號分隔文件一樣。也許它使用冒號?我對豬一無所知。 – Barmar