Storm精华问答 | Spark与Storm的区别有哪些?

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=png

Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统等, 大数据实时处理解决方案的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。


640?wx_fmt=gif1

Q:Storm原理及核心概念


A:分布式的实时计算系统,能够可信任的处理大量的流式数据,就好比Hadoop对于批量数据进行的处理一样;通常来说,Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的作用。

说一下Storm一些核心概念:640?wx_fmt=png


640?wx_fmt=gif2

Q:Storm有哪些特点?


A:编程简单:开发人员只需要关注应用逻辑,而且跟Hadoop类似,Storm提供的编程原语也很简单

高性能,低延迟:可以应用于广告搜索引擎这种要求对广告主的操作进行实时响应的场景。

分布式:可以轻松应对数据量大,单机搞不定的场景

可扩展:随着业务发展,数据量和计算量越来越大,系统可水平扩展

容错:单个节点挂了不影响应用

消息不丢失:保证消息处理

640?wx_fmt=gif3

Q:Storm的基本架构


A:从网上找到的一张图,参照于Hadoop的架构,来理解其核心组件:640?wx_fmt=png

Nimbus:如上图,就好比Hadoop中的JobTracker,是集群中的主节点,负责分发用户代码,把需要处理的任务指派给具体的Supervisor,再由其上的Worker进行实际的处理。

Supervisor:集群中的从节点,负责管理机器上运行的Worker进程,这里,需要注意,worker是一个进程,其内部还可以启动多个线程来进行任务的处理;通常,我们再指定的时候,会在此处通过指定端口号,来指定机器上到底启动多少个worker。

Zookeeper:基本只要牵涉到集群,都需要用到zookeeper,这也符合其作为动物园管理员的职责,通过zookeeper,nimbus会感知到Supervisor的下线和上线,会合理分配资源,完成Topology的处理

Topology:这就好比我们平时提交的一个Application,只是换了一个名称而已。


640?wx_fmt=gif4

Q:Storm的应用有哪些?


A:跟Hadoop不一样,Storm是没有包括任何存储概念的计算系统。这就让Storm可以用在多种不同的场景下:非传统场景下数据动态到达或者数据存储在数据库这样的存储系统里(或数据是被实时操控其他设备的控制器(如交易系统)所消费)


例如Nathan Marz提供的例子,产生Twitter的趋势信息。Twitter从海量推文中抽取趋势信息,并在本地区域和国家层级进行维护。这意味者一旦一个案例开始出现,Twitter的话题趋势算法就能实时的鉴别出这个话题。这个实时的算法就是通过在Storm上连续分析Twitter数据来实现的。


640?wx_fmt=gif5

Q:Spark与Storm的区别有哪些?


A:其实,这里更应该说是Spark-Streaming与storm的区别,因为spark目前也在朝着打造一个生态圈的目标而努力,拥有spark-sql,能够实现类似Hive的数据仓库管理;而Saprk-Streaming,则是用来进行实时处理,类似于Storm的功能;二者实现的功能相似,但实际上还是有些区别的。640?wx_fmt=png

实时性来说,Storm的实时性更强,基本上就是来一条数据,就处理一条数据;在编写Spark代码的时候,会发现,其本身就是收集一段时间的数据来进行统一处理,虽然可以尽可能缩小这个时间,但如果数据瞬间涌入过多的话,其性能相比于Storm还是有些不足的。

健壮性来说,Storm的实现中使用了zookeeper来实现,而且还有Ack机制,对于数据是否处理成功能够感知到而Spark则是采取了业界常用的WAL,即预写日志和CheckPoint机制,相比之下,健壮性要差一些

并行度的适时调整:对于一个公司来说,业务肯定会存在高峰期和低谷期,所以storm能够动态调整实时计算程序的并行度,能够最大限度利用集群资源,这点也很棒;而Spark是实现不了的。

但是,Spark最好的一点在于,其吞吐量比较大,而且Spark-Streaming位于Spark生态圈中,如果想要加入许多的附加功能,可以用Spark自己的组件就能够实现无缝对接,这一点是Storm无法相比的,因为Storm就是专门用于做实时处理的,其他功能的实现,肯定性能要差一些。


640?wx_fmt=png

小伙伴们冲鸭,后台留言区等着你!

关于Storm,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~


福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 开了个会:破局企业云通信,华为加速 Buff 开发者!

  • 没有一家公司可以逃避边缘计算 | 技术头条

  • 她高中发明著名算法,保送清华姚班,斯坦福 AI 实验室负责人高徒 | 人物志

  • GitHub 日收 12,000 星,微软新命令行工具引爆程序员圈!

  • 华为员工年薪 200 万!真相让人心酸!

  • 天才程序员:25 岁进贝尔实验室,32 岁创建信息论  琥珀  极客宝宝  5天前

  • 安全顾问反水成黑客, 靠瞎猜盗得5000万美元的以太币, 一个区块链大盗的另类传奇

  • 人造器官新突破!美国科学家3D打印出会“呼吸”的肺 | Science


640?wx_fmt=png真香,朕在看了!

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

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

相关文章

Qt中颜色选择框输出所选中的颜色值

引言 颜色选择框可以选择自己喜欢的颜色,然后点击确定按钮,对应的在相应的代码中可以获取所选择的颜色,将选中的颜色以能够看懂的方式输出,这里就可以用所选颜色的r,g,b值,即输出对应的红,绿,蓝…

Git回滚代码到某个commit

回退命令: $ git reset --hard HEAD^ 回退到上个版本 $ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git reset --hard commit_id 退到/进到 指定commit的sha码

中国 CDN 编年史

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!CDN的全称是(Content Delivery Network),即内容分发…

qt中实现绘制图形与截图

引言 实现可以选择线型,线宽,颜色,是否填充图形来绘制各种常见的图形,同时可以选择矩形区域来实现截图。 效果 绘图的效果如上,截图的效果: 实现 项目使用的qt5.13.2,编译器为MSVC2017_64bit&#xff…

Spring基础环境搭建

创建一个父工程springdubbo,3个子工程分别为服务端provider,客户端consumer ,接口api 选择都选择maven quickstart即可 在main目录下面创建resources文件夹,并且让idea识别,选择中右击: 给父工程添加依赖…

VMware vSphere 6.0 虚拟机运维常见问题排除

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!当您将VMware vSphere 6.0虚拟化平台架构中的vCenter、ESXi主机、Data Center、群集完…

C++试题

引言 今天看题的时候,发现一道题看着挺简单,写了一下,输出正确。感觉解的挺好的,下面记录一下。 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中&#…

Windows下Zookeeper启动zkServer.cmd闪退问题的解决方案

本人今天在使用RPC的过程中使用Zookeeper作为中间节点服务器。在windows中启动Zookeeper 在windows启动Zookeeper双击zkServer.cmd(但是需要保证安装了java环境) 但是我单击启动的时候闪退:原因可以找到,编辑工具打开zkServer.c…

c++中快速排序

引言 快速排序一直是排序算法中使用比较高频的一种算法。下面简述一下快排,予以记录。 实现思想 在一组无序的数组中,定义一个标志flag,这里以数组中左起第一个元素作为标志,定义一个i值和j值,分别表示从左边开始与…

2019 年 Q1 全球云基础设施市场份额揭晓,AWS继续领跑市场;Mesos官方回应Twitter“抛弃”Mesos……...

戳蓝字“CSDN云计算”关注我们哦!重磅先知 2019 年 Q1 全球云基础设施市场份额揭晓Mesos官方回应Twitter“抛弃”Mesos国内唯一,阿里云论文连续两年入选国际数据库顶级会议SIGMOD甲骨文中国研发中心大裁员:离职赔偿N6重磅快报2019 年 Q1 全球…

springboot启动报错LoggerFactory is not a Logback LoggerContext but Logback...

由于springboot默认日志组件为logback&#xff0c;当时项目使用的为log4j&#xff0c;在打war包到tomcat启动时报如上错误。 原因&#xff1a;log4j日志组件和自带logback日志组件冲突。 解决方法: 将默认日志组件排除。 <dependency><groupId>org.springframew…

postman使用过程中body中的form-data,x-www-form-urlencoded,raw,binary的简单记录

引言 初次使用postman不是很清楚怎么使用&#xff0c;就直接上手&#xff0c;不想看postman的使用文档&#xff0c;故而采用直接上手实验的方式&#xff0c;下面记录一下&#xff0c;body在使用的时候的四种类型。 类型说明 form-data&#xff1a;既可以上传键值对&#xff…

微电台│Get产品信息管理指南,和客户谈一场全渠道恋爱!

戳蓝字“CSDN云计算”关注我们哦&#xff01;▷ Informatica微电台004期 ◁楼下小谭撩数据&#xff08;隔壁的老王已经回到隔壁啦~&#xff09;如何使用产品信息管理与客户谈一场全渠道的恋爱&#xff1f;▼莫文蔚的阴天&#xff0c;孙燕姿的雨天&#xff0c;周杰伦的晴天都不如…

java.lang.ClassNotFoundException: org.apache.log4j.Logger

<!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

qt中使用QStringLiteral宏来实现带参数的输出

叙述 在QStringLiteral宏中输入字符串&#xff0c;但是字符串中有些值想用变量来输出&#xff0c;直接上代码&#xff1a; qDebug()<<QStringLiteral("已经重连%1次未果&#xff0c;请尝试关闭程序&#xff0c;重新启动后连接&#xff01;").arg(m_reconnect…

Error: GlobalConfigUtils setMetaData Fail

有疑问&#xff0c;请留言&#xff0c;看到后统一回复,谢谢配合&#xff01; 问题现象: Caused by: com.baomidou.mybatisplus.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLException: The connection property ‘zeroDa…

漫话:如何给女朋友解释灭霸的指响并不是真随机消灭半数宇宙人口的?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;周末&#xff0c;陪女朋友去电影院看了《复仇者联盟4&#xff1a;终局之战》&#xff…

qt中生成并读取配置文件Ini

引言 做项目的时候需要将一些参数设置的更加灵活&#xff0c;通过用户修改来控制程序中一些参数&#xff0c;所以写到了配置文件中方便处理。 实现 下面是配置文件生成、读取的代码。 configinfo.h #ifndef CONFIGINFO_H #define CONFIGINFO_H#include <QMutex> #inc…

plsql常用快捷键

路径&#xff1a; D:\software\PLSQL Developer\PlugIns\shortcuts.txtplsql使用技巧 1、类SQL PLUS窗口:File->New->Command Window&#xff0c;这个类似于oracle的客户端工具sql plus&#xff0c;但比它好用多了。 2、设置关键字自动大写:Tools->Preferences->…

数据库不适合上容器云?| 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;Docker 在企业环境的应用端具有很大的潜力&#xff0c;在这一点上我想大家是有目共睹的…