• storm原理写得比较好的文章


     Storm拥有低延迟、高性能、分布式、可扩展、容错等特性,可以保证消息不丢失,消息处理严格有序。Storm的主要特点如下所示:

      • 简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进 行实时处理的复杂性。
      • 可以使用各种编程语言。你可以在Storm之上使用各种编程语言。默认支持Clojure、 Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。
      • 容错性。Storm会管理工作进程和节点的故障。
      • 水平扩展。计算是在多个线程、进程和服务器之间并行进行的。
      • 可靠的消息处理。Storm保证每个消息至少能得到一次完整处理。任务失败时,它 会负责从消息源重试消息。
      • 快速。系统的设计保证了消息能得到快速的处理,使用ØMQ作为其底层消息队列。
      • 本地模式。Storm有一个“本地模式”,可以在处理过程中完全模拟Storm集群。 这让你可以快速进行开发和单元测试。

      Storm集群由一个主节点多个工作节点组成。主节点运行了一个名为“Nimbus”的守护进程,用于分配代码、布置任务及故障检测。每个工作节点都运行了一个名为“Supervisor”的守护进程,用于监听工作,开始并终止工作进程。Nimbus和Supervisor都能快速失败,而且是无状态的,这样一来它们就变得十分健壮,两者的协调工作是由Apache ZooKeeper来完成的。

        

      

      图1.1 Storm工作流程

      第一步:客户端提交拓扑到Nimbus。第二步:Nimbus针对该拓扑建立本地的目录根据topology的配置计算task,分配task,在zookeeper上建立assignments节点存储task和supervisor机器节点中woker的对应关系。第三步:在zookeeper上创建taskbeats节点来监控task的心跳,启动topology。第四步:Supervisor去zookeeper上获取分配的tasks,启动多个woker进行,每个woker生成task,一个task一个线程;根据topology信息初始化建立task之间的连接;Task和Task之间是通过ZeroMQ管理的;后整个拓扑运行起来。

      Storm的术语包括Stream、Spout、Bolt、Task、Worker、Stream Grouping和Topology。Stream是被处理的数据。Sprout是数据源。Bolt处理数据。Task是运行于Spout或Bolt中的线程。Worker是运行这些线程的进程。Stream Grouping规定了Bolt接收什么东西作为输入数据。数据可以随机分配(术语为Shuffle),或者根据字段值分配(术语为Fields),或者 广播(术语为All),或者总是发给一个Task(术语为Global),也可以不关心该数据(术语为None),或者由自定义逻辑来决定(术语为Direct)。Topology是由Stream Grouping连接起来的Spout和Bolt节点网络。

      可以和Storm相提并论的系统有Esper、Streambase、HStreaming和Yahoo S4。其中和Storm最接近的就是S4。两者最大的区别在于Storm会保证消息得到处理。这些系统中有的拥有内建数据存储层,这是Storm所没有的,如果需要持久化,可以使用一个类似于Cassandra或Riak这样的外部数据库。

  • 相关阅读:
    1.27
    1.25
    Representation Learning with Contrastive Predictive Coding
    Learning a Similarity Metric Discriminatively, with Application to Face Verification
    噪声对比估计(负样本采样)
    Certified Adversarial Robustness via Randomized Smoothing
    Certified Robustness to Adversarial Examples with Differential Privacy
    Dynamic Routing Between Capsules
    Defending Adversarial Attacks by Correcting logits
    Visualizing Data using t-SNE
  • 原文地址:https://www.cnblogs.com/richelle009/p/5363331.html
Copyright © 2020-2023  润新知