[HADOOP] PHP 스크립트를 실행하면 브라우저에서 쉘을 통해 하둡 명령을 실행합니다
HADOOPPHP 스크립트를 실행하면 브라우저에서 쉘을 통해 하둡 명령을 실행합니다
나는 PHP에서 shell_exec ()를 통해 터미널에 하둡 명령을 실행하려고하고 브라우저에서 URL을 통해 해당 스크립트를 실행하려고하고있다. 나는 큰 문제에 직면하고있다 :
나는 터미널에서 다음 스크립트를 실행하려고하면 :
<?php
echo "Begin";
echo shell_exec('hadoop fs -ls /');
echo "End";
?>
그것은 HDFS의 루트에있는 모든 항목의 목록을 사용할 수 원하는 결과를 보여줍니다. 시도는 URL을 통해 다음과 같은 스크립트를 실행할 때, 다음과 같은 결과를 보여줍니다
url: localhost/myscript.php
BeginEnd
다른 건 없습니다! 스크립트는 터미널에서가 아니라 브라우저에서 일하고있다.
언제가 스크립트를 변경 :
<?php
echo "Begin";
echo shell_exec('ls /');
echo "End";
?>
이 단자와 브라우저에서 로컬 파일 시스템의 루트 디렉토리에서 사용할 수있는 모든 항목을 보여줍니다.
나는 스크립트가 실행 여부를 확인하는 명령을 변경했습니다.
<?php
echo "Begin";
echo shell_exec('hadoop fs -mkdir /test');
echo "End";
?>
내가 PHP를 인 myscript.php를 사용하여 터미널을 통해 그것을 실행하면 작동 HDFS의 루트 디렉토리에 디렉토리를 생성합니다. 내가 스크립트에서 다른 디렉토리 이름이 URL을 통해 브라우저를 통해 그것을 실행하려고 할 때, 그것은 단지 HDFS의 루트 디렉토리를 생성하지 않고 BeginEnd를 인쇄 할 수 있습니다.
[UPDATED]
나는 아파치 로그 파일에 액세스 할 때, 내가 URL을 로컬 호스트 / 인 myscript.php를로드 한 후 다음 줄은 말합니다 :
[Thu Apr 07 10:04:07.187673 2016] [core:notice] [pid 1540] AH00094: Command line: '/usr/sbin/apache2'
sh: 1: hadoop: not found
나는 플라스크를 사용하여 파이썬 같은 스크립트를 실행하려고 할 때. 명령 "MKDIR"와 "LS"모두 완벽하게 작동하고 브라우저에서 원하는 결과를 보여줍니다.
참고 : 나는 아파치를 사용하지 않는 원하는 일을 파이썬 스크립트를 실행하면, 내가 자신의 서버를 호스팅하는 플라스크를 사용했다.
어떤 문제가되어야 하는가?
해결법
-
==============================
1.아파치 로그 파일에 살펴 보자 (하는 error.log / access.log의). 아파치 사용 php.ini 파일은 PHP가 CLI를 사용 php.ini의보다 동일하지 않다. 어쩌면 당신은의 open_basedir 제한이 있고이 디렉토리 외부 실행 파일을 실행할 수 없습니다.
아파치 로그 파일에 살펴 보자 (하는 error.log / access.log의). 아파치 사용 php.ini 파일은 PHP가 CLI를 사용 php.ini의보다 동일하지 않다. 어쩌면 당신은의 open_basedir 제한이 있고이 디렉토리 외부 실행 파일을 실행할 수 없습니다.
http://phpsec.org/projects/phpsecinfo/tests/open_basedir.html
또한 내부의 phpinfo 기능이있는 test.php 파일을 제작하여 이러한 정보를 확인하고 검색 할 수 있습니다 :
<? phpinfo() ; ?>
from https://stackoverflow.com/questions/36456562/running-php-script-to-execute-hadoop-command-via-shell-on-browser by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] bash는 파일에 매핑 할 수있는 몇 가지 일반적인 HDFS 명령은 무엇입니까? (0) | 2019.10.18 |
---|---|
[HADOOP] 어떻게 하이브 버킷에 작품을 해싱? (0) | 2019.10.18 |
[HADOOP] 그것은 아브 스키마 파일에 의해 정의 된 외부 테이블의 기존 열의 메타 데이터를 변경할 수 있습니까? (0) | 2019.10.18 |
[HADOOP] 항상 로컬 호스트로 리디렉션 webhdfs : 50075을 (0) | 2019.10.18 |
[HADOOP] 하이브 테이블에 대한 기본 구분 기호는 무엇입니까? (0) | 2019.10.18 |