资讯专栏INFORMATION COLUMN

让你的Hadoop运行的更快

Riddler / 3094人阅读

摘要:目前,在数据处理上的一个挑战是,我们输入数据的速度往往比我们处理数据的速度快得多。用生产线这个很好的比喻来解释其中的差别。

目前,在数据处理上的一个挑战是,我们输入数据的速度往往比我们处理数据的速度快得多。在大数据的环境下,随着数据量的继续增长,以及相应的需要更多的复杂的数据处理,这个问题正变得更加明显。

帮助批处理

Hadoop的目的是通过以下几种方式应对这一挑战:

1. 使用一个分布式的文件系统:这使我们能够分散负载,并根据需要壮大我们的系统。

2. 优化写入速度:为了能够快速写入设计的Hadoop架构,需要在第一次登录时写入并处理。这可让写入速度相当快。

3. 使用批处理(Map/Reduce)来用处理速度平衡数据馈送的速度

批处理的挑战

批量处理所面临的挑战是它假定数据量突然增加。如果我们的数据在一个连续的基础上稳定到来,那么假设将导致整个批量处理背后的架构开始崩溃。

如果我们增加了批处理窗口,结果是在数据到来的这段时间里的更高的延迟,直到我们真正得到它并纳入我们的报告和见解里。此外,在许多系统中,每天进行的批处理窗口时间是有限的。通常情况下,假设大部分的处理可以在非高峰时段来进行,但是,体积变大,处理的数据所花费的时间变长,直到有一天它达到时间极限,然后我们面临处理一个不断增长的积压的问题。此外,如果我们的处理过程发生失败,我们可能没有足够的时间来重新处理。

通过基于流的处理来加快速度

基于流的处理概念是相当简单的。我们可以在数据进来的同时处理它,而不是先记录再处理。

用生产线这个很好的比喻来解释其中的差别。想想一家汽车制造线:一种方法是把所有的部件放在一起,然后一件一件地组装;另一种方法是让制造商包装各个部件,并只发送包装好的部件到制造线上。哪种方法更快?

Hadoop批处理系统和制造业的生产线是一样的道理。

在制造业中,即使我们在制造商那里预先包装零部件,我们仍然需要把所有的部件一起组装起来。同样的道理,基于流的处理并不意味着要取代我们的Hadoop系统,而是减少系统需要处理的大量工作,并让进入Hadoop的过程变得更容易,从而让数据处理更快。

内存中的流处理可以成为一个很好的流处理系统,正如Curt Monash所说,他的研究表明传统的数据库最终将在RAM中终结。在这个案例中,对于大数据的实时分析的背景下如何工作,我们演示了Twitter使用基于流的处理来面对到来的数据,然后送入一个大数据资料库。如下图所示:

谷歌更快处理的方法:使用基于流的处理,而不是Map/Reduce

由于缺乏替代品当时,许多大数据系统今天所使用的Map/Reduce,对于该领域来说,并不是一个较好的选择。一个很好的例子是使用Map/Reduce来维护一个全球性的搜索索引。使用Map/Reduce,我们基本上会重建索引,在那里实际上会有更合理的更新。

谷歌把索引处理的很大一部分从Map/Reduce降低到一个更加实时的处理模式上,正如最近的文章中指出:

谷歌是如何设法让其搜索结果越来越实时?通过一个被称为Percolator的增量处理引擎来取代GMR支持。通过只涉及新建、修改或删除文件和使用二级指标来有效地分类和查询所得到的输出,谷歌能够显著降低需要的时间。正如文章中所写的:“[C]onverting索引系统让一个增量系统处理文件的延迟平均下降了100倍。“这意味着Web上的新内容被索引的速度可以比使用MapReduce系统快100倍!

最后的注意事项

我们可以在一些工作进入我们的Hadoop系统之前就进行预处理,这样使我们的Hadoop系统运行得更快。我们也可以不在Hadoop Map/Reduce系统中批处理不适合的工作负载,而是像谷歌一样,使用Stream Processing。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3784.html

相关文章

  • 深入理解Hadoop集群和网络

    摘要:的带宽虽然不常见,但是却能显著的提高核心和磁盘驱动器的密集性。更多的核心和磁盘驱动器,意味着数据能得到更多的并行处理能力和更快的结果。就是在你的机器扩展更多个磁盘驱动器和更多的核心,而不是增加机器的数量。 本文将着重于讨论Hadoop集群的体系结构和方法,及它如何与网络和服务器基础设施的关系。最开始我们先学习一下Hadoop集群运作的基础原理。 Hadoop里的服务器角色 Hadoop主要...

    meislzhua 评论0 收藏0
  • 详解Hadoop集群 窥探云时代并行处理

    摘要:的带宽虽然不常见,但是却能显著的提高核心和磁盘驱动器的密集性。我们将代表性的处理一些级别的文件。更多的核心和磁盘驱动器,意味着数据能得到更多的并行处理能力和更快的结果。就是在你的机器扩展更多个磁盘驱动器和更多的核心,而不是增加机器的数量。 本文将着重于讨论Hadoop集群的体系结构和方法,及它如何涉及到网络和服务器基础设施。开始我们先学习一下Hadoop集群运作的基础。Hadoop里的服务器...

    stefanieliang 评论0 收藏0
  • 让ClouderaHadoop来压缩大数据

    摘要:灵活性扩展性。如何构建现在我们来如何进行构建,怎么样来进行数据的采集存储以及处理,还有我们将如何让这些数据更好的为服务者服务。 第四届中国云计算大会已经落下帷幕,在此次大会上,诸多重量级嘉宾围绕云计算方面的相关话题给我们带来了精彩的演讲,特别是5月23号的开源云计算平台技术专场:OpenStack、CloudStack、Hadoop,更是全场爆棚、人气十足。 为了让读者能够更加了解国内外云...

    Benedict Evans 评论0 收藏0
  • Hadoop目前使用情况调查和采访

    摘要:大部分情况下,并不会替代已有的数据处理系统,而是作为已有产品的补充。机器数据,能够用来分析机器的使用情况的调查对象已经这样做了,同时还有正计划这样做。在这一方面,是到目前为止查询领域的一个占主导地位的工具。 本文原作者: Boris Lublinsky 我们正生活在大数据的时代。在当今这个技术驱动的世界,计算能力、电子设备和Internet的可...

    fyber 评论0 收藏0
  • 用Spark解决一些经典MapReduce问题

    摘要:摘要是一个项目,它被标榜为快如闪电的集群计算。它拥有一个繁荣的开源社区,并且是目前最活跃的项目。提供了一个更快更通用的数据处理平台。更多经典案例介绍期待下回分解。。。 摘要 Spark是一个Apache项目,它被标榜为快如闪电的集群计算。它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的...

    oneasp 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<