在之前的文章Docker下拉取zookeeper镜像中我们已经成功地拉取了3.5.9版本的zookeeper官方镜像,下面将通过使用官方Storm镜像搭配使用官方zookeeper镜像来体验Storm的使用。
Storm是一个分布式实时计算系统,它可以处理大量的实时数据流。Storm提供了高效的并发处理能力,可以在多台机器上并行执行任务,同时具备容错和恢复能力。通过Storm,用户可以实时处理和分析数据,进行复杂的计算和实时决策。Storm的设计思想是将数据分为流(stream)和批(batch)两种模式,流模式用于实时计算,批模式则用于历史数据分析。Storm已经被广泛应用于各种场景,包括实时分析、实时计算、在线机器学习等。
拉取Storm镜像
我们拉取Storm的官方Docker镜像,在命令窗口中运行如下的命令:
docker pull storm:2.5.0
注意这里拉取的是2.5.0版本的storm
等待Docker镜像拉取完毕。
创建容器
下面将使用docker-compose搭建一个由1个zookeeper节点带1个storm-nimbus结点和2个storm-supervisors结点以及1个storm-ui节点的集群:
version: '2'
services:
zookeeper:
image: zookeeper:3.5.9
container_name: zookeeper
restart: always
networks:
- storm-net
nimbus:
image: storm:2.5.0
container_name: nimbus
command: storm nimbus
depends_on:
- zookeeper
restart: always
ports:
- 6627:6627
networks:
- storm-net
supervisor-1:
image: storm:2.5.0
container_name: supervisor-1
command: storm supervisor
depends_on:
- nimbus
- zookeeper
restart: always
networks:
- storm-net
supervisor-2:
image: storm:2.5.0
container_name: supervisor-2
command: storm supervisor
depends_on:
- nimbus
- zookeeper
restart: always
networks:
- storm-net
ui:
image: storm:2.5.0
container_name: ui
command: storm ui
depends_on:
- nimbus
restart: always
ports:
- 8980:8080
networks:
- storm-net
networks:
storm-net:
driver: bridge
注意:这里的zookeeper的容器名必须是zookeeper,否则storm连接不上zookeeper!(在后续的内容中我会给出解决办法)
通过Docker Desktop或者使用命令查看容器情况:
docker ps -a
创建成功!
查看Storm UI
在上一步中,我们成功创建了Storm UI节点,那么Storm UI是什么呢?
Storm UI是一个Web界面,用于监控和管理Storm集群。它提供了实时的拓扑(Topology)状态信息、组件(Component)的统计数据,以及错误日志和警报信息的展示。Storm UI可视化地显示拓扑的结构和运行情况,包括拓扑的任务分配、各个组件的执行状况和数据流的流向等。通过Storm UI,用户可以方便地监控和调试拓扑,查看任务的健康状况和性能指标,并且能够及时发现和解决问题,从而提高Storm集群的稳定性和效率。
在浏览器网址栏中