나는 돼지 라틴어를 배우기 때문에 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 응용 프로그램을 사용하려고하면 (내 사용자가 아파치이기 때문에) 작동하지 않습니다. 돼지 스크립트를 직접 또는 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)
내가 무엇을 해야할지하지 않으며, 내가 아주 성능이 좋은 것입니다이 스크립트가 필요합니다.
이 도움말을 읽고 도움을 주셔서 감사합니다. 해피 홀리데이!
안젤리크
오류 메시지를 읽었습니까? 'sudo : 미안 해요. sudo를 실행하려면 tty가 있어야합니다. ' – devnull
예.하지만 스크립트/셸/bash에서 초보자인데, 최선을 다하려하지만이 오류의 의미를 이해하지 못했습니다. – Angelik
초보자가되는 것이 아니라 문제를 해결하는 데 더 많은 도움이 될 것입니다. 행운을 빕니다. – devnull