Skip to content

快速参考

支持的标签和相应的 Dockerfile 链接

快速参考(续)

什么是 Apache Storm?

Apache Storm 是一个免费且开源的分布式实时计算系统。Apache Storm 使可靠地处理无限数据流变得容易,它为实时处理做了 Hadoop 为批处理所做的事情。Apache Storm 简单易用,可以与任何编程语言一起使用,而且使用起来非常有趣!

Apache Storm 有许多用例:实时分析、在线机器学习、连续计算、分布式 RPC、ETL 等等。Apache Storm 速度快:基准测试显示它每秒每个节点处理超过一百万个元组。它具有可扩展性、容错性,保证您的数据将被处理,并且易于设置和操作。

Apache Storm 与您已经使用的排队和数据库技术集成。Apache Storm 拓扑消耗数据流,并以任意复杂的方式处理这些流,根据需要在计算的每个阶段之间重新分配流。

wikipedia.org/wiki/Storm_(事件处理器)

logo

如何使用此图像

在本地模式下运行拓扑

假设你在当前目录中有 topology.jar

$ docker run -it -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology.jar org.apache.storm.starter.ExclamationTopology

设置最小的 Storm 集群

  1. Apache Zookeeper 是运行 Storm 集群的必备条件。首先启动它。由于 Zookeeper“快速失败”,最好始终重新启动它。

    $ docker run -d --restart always --name some-zookeeper zookeeper
    
  2. Nimbus 守护进程必须与 Zookeeper 连接。它也是一个“快速失败”系统。

    $ docker run -d --restart always --name some-nimbus --link some-zookeeper:zookeeper storm storm nimbus
    
  3. 最后启动一个单独的 Supervisor 节点。它将与 Nimbus 和 Zookeeper 进行通信。

    $ docker run -d --restart always --name supervisor --link some-zookeeper:zookeeper --link some-nimbus:nimbus storm storm supervisor
    
  4. 现在您可以向我们的集群提交拓扑。

    $ docker run --link some-nimbus:nimbus -it --rm -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology.jar org.apache.storm.starter.WordCountTopology topology
    
  5. 可选地,您可以启动 Storm UI。

    $ docker run -d -p 8080:8080 --restart always --name ui --link some-nimbus:nimbus storm storm ui
    

...通过 docker-composedocker stack deploy

示例 docker-compose.yml 用于 storm

version: '3.1'

services:
  zookeeper:
    image: zookeeper
    container_name: zookeeper
    restart: always

  nimbus:
    image: storm
    container_name: nimbus
    command: storm nimbus
    depends_on:
      - zookeeper
    links:
      - zookeeper
    restart: always
    ports:
      - 6627:6627

  supervisor:
    image: storm
    container_name: supervisor
    command: storm supervisor
    depends_on:
      - nimbus
      - zookeeper
    links:
      - nimbus
      - zookeeper
    restart: always

Try in PWD

运行 docker stack deploy -c stack.yml storm (或 docker-compose -f stack.yml up )并等待其完全初始化。Nimbus 将在 http://swarm-ip:6627http://localhost:6627http://host-ip:6627 (视情况而定)可用。

配置

此图像使用 Apache Storm 的默认配置。有两种主要方法可以更改它。

  1. 使用命令行参数。

    $ docker run -d --restart always --name nimbus storm storm nimbus -c storm.zookeeper.servers='["zookeeper"]'
    
  2. 假设当前目录中有 storm.yaml ,则可以将其挂载为卷。

    $ docker run -it -v $(pwd)/storm.yaml:/conf/storm.yaml storm storm nimbus
    

日志记录

此图像使用默认的日志记录配置。默认情况下,所有日志都将转到 /logs 目录。

数据持久性

默认情况下不会保存任何数据。为了方便起见,映像中存在由 storm 用户拥有的 /data/logs 目录。相应地使用它们来使用卷保存数据和日志。

$ docker run -it -v /logs -v /data storm storm nimbus

请注意,使用除预定义路径之外的路径可能会导致权限被拒绝的错误。这是因为出于安全原因,Storm 是在非 root storm 用户下运行的。

许可证

Apache Storm、Storm、Apache、Apache 羽毛标志和 Apache Storm 项目标志是 Apache 软件基金会的商标。

根据 Apache 许可证 2.0 版获得许可。

查看许可信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证的约束(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 storm/ 目录中找到。

对于任何预构建的映像使用,映像用户有责任确保对此映像的任何使用都符合其中包含的所有软件的任何相关许可证。