我正在尝试将 bash 脚本转换为 java 程序。在这个脚本中,我运行 Hadoop、Zookeeper 和 Accumulo 的启动脚本:
/hadoop/bin/start_all.sh
/zookeeper/bin/zkServer.sh start
/accumulo/bin/start_all.sh
这很容易在脚本中完成。如果程序已经在运行,我可以再次调用这些启动脚本没有问题,程序将简单地输出它们已经在运行以及它们的 pid。
我试图弄清楚是否有办法在java程序中做到这一点。 Hadoop/ZooKeeper/Accumulo API 中是否有一些隐藏命令,我可以在其中运行 Class.run(configs),它会启动或尝试启动 Hadoop/ZooKeeper/Accumulo?
我的下一步是我可能可以使用 jsch 来运行 ssh 命令,但这似乎并没有真正将 bash 脚本抛在后面。
编辑:从java执行hadoop示例jar文件 在这个问题中,提问者正在使用运行时执行启动命令。这是启动 Hadoop 的合适方式吗?如果有要使用的命令,我宁愿使用本机 Hadoop API。