Storm入门简介

  • 目录
  • 前言:
    • 1、Storm简介
    • 2、Storm与Hadoop的区别
    • 3、Storm核心组件
    • 4、Storm编程模型
    • 5、流式计算一般架构图(重要)
    • 总结:

目录

前言:

在介绍Storm之前,先介绍下离线计算。
离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示
代表技术:Sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算数据、Hive批量计算数据、azkaban任务调度
与之对应的就是流式计算即Storm的应用场景——流式计算。那么流式计算是什么呢?
流式计算:数据实时产生、数据实时传输、数据实时计算、实时展示。
代表技术:Flume实时采集数据、kafka实时数据存储、Storm实时计算数据、redius实时结果缓存、持久化存储(Mysql)。
一句话总结:将源源不断产生的数据实时收集并实时计算,尽可能快的得到计算结果。

1、Storm简介

Storm用来实时处理数据,特点:低延迟、高可用、分布式、可扩展、数据不丢失。提供简单容易理解的接口,便于开发。

2、Storm与Hadoop的区别

Storm处理的数据保存在内存中源源不断Hadoop处理的数据保存在文件系统中,一批一批
Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。
Storm与Hadoop的编程模型相似

这里写图片描述

3、Storm核心组件

这里写图片描述
• Nimbus:负责资源分配和任务调度。
• Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。—通过配置文件设置当前supervisor上启动多少个worker。
• Worker:运行具体处理组件逻辑的进程。Worker运行的任务类型只有两种,一种是Spout任务,一种是Bolt任务。
• Task:worker中每一个spout或bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,不同spout/bolt的task可能会共享一个物理线程,该线程称为executor。Task=线程=executor


补充知识:
Zookeeper:保存任务分配的信息、心跳信息、元数据信息。
并发度:用户指定的一个任务,可以被多个线程执行,并发度的数量等于线程的数量
Worker与topology:
一个worker只属于一个topology,每个worker中运行的task只能属于这个topology。 反之,一个topology包含多个worker,其实就是这个topology运行在多个worker上。
一个topology要求的worker数量如果不被满足,集群在任务分配时,根据现有的worker先运行topology。如果当前集群中worker数量为0,那么最新提交的topology将只会被标识active,不会运行,只有当集群有了空闲资源之后,才会被运行。

4、Storm编程模型

这里写图片描述
• Topology:Storm中运行的一个实时应用程序的名称。(拓扑)
• Spout:在一个topology中获取源数据流的组件。接受外部数据源的组件,将外部数据源转化成Storm内部的数据,以Tuple为基本的传输单元下发给Bolt
• Bolt:接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作。接受Spout发送的数据,或上游的bolt的发送的数据。根据业务逻辑进行处理。发送给下一个Bolt或者是存储到某种介质上。介质可以是Redis可以是mysql,或者其他。
• Tuple:一次消息传递的基本单元,里面封装了一个List对象,用来保存数据,理解为一组消息就是一个Tuple。
• Stream:表示数据的流向。
• 通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。

5、流式计算一般架构图(重要)

这里写图片描述
其中

  • flume用来获取数据。
  • Kafka用来临时保存数据。
  • Strom用来计算数据。
  • Redis是个内存数据库,用来保存数据。

总结:

对于Storm来说首先你要了解以下几个知识点:
1、离线计算和流式计算是什么以及对应的区别。
2、Storm是什么以及是干什么用的。
3、Storm与Hadoop的区别。
4、Storm的核心组件。(重点)
5、Storm的编程模型。(在新的文章中详细介绍)
6、流式计算的一般架构图。(重点)
7、Storm的应用场景及行业案例。
了解了以上的知识点,你就算是和博主一样刚刚入门。下面将会围绕上面的一些重要的知识点就行详细的介绍(如编程模型以及对应的WC案例的分析:详见:https://blog.csdn.net/qq_16633405/article/details/79835012)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端模板预编译技术

什么是前端模板预编译 前端模板预编译通过预编译技术让前端模板突破浏览器限制,实现后端模板一样的同步“文件”加载能力。它采用目录来组织维护前端模板,从而让前端模板实现工程化管理,最终保证前端模板在复杂单页 web 应用下的可维护性。同…

node08-express

目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-express node09-cookie express模块: 1 /*2 * express是一个应用框架3 * 1、路由4 * 2、中间件5 * 3、模板引擎6 * */7 8 var express requ…

Java基础常见笔试题总结

以下是自己总结的一些Java常见的基础知识题,答案仅供参考,如有异议请指出。一直保持更新状态。 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编…

各种机器学习开源项目精选TOP30

8800个机器学习开源项目为你精选TOP30! 授权自AI科技大本营(ID: rgznai100) 本文共图文结合,建议阅读5分钟。 本文为大家带来了30个广受好评的机器学习开源项目。 最近,Mybridge发布了一篇文章,对比了过去一年中机…

Tomcat控制台输出到文件

为什么80%的码农都做不了架构师?>>> 修改startup.bat call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\test.log 转载于:https://my.oschina.net/cccyb/blog/886047

常见算法详解(原理及代码实现Python版本)

文章目录前言1、冒泡排序2、选择排序3、插入排序4、希尔排序5、快速排序6、归并排序7、二分法查找总结前言 最近复习了下常见的算法,在这里手动再写一遍,权当加深自己的印象。代码实现用的是python3.6版本。 1、冒泡排序 原理: 冒泡排序&a…

[转载] 全方位提升网站打开速度:前端、后端、新的技术

原文地址:Building a Shop with Sub-Second Page Loads: Lessons Learned原文作者:Erik Witt译文出自:掘金翻译计划译者:luoyaqifei校对者:Romeo0906,L9m全方位提升网站打开速度:前端、后端、新…

20个顶级大数据软件应用程序

目录1. Domo2. Teradata Database3. Hitachi Vantara4. TIBCO公司的Statistica5. Panoply6. IBM Watson Analytics7. SAS Visual Analytics8. Sisense商业智能软件9. Talend的大数据工作室10. Cloudera11. MongoDB12. Vertica Analytics Platform13. SAP Vora14. Oracle Big Da…

MapTask、ReduceTask并行度决定机制

目录前言:1、mapTask并行度的决定机制2、ReduceTask并行度的决定总结: 目录 前言: MapTask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度。那么,MapTask并行实例是否越多越好呢?其并行度又是如何决定呢&am…

6大主流开源SQL引擎总结,遥遥领先的是谁?

根据 O’Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言。大部分项目都需要一些SQL 操作,甚至有一些只需要SQL。本文就带你来了解这些主流的开源SQL引擎!背景介绍 本文涵盖了6个开源领导者:Hive、Impala、…

Yarn在MapReduce中的工作机制

目录前言:1、YARN概述2、mapreduce&yarn的工作机制总结: 目录 前言: 在了解Yarn在MR中的作用的时候需要先了解Yarn是什么。 1、YARN概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台&…

长连接心跳机制理解

近期使用go 开发聊天室,使用到websocket常链接。 if err websocket.JSON.Receive(ws,&reply); err ! nil {log.Println(err)return } 我发现当连接断开的时候会走if里面,输出eof 这样就知道,客户端断开了连接。 但在之前使用workerman …

Hive的基本操作总结

文章目录目录前言:1、Hive基本操作1.1、DDL操作1.2、DML操作1.3、Hive Join总结:目录 前言: 对于Hive来说最重要的一点就是能够用Hql来进行数据分析。而Hql来处理数据比MapReduce方便很多(原理是一样的,Hql底层转化为MapReduce来…

Hbase读写数据的原理解析

目录1、体系图写数据的流程(参考上图):读数据的流程(参考下图): 目录 1、体系图 针对上图的一些解释: 这里面数据分区(region)存储是为了查询方便(即因为是…

Zookeeper的简介及命令行操作

目录前言1、Zookeeper简介2、Zookeeper结构3、Zookeeper常用的命令行操作 总结: 目录 前言 作为一款第三方的协调服务框架,ZK被应用在许多地方,如:Hbase中用于存储-ROOT表的位置信息;Storm中用于保存任务分配的信息、…

【python】pycharm启动 一直index,无法运行

花了几个小时找相关资料,按网上提供答案操作,依然没有解决, 最后让它自动更新完才好(大概更新了十分钟 有固态情况) 参考链接 pycharm启动后总是不停的updating indices...indexing? pycharm 启动后一直更新index的问题

Zookeeper集群角色分配原理

ZK内部存在Leader和Follower两个角色,那么这两种角色是怎样划分呢?或者说是怎么样被选举出来呢?以下将详细介绍ZK内部的选举机制。 ZK是通过内部的选举算法来选出Leader。(服务器需要配置对应的ID和文件)如下图所示&a…

2016大数据发展7大趋势

1.算法(Algorithms)的崛起 大数据已过时,算法正当道。数据已经成为一种商品,每个组织都能够收集和存储大量的数据。分析大数据也不再那么引人注目了。每个组织都可以聘用或培训大数据分析人员来了解数据模式。 2016年,…

MySQL数据库重点概要总结

目录前言:1、结构化查询语言(Structured Query Language)简称SQL。2、基本SELECT语句语法3、多表链接4、笛卡尔积5、ANSI SQL ANSI SQL:1999标准的连接语法6、单行函数和分组函数的区别:7、分组函数8、SQL语句的执行顺序:9、子查询…

《MySQL排错指南》——1.9 许可问题

本节书摘来自异步社区出版社《MySQL排错指南》一书中的第1章,第1.9节,作者:【美】Sveta Smirnova(斯维特 斯米尔诺娃),更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.9 许可问题 MySQL有复杂的…