【Docker】大数据Storm数据流实时计算安装部署

该文详细介绍了如何在Docker中设置网络、创建目录、配置文件,以及使用docker-compose启动Storm、Zookeeper服务,包括ZooKeeper的myid设置,最终完成Storm集群的部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Storm安装部署手册

本文将指导您如何在Docker环境中进行Storm的安装和部署。

1、配置网络

首先,需要创建一个名为zk-net的Docker网络。执行以下命令:

docker network create zk-net

2、创建相关文件目录

接下来,需要创建一些相关的文件目录。执行以下命令:

# 创建zookeeper集群目录
cd /data/docker/datas
mkdir -p zookeeper/zk1/data
mkdir -p zookeeper/zk1/log
mkdir -p zookeeper/zk2/data
mkdir -p zookeeper/zk2/log
mkdir -p zookeeper/zk3/data
mkdir -p zookeeper/zk3/log
# 创建storm相关目录
mkdir storm/conf
mkdir storm/data/super1
mkdir storm/data/super2
mkdir storm/data/super3
mkdir storm/logs/super1
mkdir storm/logs/super2
mkdir storm/logs/super3

3、创建相关配置文件

接下来,需要创建一些相关的配置文件。执行以下命令:

创建zookeeper相关配置文件

cd $DOCKER_HOME/datas/zookeeper
vim zk1/zoo.cfg

将以下内容复制到zoo.cfg文件中:

dataDir=/data
clientPort=2181
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60

server.100=zk1:2888:3888
server.200=zk2:2888:3888
server.300=zk3:2888:3888

然后,将配置文件复制到其他目录:

cp zk1/zoo.cfg zk2/
cp zk1/zoo.cfg zk3/

创建storm相关配置文件

cd $DOCKER_HOME/datas/storm
vim conf/storm.yaml

将以下内容复制到storm.yaml文件中:

storm.zookeeper.servers:
  - "zk1"
  - "zk2"
  - "zk3"

storm.log.dir: "/logs"
storm.local.dir: "/data"
nimbus.seeds: ["nimbus"]

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

4、配置docker-compose启动文件

接下来,需要配置docker-compose启动文件。执行以下命令:

cd $DOCKER_HOME/datas/storm
vim storm.yml

将以下内容复制到storm.yml文件中:

version: '3'
services:
  zk1:
    image: zookeeper
    restart: always
    container_name: zk1
    hostname: zk1
    volumes:
      - /data/docker/datas/zookeeper/zk1/data:/data
      - /data/docker/datas/zookeeper/zk1/log:/datalog
      - /data/docker/datas/zookeeper/zk1/zoo.cfg:/conf/zoo.cfg
    environment:
      - SERVER_ID=100
  zk2:
    image: zookeeper
    restart: always
    container_name: zk2
    hostname: zk2
    volumes:
      - /data/docker/datas/zookeeper/zk2/data:/data
      - /data/docker/datas/zookeeper/zk2/log:/datalog
      - /data/docker/datas/zookeeper/zk2/zoo.cfg:/conf/zoo.cfg
    environment:
      - SERVER_ID=200
  zk3:
    image: zookeeper
    restart: always
    container_name: zk3
    hostname: zk3
    volumes:
      - /data/docker/datas/zookeeper/zk3/data:/data
      - /data/docker/datas/zookeeper/zk3/log:/datalog
      - /data/docker/datas/zookeeper/zk3/zoo.cfg:/conf/zoo.cfg
    environment:
      - SERVER_ID=300
  ui:
    image: storm
    command: storm ui
    restart: always
    container_name: ui
    ports:
      - 6680:8080
    volumes:
      - /data/docker/datas/storm/data:/data
      - /data/docker/datas/storm/logs:/logs
      - /data/docker/datas/storm/conf/storm.yaml:/conf/storm.yaml
    depends_on:
      - zk1
      - zk2
      - zk3
      - nimbus
  nimbus:
    image: storm
    command: storm nimbus
    restart: always
    container_name: nimbus
    hostname: nimbus
    ports:
      - 6627:6627
    depends_on:
      - zk1
      - zk2
      - zk3
    volumes:
      - /data/docker/datas/storm/data:/data
      - /data/docker/datas/storm/logs:/logs
      - /data/docker/datas/storm/conf/storm.yaml:/conf/storm.yaml
  supervisor1:
    image: storm
    command: storm supervisor
    restart: always
    environment:
      - affinity:role!=supervisor
      - supervisor.slots.ports=[6700,6701,6702,6703]
    depends_on:
      - zk1
      - zk2
      - zk3
      - nimbus
    volumes:
      - /data/docker/datas/storm/data/super1:/data
      - /data/docker/datas/storm/logs/super1:/logs
      - /data/docker/datas/storm/conf/storm.yaml:/conf/storm.yaml
  supervisor2:
    image: storm
    command: storm supervisor
    restart: always
    environment:
      - affinity:role!=supervisor
      - supervisor.slots.ports=[6700,6701,6702,6703]
    depends_on:
      - zk1
      - zk2
      - zk3
      - nimbus
    volumes:
      - /data/docker/datas/storm/data/super2:/data
      - /data/docker/datas/storm/logs/super2:/logs
      - /data/docker/datas/storm/conf/storm.yaml:/conf/storm.yaml
  supervisor3:
    image: storm
    command: storm supervisor
    restart: always
    environment:
      - affinity:role!=supervisor
      - supervisor.slots.ports=[6700,6701,6702,6703]
    depends_on:
      - zk1
      - zk2
      - zk3
      - nimbus
    volumes:
      - /data/docker/datas/storm/data/super3:/data
      - /data/docker/datas/storm/logs/super3:/logs
      - /data/docker/datas/storm/conf/storm.yaml:/conf/storm.yaml
networks:
  default:
    external:
      name: zk-net

5、创建系统变量引用

为了方便引用相关的路径信息,可以将其作为系统变量。执行以下命令:

vim /etc/profile

在文件末尾添加以下内容:

export ZOOKEEPER_HOME=/data/docker/datas/zookeeper
export STORM_HOME=/data/docker/datas/storm
source /etc/profile

保存并退出文件。

6、使用docker-compose启动镜像

最后,使用docker-compose命令启动镜像。执行以下命令:

docker-compose -f $STORM_HOME/storm.yml up -d

7、修改ZooKeeper myid文件,表明服务id

停止相关容器,在$ZOOKEEPER_HOME目录下找到zk1/data/myid文件,并将其中的内容修改为100

然后,分别修改zk2/data/myidzk3/data/myid文件的内容为200300

保存文件后,重新启动服务:

docker-compose -f $STORM_HOME/storm.yml up -d

至此,Storm的安装和部署已完成。

8、查看是否启动成功

  • 浏览器输入相关网址 http://服务器IP:6680/

打开界面入下:
安装成功界面安装成功界面

注意:以上操作基于Docker环境,确保已正确安装并配置好Docker。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值