Apache Storm 官方文档 —— 命令行操作

原文链接    译者:魏勇

本文介绍了 Storm 命令行客户端中的所有命令操作。如果想要了解怎样设置你的 Strom 客户端和远程集群的交互,请按照配置开发环境一文中的步骤操作。

Storm 中支持的命令包括:

  1. jar
  2. kill
  3. activate
  4. deactivate
  5. rebalance
  6. repl
  7. classpath
  8. localconfvalue
  9. remoteconfvalue
  10. nimbus
  11. supervisor
  12. ui
  13. drpc

jar

语法:storm jar topology-jar-path class ...

使用指定的参数运行 main 方法(也就是打包好的拓扑 jar 包中的 main 方法)。Storm 所需要的 jar 包和配置信息都在类路径(classpath)中。这个运行过程已经配置好了,这样 StormSubmitter 就可以在提交拓扑的时候将 topology-jar-path中的 jar 包上传到集群中。

kill

语法:storm kill topology-name [-w wait-time-secs]

杀死集群中正在运行的名为 topology-name 的拓扑。执行该操作后,Storm 首先会注销拓扑中的 spout,使得拓扑中的消息超时,这样当前的所有消息就会结束执行。随后,Storm 会将所有的 worker 关闭,并清除他们的状态。你可以使用 -w参数来调整 Storm 在注销与关闭拓扑之间的间隔时间。

activate

语法:storm activate topology-name

激活运行指定拓扑的所有 spout。

deactivate

语法:storm deactivate topology-name

停止指定拓扑的所有 spout 的运行。

rebalance

语法:storm rebalance topology-name [-w wait-time-secs]

有些场景下需要对正在运行的拓扑的工作进程(worker)进行弹性扩展。例如,加入你有 10 个节点,每个节点上运行有 4 个 worker,现在由于各种原因你需要为集群添加 10 个新节点。这时你就会希望通过扩展正在运行的拓扑的 worker 来使得每个节点只运行两个 worker,降低集群的负载。实现这个目的的一种直接的办法是 kill 掉正在运行的拓扑,然后重新向集群提交。不过 Storm 提供了再平衡命令可以以一种更简单的方法实现目的。

再平衡首先会在一个超时时间内(这个时间是可以通过 -w 参数配置的)注销掉拓扑,然后在整个集群中重新分配 worker。接着拓扑就会自动回到之前的状态(也就是说之前处于注销状态的拓扑仍然会保持注销状态,而处于激活状态的拓扑则会返回激活状态)。

repl

语法:storm repl

打开一个带有类路径上的 jar 包和配置信息的 Clojure 的交互式解释器(REPL)。该命令主要用于调试。

classpath

语法:storm classpath

打印客户端执行命令时使用的类路径环境变量。

localconfvalue

语法:storm localconfvalue conf-name

打印出本地 Storm 配置中 conf-name 属性的值。这里的本地配置指的是 ~/.storm/storm.yamldefaults.yaml 两个配置文件综合后的配置信息。

remoteconfvalue

语法:storm remoteconfvalue conf-name

打印出集群配置中 conf-name 属性的值。这里的集群配置指的是 $STORM-PATH/conf/storm.yamldefaults.yaml 两个配置文件综合后的配置信息。该命令必须在一个集群机器上执行。

nimbus

语法:storm nimbus

启动 nimbus 后台进程。该命令应该在 daemontools 或者 monit 这样的工具监控下执行。详细信息请参考配置 Storm 集群一文。

supervisor

语法:storm supervisor

启动 supervisor 后台进程。该命令应该在 daemontools 或者 monit 这样的工具监控下执行。详细信息请参考配置 Storm 集群一文。

ui

语法:storm ui

启动 UI 后台进程。UI 提供了一个访问 Storm 集群的 Web 接口,其中包含有运行中的拓扑的详细信息。该命令应该在daemontools 或者 monit 这样的工具监控下执行。详细信息请参考配置 Storm 集群一文。

drpc

语法:storm drpc

启动 DRPC 后台进程。该命令应该在 daemontools 或者 monit 这样的工具监控下执行。详细信息请参考分布式 RPC一文。 

时间: 2024-10-30 02:24:53

Apache Storm 官方文档 —— 命令行操作的相关文章

Apache Storm 官方文档中文版

原文链接    译者:魏勇 About 本项目是 Apache Storm 官方文档的中文翻译版,致力于为有实时流计算项目需求和对 Apache Storm 感兴趣的同学提供有价值的中文资料,希望能够对大家的工作和学习有所帮助. 虽然 Storm 的正式推出已经有好几个年头了,发行版也已经到了 0.10.x,但是目前网络上靠谱的学习资料仍然不多,很多比较有价值的资料都过时了(甚至官方网站自己的资料都没有及时更新,这大概也是发展太快的社区的通病),而较新的资料大多比较零碎,在关键内容的描述上也有些

Apache Storm 官方文档 —— 配置开发环境

本文详细讲解了配置 Storm 开发环境的相关信息.简单地说,配置过程包含以下几个步骤: 下载 Storm 发行版,将其解压缩并复制到你的 PATH 环境变量的 bin 目录中(也可以根据需要自定义安装目录 -- 译者注): 如果需要在远程集群中运行拓扑,则需要在 ~/.storm/storm.yaml 文件中配置好集群的相关信息. 上述几步的详细内容如下. 什么是开发环境? Storm 包含两种操作模式:本地模式与远程模式(即集群模式 -- 译者注).在本地模式下,你可以在本地机器上的一个进程

Apache Storm 官方文档 —— 内部技术实现

这部分的 wiki 是为了说明 Storm 是怎样实现的.在阅读本章之前你需要先了解怎样使用 Storm. 代码库架构 拓扑的生命周期1 消息传递的实现1 Ack 框架的实现 Metrics 事务型拓扑的工作机制1 单元测试2 时间模拟 完整的拓扑 集群跟踪 说明 1 该文内容已过期.2 该文官方文档暂未提供. 转载自 并发编程网 - ifeve.com

Apache Storm 官方文档 —— Storm 与 Kestrel

原文链接    译者:魏勇 本文说明了如何使用 Storm 从 Kestrel 集群中消费数据. 前言 Storm 本教程中使用了 storm-kestrel 项目和 storm-starter 项目中的例子.建议读者将这几个项目 clone 到本地,并动手运行其中的例子. Kestrel 本文假定读者可以如此项目所述在本地运行一个 Kestrel 集群. Kestrel 服务器与队列 Kestrel 服务中包含有一组消息队列.Kestrel 队列是一种非常简单的消息队列,可以运行于 JVM 上

Apache Storm 官方文档 —— Trident API 概述

Trident 的核心数据模型是"流"(Stream),不过与普通的拓扑不同的是,这里的流是作为一连串 batch 来处理的.流是分布在集群中的不同节点上运行的,并且对流的操作也是在流的各个 partition 上并行运行的. Trident 中有 5 类操作: 针对每个小分区(partition)的本地操作,这类操作不会产生网络数据传输: 针对一个数据流的重新分区操作,这类操作不会改变数据流中的内容,但是会产生一定的网络传输: 通过网络数据传输进行的聚合操作: 针对数据流的分组操作:

Apache Storm 官方文档 —— 消息的可靠性保障

原文链接    译者:魏勇 Storm 能够保证每一个由 Spout 发送的消息都能够得到完整地处理.本文详细解释了 Storm 如何实现这种保障机制,以及作为用户如何使用好 Storm 的可靠性机制. 消息的"完整性处理"是什么意思 一个从 spout 中发送出的 tuple 会产生上千个基于它创建的 tuples.例如,有这样一个 word-count 拓扑: TopologyBuilder builder = new TopologyBuilder(); builder.setS

Apache Storm 官方文档 —— 使用 Maven 构建 Storm 应用

在开发拓扑的时候,你需要在 classpath 中包含 Storm 的相关 jar 包.你可以将各个 jar 包直接包含到你的项目的 classpath 中,也可以使用 Maven 将 Storm 添加到依赖项中.Storm 已经集成到 Maven 的中心仓库中.你可以在项目的 pom.xml 中添加以下依赖来将 Storm 包含进项目中: <dependency> <groupId>org.apache.storm</groupId> <artifactId&g

Apache Storm 官方文档 —— 多语言接口协议

本文描述了 Storm (0.7.1 版本以上)的多语言接口协议. Storm 多语言协议 Shell 组件 Storm 的多语言支持主要通过 ShellBolt,ShellSpout 和 ShellProcess 类来实现.这些类实现了 IBolt 接口.ISpout 接口,并通过使用 Java 的 ProcessBuilder 类调用 shell 进程实现了执行脚本的接口协议. 输出域 输出域是拓扑的 Thrift 定义的一部分.也就是说,如果你在 Java 中使用了多语言接口,那么你就需要

Apache Storm 官方文档 —— FAQ

Storm 最佳实践 关于配置 Storm + Trident 的建议 worker 的数量最好是服务器数量的倍数:topology 的总并发度(parallelism)最好是 worker 数量的倍数:Kafka 的分区数(partitions)最好是 Spout(特指 KafkaSpout)并发度的倍数 在每个机器(supervisor)上每个拓扑应用只配置一个 worker 在拓扑最开始运行的时候设置使用较少的大聚合器,并且最好是每个 worker 进程分配一个 使用独立的调度器(sche