2014-01-12 5 views
0

Используя OSX, я загрузил pig-0.11.1 как есть и создал псевдоним в моем bashrc. У меня есть следующий псевдоним:Почему скрипт не выполняется?

псевдоним pigalias = '/ DEV/свино-0.11.1/бен/свинья -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 

черновую оболочка всплывает, но не ар груша, чтобы фактически выполнить мой скрипт.

Примечание: Я также получаю /dev/avro-mapred-1.7.4.jar: Permission Denied. В файле установлен chmod из 644 (читается для всех).

Update: После добавления в двойные кавычки параметра, я получаю:

/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

Semicolon - разделитель команд, вам нужно поместить параметры в '-D' в кавычки, чтобы предотвратить это. – 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

Смежные вопросы