使用sbin/start-dfs.sh启动hadoop集群

dbf7pr2w  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(547)

我想用php而不是终端启动hadoop守护进程。
当我启动dfs.sh时,它运行得很好。
我使用的php代码是

<?php
    echo shell_exec('/usr/local/hadoop3/sbin/stop-dfs.sh');
?>

以上代码的输出是
在[localhost]上启动namenodes启动datanodes。正在启动辅助名称节点[chbpc virtualbox]。
但是当我输入网址时 http://localhost:9870/dfshealth.html#tab-overview 在浏览器中(检查hadoop的状态),它实际上没有启动,尽管有上面的输出。

ne5o7dgx

ne5o7dgx1#

回答

<?php
    echo shell_exec('/usr/local/hadoop3/sbin/stop-dfs.sh > /dev/null &');
?>

描述
当您使用shell\u exec运行守护进程时,您应该从这个进程中分离shell\u exec命令,但是您应该保持守护进程处于progress状态。 & -提供这样做。
另外,您可能正在使用自定义日志文件/dev/null,stop-dfs.sh中的所有信息都将重定向到此文件。
我对这个解决方案的测试
将此代码段复制到bash控制台:

cat <<EOT > daemon.sh
while true; do date; sleep 1; done

EOT

chmod +x daemon.sh

cat <<EOT > daemon-runner.php
<?php
    echo shell_exec(__DIR__ . '/daemon.sh > daemon-log &');

EOT

touch daemon-log

php daemon-runner.php

tail -f daemon-log

ps公司
你在用什么 stop-dfs.sh 启动hadoop的脚本名,也可能是将脚本名与 start.sh ?

相关问题