您的位置:金沙手机版下载 > 金沙手机版下载 > Storm介绍(二)

Storm介绍(二)

2019-10-18 04:45

转发请保留作者和原来的书文出处

ZooKeeper的作用

ZooKeeper在Storm上不是用来做音讯传输用的,而是用来提供和睦服务(coordination service),同有的时候候储存拓扑的情况和总计数据。

  • ZooKeeper相当于一块黑板,SupervisorNimbus和worker都在地点留下约定好的音讯。比如Supervisor启动时,会在ZooKeeper上注册,Nimbus就足以窥见SupervisorSupervisor在ZooKeeper上预先留下心跳音信,Nimbus经过那么些心跳音信来对Supervisor开展正规检查实验,检查实验出坏节点
  • 出于Storm组件(component)的情状音信存款和储蓄在ZooKeeper上,所以Storm组件就能够无状态,可以kill -9来杀死
    • 举个例子:Supervisors/Nimbus的重启不影响正在运转中的拓扑,因为状态都在ZooKeeper上,从ZooKeeper上海重机厂复加载一下就好了
  • 用来做心跳
    • Worker通过ZooKeeper把孩子executor的情事以心跳的款式报告给Nimbus
    • Supervisor进程经过ZK把团结的状态也以心跳的花样陈说给Nimbua
  • 积攒近来任务的荒唐情状(拓扑甘休时会删除)

作者:Jack47

架构

先上一张Storm的架构图,若是熟识GFS和Hadoop的架构,会发觉那个类其余框架结构图都很周围。
金沙手机版下载 1

Storm架构图

从节点(Slave node)

Storm集群上有三个从节点,他们从Nimbus上下载拓扑的代码,然后去真正实践。Slave上的Supervisor经过是用来监督和治本实际上运作工作代码的长河。在Storm 0.9现在,又多了叁个进度Logviewer,可以用Storm UI来查看Slave节点上的log文件。
在布署文件storm.yaml中,决定了一台机械上运维多少个worker:

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

Storm的容错(Fault Tolerance)机制

正如“搭建八个Storm集群”一文介绍的一样,必得用工具如daemontools或者monit来监督Nimbus和Supervisor的后台进度。那样一旦Nimbus或者Supervisor进程挂掉,会被daemontools检验到,并举办重启。

NimbusSupervisor经过被设计成高速败北(fail fast)的(当遭受特其他景况,进度就能够挂掉)何况是无状态的(状态都保留在Zookeeper也许在磁盘上)。

最根本的是,worker进度不会因为Nimbus或者Supervisor挂掉而受影响。这跟Hadoop是分裂的,当JobTracker挂掉,全数的职责都会没了。

  1. 当Nimbus挂掉会怎么样?

    若是Nimbus是以引入的方法处于进度囚禁(比如通过supervisord)之下,那它会被重启,不会有别的影响

    否则当Nimbus挂掉后:

    • 一度存在的拓扑能够持续健康运维,然则不能够交付新拓扑
    • 正在运营的worker进度依旧可以承继做事。何况当worker挂掉,supervisor会平昔重启worker。
    • 倒闭的任务不会被分配到另外机器(是Nimbus的职分)上了
  2. 当四个Supervisor(slave节点)挂掉会什么?

    即使Supervisor是以引入的方法处于进程监管(举例通过(supervisord)[supervisord.org/])之下,那它会被重启,不会有别的影响

    要不当Supervisor挂掉: 分配到那台机械的有所任务(task)会晚点,Nimbus会把那么些职责(task)重新分配给别的机器。

  3. 当贰个worker挂掉会怎么着?

    当一个worker挂掉,supervisor会重启它。如若开发银行一向战败那么此时worker也就不可能和Nimbus保持心跳了,Nimbus会重新分配worker到另外机器

  4. Nimbus算是三个单点故障吗?
    假设Nimbus节点挂掉,worker进度如故能够持续做事。何况当worker挂掉,supervisor会一向重启worker。可是,未有了Nimbus,当必要的时候(假若worker机器挂掉了)worker就不能够被重新分配到任何机器了。
    就此答案是,Nimbus在“某种程度”上属于单点故障的。在实质上中,这种地方没什么大不断的,因为当Nimbus进度挂掉,不会有悲凉的政工业生产生

接待关怀自个儿的微信大伙儿账号技术员杰克,两侧的小说会一齐,也能够增多笔者的RSS订阅源。

知晓Storm的架构,有援救协助大家驾驭大型遍布式系统设计中须求减轻的主题材料,以致消除难题的思路,帮衬大家越来越好的张开Storm性能调优化。

起步拓扑

为了在集群上运维二个拓扑,要求首先把代码打包成一个“胖jar包”--必得包蕴全部的注重代码,除了Storm它自己,因为Storm集群会提供。然后在一台设置了storm命令行的机械上经过storm jar一声令下来交付拓扑:

storm jar my-topology-version-with-dependency.jar com.corp.MyTopology arg1 arg2

以此命令会连到Nimbus,上传jar包。接下来Nimbus会把拓扑的代码运送到多台不一样的机械大概JVM上。唯有当拓扑在机器上配置成功了同一时间在JVM中初阶化领会后,技巧确实发轫拍卖音讯。

Storm安全性

原有设计Storm时,完全未有把安全性思量在内
前段时间安全品质相关的作用在一步步加进去
Storm 0.9.x本子上的平安主题材料:

  1. 从未有过表达机制(authentication),未有授权机制(authorization)
  2. 传输的数目(比如worker之间)未有加密
  3. ZooKeeper上囤积的多少未有访谈限制
  4. 若是Nimbus的Thrift端口未有锁住,狂妄的客户代码都足以在节点上举行

越来越多Storm安全性方面包车型大巴提出见这里

题外话:
在接触Storm之后,有个难题在自身的脑海里升起,国内的大市肆,比方Baidu,Ali,Tencent,都以有出生Storm那类实时总结框架的土壤的,可是怎么一贯不做出来啊?

金沙手机版下载,Apache Storm Basic Training
Fault tolerance

Storm in pictures

Storm 0.9 Basic Training


只要你看了本篇博客,以为对你具有收获,请点击右下角的“推荐”,让更四个人收看!

捐助杰克47写作,打赏一个鸡蛋灌饼钱呢

金沙手机版下载 2

微信打赏

金沙手机版下载 3

支付宝打赏

Master结点(Master node)

在布满式系统中,调解服务非常重要,它的计划,会一向关联到系统的运营效能,错误恢复生机(fail over),故障检查实验(error detection)和程度增加(scale)的力量。

集群上职务(task)的调整由一个Master节点来担负。那台机械上运营的Nimbus进度担当职务的调整。其余贰个进度是Storm UI,可以分界面上查看集群和具备的拓扑的运作意况。

硬件要求

各节点的机能

只要您熟练Hadoop的话,能够这么做一下类比:

Hadoop Storm
JobTracker Nimbus(只有一个)
TaskTracker Supervisor(有很多个)
MapReduce任务 Topology

能够看来Nimbus是调治器,WorkerTask的容器,Task是职务的的确实行者。

本文是Storm体系之一,首要介绍Storm的架构划设想计,推荐读者在翻阅Storm介绍(一)的根底之上,阅读这一篇。本文只是笔者的读书笔记,偏重于浅档案的次序的架构介绍,若是想真正精晓当中设计时候的衡量,还要求越多的去读书Storm源码。

ZooKeeper

  1. 推荐精心设计过的机械,因为ZooKeeper是Storm的瓶颈
    • 各种机器使用四个ZK的实例
    • 瞩目因为一样台机械上的此外进度可能虚构机他们是共享这台机器的,所以大概会耳濡目染ZK的性质(来源)
  2. I/O是ZooKeeper的瓶颈
  • 把ZooKeeper的蕴藏放到本人的磁盘上
  • 运用SSD会明显晋级品质
  • 健康情状下,Zookeeper的历次写操作都会一齐到磁盘,这就变成了四回磁盘寻址操作(一回是数额,二回是数额的日志)。当全部的worker都发心跳给ZooKeeper时,也许会刚毅影响属性(来源)。
    • 急需监察和控制ZooKeeper节点的I/O负载
  1. 推荐介绍在生育情形上运转的ZooKooper集群有最少3个节点,那样即使有一个ZooKeeper服务器挂掉了(比如实行维护),也是能够的。

本文由金沙手机版下载发布于金沙手机版下载,转载请注明出处:Storm介绍(二)

关键词: