安装Apache Storm后运行nimbus等命令提示脚本已弃用求助
解决Apache Storm启动命令提示"This script is deprecated"的问题
这个提示是因为你安装的是Apache Storm 2.0及以上版本,官方在这个版本后重构了命令行工具,原来直接用storm nimbus、storm supervisor、storm ui这类命令启动服务的方式已经被标记为弃用——目的是统一命令结构,让启动逻辑更清晰规范。
你可以按照以下方式解决:
1. 使用新的启动命令
直接在原来的命令后加上run子命令即可正常启动服务:
- 启动Nimbus:
storm nimbus run - 启动Supervisor:
storm supervisor run - 启动UI:
storm ui run
2. 后台运行服务(可选)
如果希望服务在后台持续运行,不会因为终端关闭而停止,可以结合nohup和后台运行符号&,同时将日志输出到指定文件方便排查问题:
# 后台启动Nimbus并记录日志 nohup storm nimbus run > nimbus.log 2>&1 & # 后台启动Supervisor并记录日志 nohup storm supervisor run > supervisor.log 2>&1 & # 后台启动UI并记录日志 nohup storm ui run > ui.log 2>&1 &
3. 用systemd管理服务(推荐生产环境)
如果是在生产环境使用Storm,更推荐用systemd来管理服务,实现开机自启、故障自动重启等功能。以Nimbus为例:
- 创建systemd服务文件
/etc/systemd/system/storm-nimbus.service,内容如下(记得替换其中的用户名、用户组和Storm安装路径):
[Unit] Description=Apache Storm Nimbus Service After=network.target zookeeper.service [Service] User=your-username # 替换成你的用户名,比如storm Group=your-groupname # 替换成你的用户组,比如storm ExecStart=/path/to/your/storm/bin/storm nimbus run # 替换成你的Storm实际安装路径 Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
- 重新加载systemd配置:
sudo systemctl daemon-reload - 启动并设置开机自启:
sudo systemctl start storm-nimbus sudo systemctl enable storm-nimbus
Supervisor和UI的systemd配置可以参照上面的模板,只需修改Description和ExecStart中的服务名称即可。
内容的提问来源于stack exchange,提问作者Caesium
相关产品推荐
相关产品推荐

