Storm初认识(一)

来源:互联网 发布:php开发环境有哪些 编辑:程序博客网 时间:2024/05/29 09:12

Storm是什么?

Storm是大数据实时计算框架。

实时计算最重要的一个需求就是能够实时的响应计算的结果,一般要求为秒级。

实时计算一般可以分为以下两个应用场景:

1.数据源是实时的不间断的,要求对用户的响应时间也是实时的。(主要用于互联网流式数据处理。活跃的流式数据非常常见,譬如一些大网站的访问PV/UV,用户访问了什么内容,搜索了什么内容等。实时的数据计算和分析可以动态实时的刷新用户的访问数据,展示了网站实时流量的变化,分析每天各个小时的流量和用户的分布情况,这些对于大型的网站来说都是有重要的实际意义。)

2.数据量大且无法或者没必要预算,但要求对用户的响应时间是实时的。(这通常都是在一些特定场合的数据分析中,当数据量很大,同事发现无法穷举所有可能的条件查询组合或者大量穷举出来的条件组合无用的时候,实时计算就可以发挥作用,将计算过程推迟到查询阶段进行,但需要为用户提供实时的响应。)


实时计算相关的技术:

互联网上的海量数据的实时计算过程一般可以划分为以下的三个阶段:数据的产生和收集阶段,传输与分析处理阶段,存储和对外提供服务阶段。

1.数据实时采集:目前互联网企业海量数据采集工具,Fackbook有开源的Scribe,Linkedln有开源的Kafka,Cloudera有开源的Flume,淘宝有开源的TimeTunnel,Hadoop的Chukwa等。

2.数据实时计算:在流数据不断变化的运动过程中实时的进行分析,捕捉到可能对用户有用的信息,并且把结果发送出去,整个过程中,数据分析处理系统是主动的,而用户却是出于被动接收的状态。


需求:

1.适应流式数据

2.不间断的查询

3.系统的稳定可靠

4.可扩展性好

5.可维护性好


目前实时流计算的框架:

1.Yahoo开源的S4

2.Twitter开源的Storm

3.还有Esper,Streambase,HStreaming等


实时查询服务:

全内存:直接提供数据读取服务,定期dump到磁盘或者数据库进行持久化

半内存:使用Redis,Memcache,MongoDB,BerkeleyDB等内存数据库提供数据实时查询服务,由这些系统进行持久化的操作

全磁盘:使用HBase等以分布式文件系统即HDFS为基础的NoSQL数据库面对于key-value引擎,关键就是设计好key的分布


总结:

1.并不是任何应用都做到实时计算才是最好的

2.使用哪些技术和框架来搭建实时计算系统,需要根据实际业务需求来进行选择

3.对于分布式系统来说,系统的可配置性,可维护性,可扩展性都是十分重要的的,系统调优永无止境


Storm是一个分布式的,容错的实时计算系统。

Storm用途:可以用于处理消息和更新数据库(流处理),在数据流上进行持续查询,并以流的形式返回结果到客户端(持续计算),并行化一个类似实时查询的热点查询



0 0
原创粉丝点击