storm(二) docker集群搭建

xiaoxiao2021-03-01  14

利用docker搭建storm集群

启动nimbus节点:docker run -d --restart always --name nimbus --link zookeeper:zookeeper storm storm nimbus --link zookeeper:zookeeper 使用zookeeper容器,将其别名为zookeeper 启动一个supervisor节点:docker run -d --restart always --name supervisor -p 8000:8000 -p 6700:6700 -p 6701:6701 --link zookeeper:zookeeper --link nimbus:nimbus storm storm supervisor 这里将8000端口暴露出来主要是为了能访问supervisor的日志实际的bolt和spout是在worker上运行的,所以需要将worker的端口暴露出来,一个supervisor默认是分配4个worker,端口从6700开始 启动storm的ui便于监控,随后便可以使用http://localhost:8080/index.html访问监控界面:docker run -d -p 8080:8080 --restart always --name ui --link nimbus:nimbus storm storm ui登陆到nimbus、supervisor节点上,将logviewer启动起来:nohup sh storm logviewer &

注意

上面docker run -d -p 8080:8080 --restart always --name ui --link nimbus:nimbus storm storm ui这条命令中的两个storm含义并不相同。 第一个storm代表的是镜像名第二个storm代表的是运行storm命令。进入到进行中/bin目录中有个storm文件,直接运行storm文件,可以看到storm支持的所有命令,其中就有我们用到的ui、nimbus、supervisor 在容器的里还有个example文件夹,里面有一些例子,我们可以通过docker命令将里面的例子从容器中拷贝出来: docker cp 2a5b4120305d:/apache-storm-1.2.2/examples/storm-starter /Users/rui/code/docker/storm,2a5b4120305d为容器的id

提交topology

修改代码,其实需要修改的就只有最后提交topo的那一行代码: try { StormSubmitter.submitTopology("SumTopology",new Config(),topology); } catch (AlreadyAliveException e) { e.printStackTrace(); } catch (InvalidTopologyException e) { e.printStackTrace(); } catch (AuthorizationException e) { e.printStackTrace(); } 编译打包即可提交topo:docker run --link nimbus:nimbus -it --rm -v /Users/rui/code/storm/target/storm-1.0-SNAPSHOT.jar:/topology.jar storm storm jar /topology.jar com.dr.sum.SumTopology topology
转载请注明原文地址: https://www.6miu.com/read-3964874.html

最新回复(0)