首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sbin/ Start -dfs.sh启动Hadoop集群

使用sbin/ Start -dfs.sh启动Hadoop集群
EN

Stack Overflow用户
提问于 2020-02-19 07:30:39
回答 1查看 164关注 0票数 0

我想用PHP而不是终端启动Hadoop守护进程。

当我启动-dfs.sh时,效果很好。

我使用的PHP代码是

代码语言:javascript
复制
<?php
    echo shell_exec('/usr/local/hadoop3/sbin/stop-dfs.sh');
?>

以上代码的输出如下

在本地主机上启动namenodes,启动datanodes。启动二级namenodes chbpc-VirtualBox。

但是,当我在浏览器中输入url http://localhost:9870/dfshealth.html#tab-overview (检查我的Hadoop的状态)时,它实际上没有启动,尽管有上面的输出。

EN

回答 1

Stack Overflow用户

发布于 2020-02-19 07:36:31

答案

代码语言:javascript
复制
<?php
    echo shell_exec('/usr/local/hadoop3/sbin/stop-dfs.sh > /dev/null &');
?>

描述

当您使用shell_exec运行守护进程时,您应该从这个进程中分离出来以完成您的shell_exec命令,但是您应该保持守护进程处于进度状态。

& -提供这样的操作。

另外,您可能正在使用自定义日志文件/dev/null,而停止-dfs.sh中的所有信息都将重定向到该文件。

我对这个解决方案的测试,

将此片段复制到bash控制台:

代码语言:javascript
复制
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混淆了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60295091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档