> 백엔드 개발 > PHP 튜토리얼 > PHP调用SHELL下传本地文件到Hadoop的hdfs中

PHP调用SHELL下传本地文件到Hadoop的hdfs中

WBOY
풀어 주다: 2016-06-13 10:38:27
원래의
1164명이 탐색했습니다.

PHP调用SHELL上传本地文件到Hadoop的hdfs中

本来是用Thrift进行上传,但其上传效率之低,另人发指,只好选用其它方法。

?

环境:

php 运行环境为nginx + php-fpm

?

因为hadoop开启了权限控制,所以直接使用php调用shel进行上传时,没有权限。通过php执行命令看来,php运行的帐户和级均为nobody。因此,解决方法有两个:一,在hadoop的shell中创建目录,并把目录的所有者赋给nobody组的nobody用户。二,原来的目录权限放开,使用777。下面详讲操作步骤:

?

方法一:./hadoop fs -chown -R nobody:nobody /resources

注:/resources是用户目录,需要根据情况改变

?

方法二:./hadoop fs -chomod -R 777 /resources

注:/resources是用户目录,需要根据情况改变

?

php调用shell的方式:

public function uploadByShell($local, $hdfs) {						$shell =  "sh /usr/local/hadoop/hadoop-0.20.2/bin/hadoop fs -copyFromLocal " . $local ." " . $hdfs;			$shell .= "; sh /usr/local/hadoop/hadoop-0.20.2/bin/hadoop fs -chmod 777 " . $hdfs;			$res = null;			system($shell, $res);			$flag = false;			if ($res == "0") {				$flag = true;			}						return $flag;		}
로그인 후 복사
?

?

?

?

?

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿