如何让Hadoop运行得更快一些

在">数据处理方面,我们发现数据输入速度一般要比的数据处理速度快很多,这种现象在大数据领域尤为明显。随着数据不断膨胀,相应的响应时间自然要有所增加,数据处理的
复杂度也在不断提高。作为一个开发者,我们自然非常关注系统的运行速度问题。在云计算领域,一个小技巧也许能带来系统性能的大幅度提升。对于Hadoop来说,如何提升它的速度呢?
来看看下文。

Hadoop是用以下的方式来解决速度问题:

1 使用分布式文件系统:这使得负载分摊,并壮大系统

2 优化写入速度:为了获得更快的写入速度,Hadoop架构是设计成先写入记录,然后在进行处理

3 使用批处理(Map/Reduce)来平衡数据传送速度和处理速度。

批处理所带来的挑战

批量处理的挑战在于,数据必须要间断性地进入才能保证流程正常运作,而如果数据源连续地输入,就会造成系统崩溃。

如果我们增加批处理窗口的话,结果就会增加数据处理过程的时间,使得相关的数据分析报告也要推迟落入我们的手中。在许多系统里,他们会选择在非高峰时间进行数据批处理,而这个时间是非常有限的。随着数据的体积不断胀大,处理数据的时间就不断增加,这样发展下去的话,需要被处理的数据就会不断积压。这最终的结果有可能一天都处理不完数据。

通过流处理来提升速度

流处理的概念是非常简单的。我们并不需要等到所有数据记录完后才进行处理,我们可以边记录边处理。

拿生产线来做比喻,我们可以等到所有的组件齐全后才开始装配汽车,也可以在生产厂那边把组件包装好,然后再送到特定的生产线,并马上组装起来。不用说,你也知道哪个速度会更快一点吧。

数据处理就跟生产线一样,而流处理进程就是把数据包装起来,并送到特定的“生产线”上。而在传统行业上,即使生产商把所有的部件都预装起来,我们依然需要一条生产线来组装。同样,流处理并不是要取代Hadoop,它只是用于减少系统大量工作,从而提升系统的处理速度。

Curt Monash在他的“传统数据库最终会在RAM中终结”的研究中指出的,内存间的流处理能够打造出更好的流处理系统。下面就是一个实时大数据的分析案例,并用Twitter来演示数据的相应处理方式。

Google更快的处理方案:用流处理来替代Map/Reduce

由于当时缺乏可替方案,即使Map/Reduce性能不佳,许多大数据系统依然要使用这个技术。一个最好的应用例子就是使用这项技术来维护全球的搜索索引。现在Google在索引处理方面大大减少使用Map/Reduce,反而加入了实时处理模式,这使得索引速度缩短为原来的一百分之一。

在网络中,一些类型的数据在不断膨胀。这也是HBase为什么计入触发式处理的原因,而Twitter未来将要处理更庞大的流数据。

最后的啰嗦

为了提升速度,在数据抵达Hadoop系统之前,我们可以通过一些预处理来提升系统的速度。我们也能像Google一样,在某些情况下使用流处理方案来替代Map/Reduce。

Via:natishalom

(责任编辑:刘芬)

时间: 2024-07-31 13:11:45

如何让Hadoop运行得更快一些的相关文章

让你的Hadoop运行的更快

目前,在http://www.aliyun.com/zixun/aggregation/14345.html">数据处理上的一个挑战是,我们输入数据的速度往往比我们处理数据的速度快得多.在大数据的环境下,随着数据量的继续增长,以及相应的需要更多的复杂的数据处理,这个问题正变得更加明显. 帮助批处理 Hadoop的目的是通过以下几种方式应对这一挑战: 1. 使用一个分布式的文件系统:这使我们能够分散负载,并根据需要壮大我们的系统. 2. 优化写入速度:为了能够快速写入设计的Hadoop架构,

大数据处理过程中,如何让Hadoop运行得更快一些?

在数据处理方面,我们发现数据输入速度一般要比的数据处理速度快很多,这种现象在大数据领域尤为明显.随着数据不断膨胀,相应的响应时间自然要有所增加,数据处理的复杂度也在不断提高.作为一个开发者,我们自然非常关注系统的运行速度问题.在云计算领域,一个小技巧也许能带来系统性能的大幅度提升.对于Hadoop来说,如何提升它的速度呢?来看看下文. Hadoop是用以下的方式来解决速度问题: 1 使用分布式文件系统:这使得负载分摊,并壮大系统 2 优化写入速度:为了获得更快的写入速度,Hadoop架构是设计成

Windows7系统优化之禁用多余UAC让Win7运行得更快

很多用户都希望自己的Windows7运行得更流畅,跑得更快,但大多数用户都找不到合适的方法来加快系统!其实,使用一些小小技巧就能让Windows7飞起来! 下面介绍其中的一个优化Windows7的小方法--禁用多余的UAC. Windows7的UAC,其实总的来说,是没什么大作用的,笔者嫌它麻烦,所以一般都是关闭它的,相信很多的有一点经验的用户都同笔者一样.让操作流畅点,也让系统更快,可以尝试关掉UAC. 下面笔者来配合图片来介绍简单的操作流程: 打开"开始"菜单,进入"控制

如何让你的SQL运行得更快

 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显.笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计.不充份的连接条件和不可优化的where子句.在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从这三个方面分别进行总结: 为了更直观地说明问题,所有实例中的SQL运行时间均经过测试,不超过1秒的均表示为(<

让你的SQL运行得更快

---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显.笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计.不充份的连接条件和不可优化的where子句.在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从这三个方面分别进行总结: ---- 为了更直观地说明问题,所有实例中的SQL运行时间均经过测试,不超过

如何让你的SQL运行得更快_数据库其它

人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显.笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计.不充份的连接条件和不可优化的where子句.在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从这三个方面分别进行总结: ---- 为了更直观地说明问题,所有实例中的SQL运行时间均经过测试,不超过1秒的均表

[转载]让SQL运行得更快_数据库其它

一.不合理的索引设计   ----例:表record有620000行,试看在不同的索引下,下面几个 SQL的运行情况:   ---- 1.在date上建有一非个群集索引   select count(*) from record where date >   '19991201' and date < '19991214'and amount >   2000 (25秒)   select date,sum(amount) from record group by date   (55秒

[注册表]让光驱运行得更快_注册表

对于每一个电脑发烧友来说,光驱的读写速度是我们非常关心的,特别是当我们在安装软件的时候.更换性能更好的光驱是我们永远追求的目标,但是限于囊中羞涩,那么为光驱增加缓存是提高现有光驱读写速度的一个有效方法,由于Windows 98推荐使用四倍速或更高速的光驱访问方式,与目前所流行的光驱不相符合.为了适应当今流行的16倍速以上的光驱,我们可以通过修改注册表来提高光驱缓存的大小和预读取性能,以加快光驱的运行速度,将光驱性能发挥到极限. 1. 打开注册表编辑器(开始→运行→Regedit): 2. 找到"

怎么让Win8系统运行的更快

当Windows8用户在系统中安装很多软件或是玩游戏,感觉卡顿的时候,用户需要添加虚拟内存来缓解系统压力,用户按照下面教程来为Windows8系统设置虚拟内存. 操作步骤 1. 右键按桌面上的"计算机"属性,来到"系统"属性窗口,单击左侧的"高级系统设置". 2. 继续单击"高级"→"设置". 3. 弹出"性能选项"→"高级"→"更改". 4. 在