Я не могу выполнить Jar-файл Hadoop в псевдораспределенном виде (если вам нужна моя конфигурация, я следую этому руководству мои псевдораспределенные параметры ) из PHP, используя любую функцию PHP, такую как shell_exec, exec, system,Когда я пытался выполнить jar, мой браузер отображал значок загрузки на вкладке, но когда я проверял историю приложений Hadoop, ничего не запускалось.Что еще хуже, нет сообщения об ошибке.Я уже проверил мой /var/log/apache2/error.log и ничего там.
Так что это мой эксперимент по запуску кода.
//1.Run in the command prompt works perfectly fine.
/usr/local/hadoop-2.9.1/bin/hadoop jar path_to_my_jar_file.jar main_class_name args
номер 2,3,4это весь php-код, который я набираю.
//2. Run using shell_exec nothing happens
var_dump(shell_exec("/usr/local/hadoop-2.9.1/bin/hadoop jar path_to_my_jar_file.jar main_class_name args"));
//3. Run using exec I got array(0) { }
$retval = array();
exec("/usr/local/hadoop-2.9.1/bin/hadoop jar path_to_my_jar_file.jar main_class_name args",$retval);
var_dump( $retval);
//4. Run using system I got 1
system("/usr/local/hadoop-2.9.1/bin/hadoop jar path_to_my_jar_file.jar main_class_name args",$retval);
var_dump( $retval);
Дополнительное примечание:
Я нашел это Запуск задания MapReduce, написанного на Java через мою веб-страницу PHP вопрос, но яне думаю, что у меня есть проблемы с разрешениями, поскольку я могу выполнить это.
shell_exec("/usr/local/hadoop-2.9.1/bin/hadoop fs -mkdir /test");
Я даже пытался сменить пользователя apache, но все еще не работал.Я что-то пропустил?Заранее спасибо:)
ОБНОВЛЕНИЕ 1
Удаление этого свойства в mapred-site.xml заставляет php exec работать, но я не вижу, как mapreduce прогрессирует в менеджере ресурсов(localhost: 8088) и мне это тоже нужно.
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>MapReduce framework name</description>
</property>