ApacheStorm是一个分布式实时大数据处理系统。Storm被设计成用一种容错的水平扩展方法处理大量数据。它是一个具有最高摄取率的流式数据框架。虽然Storm是无状态的,但它通过ApacheZooKeeper管理分布式环境和集群状态。它很简单,可以对实时数据并行执行各种操作。
ApacheStorm仍然是实时数据分析领域的领导者。Storm易于设置、操作,并确保至少通过TopDlogy处理每个消息(消息至少被消费过一次)。
Storm vs Hadoop
基本上,Hadoop和Storm框架用于分析大数据。两者相辅相成,在某些方面有所不同。ApacheStorm的所有操作都是持久性的,而Hadoop在所有方面都很好,但在实时计算方面却落后。
storm
实时计算系统.
使用场景:实时分析、在线机器学习、持续计算。
流计算。
速度快,每秒每节点处理数据百万tuple级别,topology:
无状态,集群状态和分布式环境信息在zk中保存。确保每个消息至少被消费-次。核心概念
1. tuple :元组
数据结构,有序的元素列表。通常是任意类型的数据,使用,号分割,交给storm计算。
2. stream :一系列tuple.
3. Spouts :水龙头。数据源。
4. Bolts :转接头。逻辑处理单元,spout数据传给bolt, bolt处理后产生新的数据,可以filter、 聚合、分组。
接收数据-处理; ->输出给bolt (多个)。
5. Topology :不会停止的,除非手动杀死。MR是会停止的。
6. tasks : spout和bolt的执行过程就是task.
spout和bolt都可以以多实例方式运行(在单独的线程中)
7. workers :工作节点。storm在worker之 间均衡分发任务。监听job,启动或者停止进程。
8.stream grouping :控制tuple如何进行路由。
内置4个分组策略.
組件
1. Nimubs :master node, 在work node向分爰数据,指派task給worker node, 监测故障。
2. Supervisor :接收nimbus的指令,有多个work迸程,监督work迸程,完成task.
3.work prcess :抉行相美的task,本身不執行,創建executor (孰行銭程),可以有多个抗行銭程。
4. executor :抉行銭程,由work迸程孵化的一-个銭程, 返行一-个 或多task (有bolt/ spout )
5. taskI:処理数据。
6.zk :维护状态·
storm架枸
1.苓点癸型
a)Nimbus
:炙气,master node,
主要エ作逗行topology,分析top,收集抗行的task。将task分爰給supexvisor (可用的)
b) supexvisor:woxk node .有多个処理迸程,代理task給 所有的work迸程,work迸程 孵化出足答的銭程供task迄行。
在Nimbus和supervisor之向使用内部的消息系銃迸行通信。