立即注册
登录
About云-梭伦科技
返回首页
lorrie的个人空间
https://aboutyun.com/?54730
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
首页
Portal
专题
BBS
面试
办公|编程助手
更多
我的空间
好友
帖子
收藏
道具
勋章
任务
动态
日志
相册
分享
记录
留言板
群组
导读
日志
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
学习了
涂鸦板
您需要登录后才可以评论
登录
|
立即注册
评论
lorrie
加为好友
给我留言
打个招呼
发送消息
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈