1.storm入门简介

Storm是什么?
StormTwitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。(全量|增量     硬盘|内存     离线|实时)随着越来越多的场景对HadoopMapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。
按照storm作者的说法,Storm对于实时计算的意义类似于Hadoop对于批处理的意义。Hadoop提供了mapreduce原语,使我们的批处理程序变得简单和高效。同样,Storm也为实时计算提供了一些简单高效的原语,而且StormTrident是基于Storm原语更高级的抽象框架,类似于基于HadoopPig框架,让开发更加便利和高效。本课程会深入、全面的讲解Storm,并穿插企业场景实战讲述Storm的运用。

Storm 常见场景
推荐系统:实时推荐,根据下单或加入购物车推荐相关商品(而不是相似商品)
金融系统
预警系统
网站统计:实时销量、流量统计,如淘宝双11效果图
 

实时处理
试想一下你自己实现实时计算的方案?
数据源务必实时,所以采用Message Queue作为数据源,消息处理Comsumer实时从MQ获取数据进行处理,返回结果到Web或写DB
这种方式有以下几个缺陷:
1、单机模式,能处理的数据量有限
2、不健壮,服务器挂掉即结束。而Storm集群节点挂掉后,任务会重新分配给其他节点,作业不受影响。
3、失败重试、事务等,你需要在代码上进行控制,过多精力放在业务开发之外。
4、伸缩性差: 当一个消息处理者的消息量达到阀值,你需要对这些数据进行分流, 你需要配置这些新的处理者以让他们处理分流的消息。

Storm一些关键特性
1.适用场景广泛: storm可以实时处理消息和更新DB,对一个数据量进行持续的查询并返回客户端(持续计算),对一个耗资源的查询作实时并行化的处理(分布式方法调用,即DRPC),storm的这些基础API可以满足大量的场景。
2.可伸缩性高:  Storm的可伸缩性可以让storm每秒可以处理的消息量达到很高。扩展一个实时计算任务,你所需要做的就是加机器并且提高这个计算任务的并行度 。Storm使用ZooKeeper来协调集群内的各种配置使得Storm的集群可以很容易的扩展。
3. 保证无数据丢失: 实时系统必须保证所有的数据被成功的处理。 那些会丢失数据的系统的适用场景非常窄, 而storm保证每一条消息都会被处理, 这一点和S4相比有巨大的反差。
4. 异常健壮 storm集群非常容易管理,轮流重启节点不影响应用。
5. 容错性好:在消息处理过程中出现异常, storm会进行重试
6. 语言无关性 Stormtopology和消息处理组件(Bolt)可以用任何语言来定义, 这一点使得任何人都可以使用storm.
发布了46 篇原创文章 · 获赞 0 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章