Я изучаю Pig Latin, и мне хотелось бы узнать, как запустить скрипт свиньи с PHP.Запуск сценария свиньи с php
Это моя линия для запуска скрипта:
pig -f ../testjava/calculs_routage.pig -param input=/user/hive/warehouse/tableRoutage/ -param output=/resultatsRequetes/obj1/resultatObj1 -param date1=2013-11-08T00:00:00.000Z -param date2=2013-11-15T00:00:00.000Z
У меня есть сценарий, который я могу запустить в моей оболочке (я корень), и он работает, я пытаюсь запустить мою свинью скрипт с Баш , и он тоже работает.
Но когда я пытаюсь использовать мое приложение php (так что мой пользователь - apache), он не работает. Я попытался запустить скрипт свиньи напрямую или с помощью bash, но это не удалось. Это моя линия для запуска сценария:
$cmdTest = exec('pig -f ../testjava/calculs_routage.pig -param input=/user/hive/warehouse/tableRoutage/ -param output=/resultatsRequetes/obj1/resultatObj1 -param date1=2013-11-08T00:00:00.000Z -param date2=2013-11-15T00:00:00.000Z 2>&1');
Я попытался сменить пользователя с помощью sudo, но он тоже не удался.
Баш скрипт:
#!/bin/bash
sudo -s -u root
pig -f ../testjava/calculs_routage.pig -param input=/user/hive/warehouse/tableRoutage/ -param output=/resultatsRequetes/obj1/resultatObj1 -param date1=2013-11-08T00:00:00.000Z -param date2=2013-11-15T00:00:00.000Z
Я не знаю, где это Probleme, это пользователь или ошибка с файлом журнала ?? Я попытался изменить путь к файлам журнала в свойствах log4j, но это ничего не меняет.
Мое сообщение об ошибке:
sudo: sorry, you must have a tty to run sudo
13/12/23 14:16:35 WARN pig.Main: Cannot write to log file: /var/www/html/phpmail/vue/pig_1387804595477.log
2013-12-23 14:16:35,481 [main] INFO org.apache.pig.Main - Apache Pig version 0.11.1-Intel (r16951) compiled Jun 19 2013, 17:26:05
2013-12-23 14:16:35,734 [main] INFO org.apache.pig.impl.util.Utils - Default bootup file /var/www/.pigbootup not found
2013-12-23 14:16:35,752 [main] WARN org.apache.pig.Main - Cannot write to log file: /var/www/html/phpmail/vue//calculs_routage.pig1387804595751.log
2013-12-23 14:16:35,767 [main] ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. null
2013-12-23 14:16:35,767 [main] WARN org.apache.pig.Main - There is no log file to write to.
2013-12-23 14:16:35,767 [main] ERROR org.apache.pig.Main - java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:394)
at java.util.Properties.setProperty(Properties.java:143)
at org.apache.pig.Main.run(Main.java:454) at org.apache.pig.Main.main(Main.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:187)
Я не знаю, что делать, и я нужен этот скрипт, который очень производительный.
Спасибо, что прочитали это и, возможно, за вашу помощь! И счастливые праздники !!
Angélique
Вы даже прочитали сообщение об ошибке? 'sudo: извините, у вас должно быть tty для запуска sudo' – devnull
Да, но я начинаю в скрипте/shell/bash, я стараюсь изо всех сил, и я не понял, что может означать эта ошибка. – Angelik
Это не столько о том, чтобы быть новичком, но, возможно, больше о _attempting_, чтобы решить проблему. Удачи. – devnull