大数据处理过程中,如何让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。


原文发布时间为:2013-09-19


时间: 2024-11-05 21:55:57

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

让你的Hadoop运行的更快

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

如何让Hadoop运行得更快一些

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

11g包dbms_parallel_execute在海量数据处理过程中的应用

11g包dbms_parallel_execute在海量数据处理过程中的应用 1.1  BLOG文档结构图       1.2  前言部分   1.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 11g包dbms_parallel_execute在海量数据处理过程中的应用   注意:本篇BLOG中代码部分需要特别关注的地方我都用黄色背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thr

图片-Android中 界面加入计时器 来回切换的过程中 数字跳转的速度越来越快 求解决

问题描述 Android中 界面加入计时器 来回切换的过程中 数字跳转的速度越来越快 求解决 Fragment + ViewPager 切换中 求解决 是他一起在生成新的 让handler多次执行吗 要加判断还是怎么写 求大神帮忙 解决方案 handler 没出完整 我觉得是计时器写法问题啊 他一直在生成新的 要加判断吗 还是 写try catch? 解决方案二: 我没有写过安卓,但根据经验,计时器越来越快的一个原因可能是刷新的时候,前一个计时器没有清空 解决方案三: 多个timer在发送msg

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秒