有问有答 | Storm技术内幕与实践精华问答

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


640?wx_fmt=png

Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。 随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统等, 大数据实时处理解决方案的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。那么,今天“有问有答”第二期,就为大家带来《Storm技术内幕与实践精华问答》,赶快学习起来吧!


640?wx_fmt=gif1

Q:Storm的实时性处理速度很高,有没有一个最高点的限制?比如在入口处服务器的CPU和内存一定的情况下。在处理实时数据的时候,不用Storm,自己手动写一个分布式处理的模块(类似负荷分担),对比Storm有什么优劣呢?


A:Storm处理速度在毫秒级,实际应用也取决于计算的复杂度和查询的外部数据带来的开销。自己写的话,考虑各种情况的话编码量会多不少,而且消息计算和分发调整没那么灵活,后期在分布式集群中调优也没那么方便;Storm不依赖入口处服务器,主服务器Nimbus根据初始配置等计算好各任务,即把各任务分配到分布式环境的各个worker上,可以设置多个worker实例并行处理入口或者中间的消息解决入口服务器的负载问题,实际开发中只要设计好消息计算和转发的拓扑,让代码更多的关心计算、统计等的业务逻辑,简化了开发分布式应用的门槛。过程如下:

640?wx_fmt=png


640?wx_fmt=gif2

Q:实时处理利器Storm与Spark。我们在它们之间做出选择时,应该考虑到哪些指标?或者说它们各自有什么优势?


A:Spark Streaming是批处理,一桶桶的去接水;Storm是流计算(当然Trident也有部分批量处理),接好自来水管子,一条条消息通过管子自动的流到终点;计算方式的不同,导致了两个差异:

1 )往往Storm是毫秒级的,Spark Steaming是秒级以上的应用

2 )无状态的求和、计数等应用Storm更适合,反应实际情况更及时,我们实时意图的功能用了Storm,最快的反应用户最新一条行为;需要分治法、批量计算的应用,用Spark Streaming,对于实时要求高一点的应用,可以根据具体的实际应用的需要,调整“桶”的大小,来提高响应的时间。Spark和Yarn结合的更好,Storm是和Mesos结合的更好。Spark不仅仅包含Spark Steaming,有图计算、MLib、Spark SQL等。


640?wx_fmt=gif3

Q:对于传统使用数据库的报表,数据有上亿条。用户针对这些数据查询,查询条件包含时间段、区域等等十几个,总之查询条件是多维度的,使用存储过程实现,需要多次group by,耗时近十分钟。请问这种场景下想要实时查询,秒级返回结果,Storm可适用?


A:不是很合适,要么放HDFS中通过Impla,Spark SQL,Kylin等交互式查询,要么通过传统的数据仓库来做,流式计算主要处理实时产生的增量数据。


640?wx_fmt=gif4

Q:在Storm的学习过程中,感觉难以理解的部分有:1)Storm的反馈机制的设计原理;2)HBase用在线上栏位高可用保障方面的采集过程;3)前端栏位快照数据回流,每次访问过程中商品。这三个问题应该如何理解?


A:1)可以简单参考下图

640?wx_fmt=jpeg


实际生产环境中需要计算栏位的产品列表不同算法的一些实时指标,不断的反馈模型,修正相关因子或权重。

2)比如,采集0.98等版本的HBase,用默认的JMX不是很好,读到的某些数据往往是溢出的,不是很准,用HBaseClient接口收集相关更精确的数据

3)尽可能的保存每一个点击行为的当前的快照,比如商品当前的订单量、访问量、价格等,用来离线训练,这些数据全部都走tracker方式,数据量比较大,在调用服务端API的时候可以异步写到Kafka,再通过Gobblin等sync到HDFS。


640?wx_fmt=gif5

Q:Kafka在Storm中的角色是什么呢?是作为分流的解决方案,还是作为通信的工具?Kafka的前置机是什么?数据量大的时候Kafka会不会崩掉?


A:Kafka在Storm之前扮演一个缓冲的消息队列;Kafka最开始的前置一般有Flume等,其他消息也可以直接往Kafka写,Storm的中间过程也可以存到Kafka中,当做一个消息队列来用;双十一的时候,分区设置小,Kafka满了,来不及处理崩过,写Kafka的时候;如果客户端直接写Kafka,也要注意,并发量大会把Kafka搞挂。采用异步写+本地缓存写Kafka,比如log4j写Kafka,基本的异步和本地缓存等已经做了,数据量再大的时候,加一层Flume等。


2019年,我们的新栏目,有问有答今天就到这里啦,明天我们不见不散。两期问答结束后,您对此栏目有什么意见和看法呢?您想要学习哪方面的问题,我们可以根据您提供的话题,有针对性的进行问答。所以,赶快留言吧!


----------------    --------------


1.微信群:

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


2.征稿:

投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。



推荐阅读

  • 有问有答 | 分布式服务框架精华问答

  • 深入理解与应用Hadoop中的MapReduce

  • 等了20年的物联网,这次真的会成功吗?

  • 云要闻 | 腾讯在华南建云计算基地;致敬Larry Roberts

  • 网友们票选的2018 Best Paper,你pick谁?

  • 程序员有话说 | 大专生毕业 6 年月薪 3W+:不从众也不普通

  • Windows 10 终于干掉了 Windows 7!

  • 比特币拒绝第340次“被死亡”


程序员抢票姿势 ↓交朋友还能抢票?


640?wx_fmt=jpeg

为交流学习,请备注抢票+姓名+公司职位


640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!

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

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

相关文章

C语言 数组排序 – 插入法排序 - C语言零基础入门教程

目录 一.简介二.数组插入法排序原理三.数组插入法排序实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序&#xff…

类和对象的创建

package com.wuming.oop.demo02; //学生类 public class Student {//属性:字段String name;//nullint age0;//0//方法public void study(){System.out.println(this.name"在学习");} }//在该类同包下在创一个类 package com.wuming.oop.demo02;public cl…

BugkuCTF-MISC题闪的好快

下载文件,得到一个gif 打开,发现真的闪的好快啊 gif分解网站:https://tu.sioe.cn/gj/fenjie/ GIF动态图片分解 逐个截屏下来 再逐个通过CQR.exe扫描,得到 SYC{F1aSh_so_f4sT}

OpenStack 2018 年终盘点

戳蓝字“CSDN云计算”关注我们哦!目录前言OpenStack 一年来的成长NovaCinderNeutronIronicCyborgOctaviaKollaMagnumZunKuryr从 OpenStack 到 OpenInfra前言这是最好的时代,也是最坏的时代 — — 查尔斯约翰赫芬姆狄更斯《双城记》年关将至,闲…

类和对象之总结

package com.wuming.oop.demo02;public class Application1 {public static void main(String[] args) {/* 1.类与对象类是一个模板:抽象,对象是一个具体的实例2.方法定义、调用3.对应的应用引用类型:基本类型(8)对象…

C语言 数组排序 – 快速法排序 - C语言零基础入门教程

目录 一.简介二.数组快速法排序原理三.数组快速法排序实战四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序&#xff…

BugkuCTF-MISC题善用工具

补充 解出此题需要下载一个工具Free_File_Camouflage Free_File_Camouflage图片隐写工具:能将重要的文件以AES加密算法存放在JPG格式的图片里。你还可以设置口令,就算别人知道你以File Camouflag加密,但不知道密码也无法偷窥的文件。 解题流程 描  …

北美KubeCon新风,正把K8S魔力带向边缘计算

戳蓝字“CSDN云计算”关注我们哦!作者:DJ审校:KevinWang来源:容器魔方1. 容器生态圈新的创新方向2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕。这次北美KubeCon总共吸引了8000多观众参会,创下历史新…

PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译

​ 在这里分享一些技巧和经验给大家。辛苦撰文分享,转载或引用请保留本文作者信息及文章链接。 作者的环境: win7python3.5(anaconda3) 理论上,win7及以上的系统和python任意版本均可。 一、基础脚本 首先我们构建一个简单的脚本&#xff0…

封装之详细详解

1.属性私有,get/set 2.封装:数据的隐藏 3.该漏漏,该藏藏:程序要求高内聚、低耦合,高内聚指类的内部数据操作细节自己完成,低耦合是提供少量方法供外部使用 package com.wuming.oop.demo04; //类 private…

BugkuCTF-MISC题神秘的文件

下载文件file.rar 解压后有个flag.zip与一个logo.png图片,点击flag.zip,发现为明文攻击 由于明文需要与加密文件相同类型的格式,所以将logo.png压缩为.zip格式 发现不可明文,后来发现通过winrar工具压缩为.zip格式可成功明文 得…

云计算的概念 - 初识云计算知识专栏(1)

戳蓝字“CSDN云计算”关注我们哦!作者:云说君来源:Cloud云说云计算的概念云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络&#xf…

C语言 数组下标越界 - C语言零基础入门教程

目录 一.数组下标越界简介 1、什么是数组访问越界?2、访问越界会出现什么结果? 二.数组下标越界案例三.防止数组下标越界方法四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.数组下标越界简介 1、什么是数组访问越界…

idea快捷键之记录

1.ctrlaltv补齐下面左边的. new A(); 2.altinsert是getter、setter、构造方法等快捷键 3.ctrlh在实体类按,显示继承关系

BugkuCTF-MISC题神奇宝贝

压缩包有两个文件,但是在解压的时候报错 用010editor打开,发现报错 同时发现文件尾部是504B,说明这是一个zip文件,把文件头修改为504B0304后可以解压出压缩包和一个图片 后来才知道,这是 《精灵宝可梦》 里的精灵未知图腾,拥有2…

云漫圈 | 寻找无序数组的第k大元素

戳蓝字“CSDN云计算”关注我们哦!作者:小灰来源:程序员小灰本期封面作者:泰勒太乐————— 第二天 —————题目是什么意思呢?比如给定的无序数组如下:如果 k6,也就是要寻找第6大的元素&a…

继承之详细讲解

代码结构 package com.wuming.oop2.demo05; //person 人 父类 public class Person {//继承:java只有单继承,没有多继承,extends修饰public int money10_0000_0000;private int money120;public int getMoney1() {return money1;}public void setM…

C语言 数组内存溢出 - C语言零基础入门教程

目录 一.数组内存溢出简介二.数组内存溢出实例三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.数组内存溢出简介 溢出:想象一个桶,桶的容积是有限的,你装满了水以后,如何还要往里面装&#xf…

BugkuCTF-MISC题乌云邀请码

下载文件,解压后得到一张图片 方法一: 通过zsteg直接得到flag 方法二: 放入Stegsolve查看 发现红绿蓝plane0 的最上边都有一排小黑点儿,很可疑 选择Analyse 的Data Extract进行分析 勾选红绿蓝的0层,选BGR模式&…

趣挨踢 | 关于遗留代码的那些事儿

戳蓝字“CSDN云计算”关注我们哦!来自:程序员最幽默(ID:humor1024)【1】当我不小心打开了遗留代码,世界从我眼前消失了。【2】当我试图破译遗留代码的时候【3】当我尝试修复遗留代码,却永远找不…