大数据-Storm

Storm

Storm:分布式实时计算,可被用于“流处理”之中,实时处理消息并更新数据库。Storm也可被用于连续计算,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。Storm保证每个消息都会得到处理,而且它很快,每秒可以处理数以百万计的消息,还可以使用任意编程语言来开发

一、离线计算和流式计算

1、离线计算

离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示

代表技术:Sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算Hive

2、流式计算

流式计算:数据实时产生、数据实时传输、数据实时计算、实时展示

代表技术:Flume实时获取数据、Kafka/metag实时数据存储、Storm/JStorm实时数据计算、Redus实时结果缓存、持久化存储

3、Storm与Hadoop的区别

Storm用于实时计算 Hadoop用于离线计算
Storm处理的数据保存在内存中,源源不断 Hadoop处理的数据保存在文件系统中,一批一批
Storm的数据通过网络传输进来 Hadoop的数据保存在磁盘中
Storm与Hadoop的编程模型相似

二、Storm架构图

大数据-Storm_第1张图片
大数据-Storm_第2张图片

Nimbus:负责资源分配和任务调度

Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。通过配置文件设置当前supervisor上启动多少个worker

Worker:运行具体处理组件逻辑的进程。Worker运行的任务类型只有两种,一种是Spout任务,一种是Bolt任务

Executor:Executor为Worker进程中的具体的物理线程,同一个Spout/Bolt的Task可能会共享一个物理线程,一个Executor中只能运行隶属于同一个Spout/Bolt的Task

Task:worker中每一个spout/bolt的线程称为一个task。task不再与物理线程对应,不同spout/bolt的task可能会共享一个物理线程,该线程称为executor

你可能感兴趣的:(大数据)