在数据处理方面,我们发现数据输入速度一般要比的数据处理速度快很多,这种现象在大多数据领域尤为明显。随着数据不断膨胀,相应的响应时间自然要有所增加,数据处理的复杂度也在不断提高。作为一个开发者,我们自然非常关注系统的运行速度问题。在云计算领域,一个小技巧也许能带来系统性能的大幅度提升。对于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托福答案

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

  1. 使用QFileInfo类获取文件信息(在NTFS文件系统上,出于性能考虑,文件的所有权和权限检查在默认情况下是被禁用的,通过qt_ntfs_permission_lookup开启和操作。absolutePath()必须查询文件系统。而path()函数,可以直接作用于文件名本身,所以,path() 函数的运行会更快)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Amnes1a/article/details/65444966QFileInfo类为我们提供了系统无 ...

  2. 如何让你的SQL运行得更快

    人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS ...

  3. 如何让python程序运行得更快

    原则1:不优化 原则2:不要优化那些不重要的部分(否则会降低可读性) 解决方案: 1. 使用函数,局部变量比全局变量快很多.尽量使用函数,如main() 2. 有选择性的消除属性访问. 如多用 fro ...

  4. 让Python代码更快运行的 5 种方法

    不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和 ...

  5. Five things that make Go fast-渣渣翻译-让GO语言更快的5个原因

    原文地址:https://dave.cheney.net/2014/06/07/five-things-that-make-go-fast 翻译放在每个小段下面 Anthony Starks has ...

  6. 快还要更快,让PHP 7 运行更加神速

    导读 PHP 7 比5.x 快上很多,即使只有单纯的版本升级就已经很有感,不过大家还是希望它变得越来越快,这时再做些小调整就会更有fu,Let's try it! 事前准备 说到PHP 7,那一定跑不 ...

  7. v8是怎么实现更快的 await ?深入理解 await 的运行机制

    最近v8团队发表一篇博客Faster async functions and promises, 预计在v7.2版本实现更快的异步函数和promise. 文章内容看起来不是很容易理解,背后的原理比较隐 ...

  8. 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...

  9. 【译】更快的方式实现PHP数组去重

    原文:Faster Alternative to PHP’s Array Unique Function 概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一 ...

随机推荐

  1. 物理卷操作命令:pvcreate,pvscan,pvdisplay.卷组操作命令:vgcreate,vgdisplay.

    新硬盘创建LVM系统过程. 物理卷操作命令:pvcreate,pvscan,pvdisplay. 卷组操作命令:vgcreate,vgdisplay. 逻辑卷操作命令:lvcreate,lvdispl ...

  2. Linux Shell编程(1)——shell编程简介

    Shell是一个命令解释器.它不仅是操作系统内核与用户之间的绝缘层,同时也是一种功能相当强大的编程语言.一个Shell程序,通常称为脚本,它是一个由系统调用,命令工具,软件包和已编译的二进制包&quo ...

  3. 微信支付【get_brand_wcpay_request:fail_invalid appid】

    微信支付授权目录一定要注意大小写 艹 如下的WXPay2 千万不要写成WxPay2了 参考地址:http://q.cnblogs.com/q/70405/ 微信支付代码下载:http://files. ...

  4. bithrtree

    #include "stdio.h" #include "stdlib.h" #define OK 1 #define ERROR 0 typedef char ...

  5. [Locked] Paint House I & II

    Paint House There are a row of n houses, each house can be painted with one of the three colors: red ...

  6. <离散数学>学习笔记1--逻辑和证明

    今天开始离散数学的自学旅程. 主题:逻辑和证明 逻辑规则给出数学语句的准确含义.逻辑对计算机科学有着重要作用.为了理解数学,我么必须理解正确的数学论证是由什么组成的.只要证明一个数学语句是真的,我们就 ...

  7. poj1009

    题目大意:边缘检测 IONU卫星成像公司,公司记录和储存非常大的图片使用行程编码,你需要编写一个程序读取被压缩的图像,发现图像的边缘,描述如下,并且输出另一个发现的边缘压缩图像. 一个简单的边缘检测算 ...

  8. 关于openoffice英文乱码的问题

    首先选中乱码的部分,然后在右边的侧栏中看到其字体,尝试改变它的字体,看会不会显示正常,如果可以,先记住这两种字体.然后:    工具->选项->字体        然后在使用替换表打上勾, ...

  9. [Angualr 2] Watch for changes

    You can watch for form / control changes by using .valueChanges.observe({...}): this.sku.valueChange ...

  10. opengl 函数

    ( 7 )光栅化.象素操作函数. 像素位置 glRasterPos*() .线型宽度 glLineWidth() .多边形绘制模式 glPolygonMode() ,读取象素 glReadPixel( ...