首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

1

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

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

2

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等。

3

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

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

4

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

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

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

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

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

5

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

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

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

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190103B0HLOB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券