Прежде всего, я должен сказать вам, ребята, что этот вопрос на самом деле дублируется здесь.
Запуск php-скрипта для выполнения команды hadoop через оболочку в браузере
Итак, у меня такая же проблема (я не могу выполнить какую-либо команду Hadoop из php), но, к сожалению, я не могу решить ее, используя решение оттуда. Например, если я выполняю это
echo 'start ';
var_dump(shell_exec('/usr/local/hadoop-2.9.1/bin/hadoop fs -mkdir testtesttest'));
echo ' end';
я получу
start 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, которым нужен каталог пути.