php shell_exec无法执行hadoop命令



首先,我需要告诉大家这个问题实际上是在此处复制的

运行php脚本以通过browser上的shell执行hadoop命令

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

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

我会得到

开始null end

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

我已经得到解决方案。因此,基本上我的Hadoop可以在没有前缀'/'的情况下插入目录,但是当我尝试使用Shell_exec目录名称时,必须由'/'前缀为前缀。因此,就像上面的示例一样,我需要在目录名称之前添加'/'。

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

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