PHP shell_exec无法执行Hadoop命令

时间:2019-03-18 16:54:33

标签: php hadoop

首先我要告诉大家,这个问题实际上在这里重复了

Running php script to execute hadoop command via shell on browser

所以我有一个同样的问题(我无法从php执行任何Hadoop命令),但是不幸的是,我无法使用那里的解决方案解决它。例如,如果我执行此

echo 'start ';
var_dump(shell_exec('/usr/local/hadoop-2.9.1/bin/hadoop fs -mkdir testtesttest'));
echo ' end';

我会得到

  

开始NULL结束

您可以看到'/usr/local/hadoop-2.9.1/bin/hadoop'是我获取Hadoop脚本的完整路径。怎么了?谢谢:)

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方案。因此,基本上我的Hadoop可以插入不带前缀“ /”的目录,但是当我尝试shell_exec时,目录名称必须以“ /”作为前缀。因此,就像上面的示例一样,我需要在目录名称之前添加“ /”。

echo 'start ';
var_dump(shell_exec('/usr/local/hadoop-2.9.1/bin/hadoop fs -mkdir /testtesttest'));
echo ' end';

它将起作用。它适用于所有需要路径目录的hadoop命令。