Storm-本地模式与集群模式部署
Storm运行模式
本地模式
例如在IDEA或者eclipse开发软件中引入jdk,storm开发jar包,进行编写逻辑业务代码进行测试运行
Storm开发依赖包
可以利用maven引入依赖:
https://mvnrepository.com/search?q=storm
也可以利用stormzip开发环境包:
http://storm.apache.org/downloads.html
开发测试helloworld
参考:https://www.cnblogs.com/zhangyukun/p/4031066.html
注意:
注意:在LocalMode下不管设置几个worker,最终都只有一个worker进程。
在开发编辑器中直接运行代码,使用的是本地模式LocalCluster 对象进行启动topology,args为空
if (args != null && args.length > 0) {
23 StormSubmitter.submitTopology(args[0], config, topologyBuilder.createTopology());
24 } else {
25 // 这里是本地模式下运行的启动代码。
26 config.setMaxTaskParallelism(1);
27 LocalCluster cluster = new LocalCluster();
28 cluster.submitTopology("simple", config, topologyBuilder.createTopology());
29 }
单机模式
在本机电脑上或者一台虚拟机上进行部署一个节点的单机模式进行上传jar运行
需要安装zookeeper、storm
请参考:https://blog.csdn.net/l1028386804/article/details/78324617
集群模式
区别于本地模式
在集群环境下用命令行进行提交jar文件:
1、任务提交命令:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】
args不为空,所以执行if分支:
if (args != null && args.length > 0) {
23 StormSubmitter.submitTopology(args[0], config, topologyBuilder.createTopology());
24 } else {
25 // 这里是本地模式下运行的启动代码。
26 config.setMaxTaskParallelism(1);
27 LocalCluster cluster = new LocalCluster();
28 cluster.submitTopology("simple", config, topologyBuilder.createTopology());
29 }
集群部署
业务逻辑
部署
例如三台机器,都需要下载jdk,zookeeper,storm,一个机器地址指定为nimbus,两个及其地址指定为supervisor
需要配置全局环境变量:
source ./profile 让文件生效
https://www.cnblogs.com/amboyna/archive/2008/03/08/1096024.html
需要修改配置文件storm.yaml文件:
启动命令
Storm相关问题
Storm常用命令&yaml文件
https://www.cnblogs.com/ahu-lichang/p/6871920.html
storm的配置文件的各种参数的详情:
https://www.cnblogs.com/ashaff/p/11446286.html
Storm常见错误
解决supervisor节点为何自己退出:
https://blog.csdn.net/u013928917/article/details/76177528
Storm运行错误 /usr/bin/env: ‘python’: No such file or directory:
解决运行 nohup storm就自行退出,然后直接运行storm 命令提示python错误,但是已安装python,可能是版本问题,找不到对应的python,解决措施:
https://blog.csdn.net/qq_39536393/article/details/115842440
是因为没有 python 命令,创建一个软链接即可:sudo ln -s /usr/bin/python3 /usr/bin/python。这时输入python就代表输入python3