您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 西宁分类信息网,免费分类信息发布

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

2026/1/24 7:18:48发布11次查看
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; }
??
?
?
?
西宁分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product