美文网首页Storm
Storm基础(一)概念

Storm基础(一)概念

作者: quiterr | 来源:发表于2017-04-02 23:52 被阅读63次

原文链接:http://storm.apache.org/releases/1.0.3/Concepts.html

本人原创翻译,转载请注明出处

之前翻译过Storm的Tutorial:http://www.jianshu.com/p/ea078dbd9958 所以这次不会再一字一句等翻译。

这篇文章列出了Storm的主要概念和相关的资源链接(可以获取更多信息)。讨论的概念包括:

  1. Topologies
  2. Streams
  3. Spouts
  4. Bolts
  5. Stream groupings
  6. Reliability
  7. Tasks
  8. Workers

Topologies

应用程序的逻辑被打包进了一个Storm topology。spouts和bolts以stream groupings相连,构成的图就是topology。

Streams

stream是Storm的核心抽象。stream是tuple的无限序列,tuple以分布式的方式并行的被创建和处理。默认情况下,tuples可以包含integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays。你可以定义serializers,这样自定义的类型也可以在tuples中直接使用。

Spouts

spout是streams的源。spouts可以是可靠的,也可以是不可靠的。如果tuple处理失败,可靠的spout会重传它,不可靠的spout会在emit tuple后立即“忘掉”它。

Bolts

bolts是topology里真正负责处理tuple的单元。

Stream groupings

定义topology的一部分就是要定义bolt该接收哪个stream作为输入,Stream groupings就是用来做这件事。有8种内建的Stream groupings,你也可以实现CustomStreamGrouping 接口来自定义一个Stream groupings。

  1. Shuffle grouping: tuples随机分配给bolts,每个bolt收到的tuple数量相同。
  2. Fields grouping: stream被grouping中指定的字段分割。举个例子,如果一个stream以"user-id" 字段分组,"user-id" 相同的tuple将总是分配到相同的任务,"user-id" 不同的tuple可能分配到不同的任务。
  3. Partial Key grouping: 和Fields grouping一样以字段来分组,但是在下游的bolts之间做了负载均衡,当输入数据不均衡的时候可以更好的利用系统资源。这篇论文说明了它是如何工作的以及它的优点。
  4. All grouping: 流将被复制到所有bolts,使用这种分组的时候要特别小心。
  5. Global grouping: 整个流都将被分配到唯一一个bolt任务,通常是id最小的那个。
  6. None grouping:这种分组方式意味着你不关心如何分组。目前,这种方式等价于shuffle groupings。
  7. Direct grouping: 这是一种特殊的分组,由tuple的生产者来决定谁来消费这个tuple。Direct groupings只能搭配direct streams使用,也就是说tuple必须通过emitDirect方法发出。bolt可以通过TopologyContext 或 跟踪emit的返回值(返回值就是接收tuple的任务ids)来得到消费者的任务ids。
  8. Local or shuffle grouping: 如果目的bolt在相同的worker进程中有一个或多个任务,tuples就会被随机发送给这些同进程的任务。否则就按普通shuffle grouping处理。

Reliability

这部分专门翻译了一篇文章:http://www.jianshu.com/p/a51167bab444

Tasks

每个spout和bolt都以集群中任务的形式执行。每个任务对应一个线程,setSpout和setBolt用来设置任务的并发度。

Workers

topology在一个或多个worker进程中执行。每个worker进程是一个物理JVM,负责执行topology中所有任务的一个子集。举个例子,如果topology总的并发是300,worker数时50,那么每个worker执行6个任务。

相关文章

  • Storm入门系列之一:storm核心概念及特性

    Storm入门系列之一:storm核心概念及特性 本文的将介绍一些 storm 入门的基础知识,包括 storm ...

  • Storm基础(一)概念

    原文链接:http://storm.apache.org/releases/1.0.3/Concepts.html...

  • storm(基础一)概念

    Storm 的主要概念, 概念如下: Topologies(拓扑)Streams(流)SpoutsBoltsStr...

  • storm基础概念2

    逻辑概念 spout, bolt, topology 物理概念 task, executor, worker 一个...

  • Storm框架基础(一)

    * Storm框架基础(一) Storm简述 如果你了解过SparkStreaming,那么Storm就可以类比着...

  • storm笔记:storm基本概念

    本文主要介绍storm中的基本概念,从基础上了解strom的体系结构,便于后续编程过程中作为基础指导。主要的概念包...

  • storm概念

    此页面列举了Storm的主要概念和资源连接。讨论的概念有: 拓扑(Topologies) 流(Streams) S...

  • Zookeeper+Storm集群搭建

    基础集群环境参考上一篇文章:集群基础环境搭建 Storm集群架构 Storm是Master-Slaves 主从架构...

  • 32 storm 单词计数

    上一篇 简单看 storm, 主要简单讲解了storm 的集群架构、核心概念、并行度、流分组,本篇利用 storm...

  • Storm 基础

    Storm核心概念 Topologies 拓扑, 将整个流程串起来 Streams 流, 数据流, 水流 Spou...

网友评论

    本文标题:Storm基础(一)概念

    本文链接:https://www.haomeiwen.com/subject/itqnottx.html