立即注册 登录
About云-梭伦科技 返回首页

lorrie的个人空间 https://aboutyun.com/?54730 [收藏] [复制] [分享] [RSS]

日志

Storm的特性

热度 1已有 1608 次阅读2017-2-15 14:24 |个人分类:hadoop| 基础知识

  • 基础知识
  • Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt,不像其它的流处理系统,Storm不需要中间队列
  • spout 龙卷,读取原始数据为bolt提供数据
    • bolt 雷电,从spout或其它bolt接收数据,并处理数据,处理结果可作为其它bolt的数据源或最终结果
    • nimbus 雨云,主节点的守护进程, 类似Hadoop里面的JobTracker,负责为工作节点分发任务
    • Supervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程
    • Nimbus和Supervisor之间的所有协调工作都是通过Zookeeper集群完成
    • Storm集群和Hadoop集群表面上看很类似。但是Hadoop上运行的是MapReduce jobs,而在Storm上运行的是拓扑(topology),这两者之间是非常不一样的。一个关键的区别是: 一个MapReduce job最终会结束, 而一个topology永远会运行(除非你手动kill掉)
  • Storm组件
    在Storm集群中,有两类节点:主节点master node和工作节点worker nodes。主节点运行着一个叫做Nimbus的守护进程。这个守护进程负责在集群中分发代码,为工作节点分配任务,并监控故障。Supervisor守护进程作为拓扑的一部分运行在工作节点上。一个Storm拓扑结构在不同的机器上运行着众多的工作节点
  • 在系统底层,Storm使用了zeromq。这是一种先进的,可嵌入的网络通讯库, 像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。下面列出一些zeromq的特性。
    • 一个并发架构的Socket库
    • 对于集群产品和超级计算,比TCP要快
    • 可通过inproc(进程内), IPC(进程间), TCP和multicast(多播协议)通信
    • 异步I / O的可扩展的多核消息传递应用程序
    • 利用扇出(fanout), 发布订阅(PUB-SUB),管道(pipeline), 请求应答(REQ-REP),等方式实现N-N连接
  • Storm的特性

  • 简化编程   使用Storm,复杂性被大大降低了。
    • 容错        Storm集群会关注工作节点状态,如果宕机了必要的时候会重新分配任务。 Storm 并不会跟踪消息树中的每个消息,而是采用了一些特殊的策略,它把消息树当作一个整体来跟踪,对消息树中所有消息的唯一id进行异或计算,通过是否为零来判定spout发出的消息是否被“完全处理”
    • 可扩展    所有你需要为扩展集群所做的工作就是增加机器。Storm会在新机器就绪时向它们分配任务。
    • 可靠的    所有消息都可保证至少处理一次。如果出错了,消息可能处理不只一次,不过你永远不会丢失消息。
    • 快速        速度是驱动Storm设计的一个关键因素
    • 事务性    你可以为几乎任何计算得到恰好一次消息语义。

路过

雷人

握手

鲜花

鸡蛋

发表评论 评论 (1 个评论)

回复 ljlinux2012 2017-3-1 16:37
学习了

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条