- 流计算
内容
比较早期代表系统有IBM的System S,它是一个完整的计算架构,通过“stream computing”技术,可以对stream形式的数据进行real-time的分析。“最初的系统拥有大约800个微处理器,但IBM称,根据需求,这个数字也有可能上万。研究者讲到,其中最关键的部分是System S软件,它可以将任务分开,比如分为图像识别和文本识别,然后将处理后的结果碎片组成完整的答案。IBM实验室高性能流运算项目的负责人Nagui Halim谈到:System S是一个全新的运算模式,它的灵活性和速度颇具优势。而与传统系统相比,它的方式更加智能化,可以适当转变,以适用其需要解决的问题。
商用搜索引擎,像Google、Bing和Yahoo!等,通常在用户查询响应中提供结构化的Web结果,同时也插入基于流量的点击付费模式的文本广告。为了在页面上最佳位置展现最相关的广告,通过一些算法来动态估算给定上下文中一个广告被点击的可能性。上下文可能包括用户偏好、地理位置、历史查询、历史点击等信息。一个主搜索引擎可能每秒钟处理成千上万次查询,每个页面都可能会包含多个广告。为了及时处理用户反馈,需要一个低延迟、可扩展、高可靠的处理引擎。然而,对于这些实时性要求很高的应用,尽管MapReduce作了实时性改进,但仍很难稳定地满足应用需求。因为Hadoop为批处理作了高度优化,MapReduce系统典型地通过调度批量任务来操作静态数据;而流式计算的典型范式之一是不确定数据速率的事件流流入系统,系统处理能力必须与事件流量匹配,或者通过近似算法等方法优雅降级,通常称为负载分流(load-shedding)。当然,除了负载分流,流式计算的容错处理等机制也和批处理计算不尽相同。
有人会说,MR也有自己的实时计算方案,比如说HOP。
但是,这类基于MapReduce进行流式处理的方案有三个主要缺点。
综上所述,流式处理的模式决定了要和批处理使用非常不同的架构,试图搭建一个既适合流式计算又适合批处理计算的通用平台,结果可能会是一个高度复杂的系统,并且最终系统可能对两种计算都不理想。
目前流式计算是业界研究的一个热点,最近Twitter、LinkedIn等公司相继开源了流式计算系统Storm、Kafka等,加上Yahoo!之前开源的S4,流式计算研究在互联网领域持续升温。不过流式计算并非最近几年才开始研究,传统行业像金融领域等很早就已经在使用流式计算系统,比较知名的有StreamBase、Borealis等。
应用
流运算在内容方面,主要面向以下几种应用:对金融与科学计算当中的数据进行更快运算和分析的需求;对存在于社交网站、博客、电子邮件、视频、新闻、电话记录、传输数据、电子感应器之中的数字格式的信息流进行快速处理并反馈的需求。
内容来自百科网