Hadoop系统如何应对实时任务避免延迟?

  在Apache Hadoop的起步阶段,主要支持类似搜索引擎的功能。如今,Hadoop已经被数十个行业采用,它们依靠大数据计算来提升业务处理性能。政府、制造业、医疗保健、零售业和其他部门越来越多的从经济发展和Hadoop计算能力中受益,然而受到传统企业解决方案限制的公司将会发现竞争变得越来越残酷。

  选择一个合适的Hadoop发行版和在业务中应用Hadoop一样有必要。最终,你会发现选择哪种Hadoop发行版取决于主机的规格,尽管性能和扩展性才是你应该仔细检查的两个主要特性。让我们了解一下一些具体的Hadoop性能和扩展性要求,以及对几个关键架构的要求。

  性能

  企业需要摆脱传统的数据库解决方案来管理数据,主要原因是为了增加原始性能并获得可扩展性。这可能会让你感到惊讶,因为并不是所有创建出的Hadoop分布系统都一样。

  在我的另一篇文章中曾讲到,增加250毫秒的延迟可能会毁掉整个线上销售的旺季,我们可以了解一下为什么性能的低下(高延迟)会让人难以忍受。网站性能的迟缓会使线上的销售转化率下降7%,这对于流量很大的线上零售商来说意味着数百万美元的损失。

  正如你在下图看到的那样,将MapR M7版本与另一个Hadoop发行版对比,在延迟上的差别意味着性能的不同,而不同发行版之间性能差距也是惊人的。

  当你考虑Hadoop的实时应用时,比如金融安全系统的实时应用,那样对高性能增加的要求甚至更高。

  要特别感谢像Hadoop这样的技术,它使金融罪犯窃取数字资产变得越来越难,金融服务公司比如Zions银行现在已经能够在银行客户感觉到任何实质性影响之前阻止财务欺诈。对于分析和实时数据响应来说,高性能和可靠性很有必要,这可以阻止破坏性欺诈活动。

  扩展性

  Hadoop的另一个主要优点是可扩展性。不用通过单一的企业服务器限制数据吞吐量,Hadoop可以跨计算机集群完成对大型数据集的分布式处理,从而在商品化硬件多个部分之间采用逐个击破的办法消除数据上限。

  这种体系结构只是数据可扩展性提升的起点,还远没有结束。关于可扩展性,Hadoop平台内还有三个方面需要进一步考虑:

  文件瓶颈

  Hadoop默认的体系结构利用单一NameNode作为剩余数据节点的主节点。因为单个NameNode,所有数据被迫进入到一个瓶颈期,这就将Hadoop集群限制在只能有5000万到2亿个文件。

  单个NameNode的执行情况也需要使用商业级NAS,而不是预算友好型的商品化硬件。

  对于单一NameNode体系结构有一种更好的选择——使用分布式元数据结构。下面提供两种体系结构的可视化比较:

  正如你所看到的那样,分布式元数据架构使用的完全是商品化硬件,不仅节省了成本,它还使性能提升了10-20倍,摆脱了文件瓶颈,使文件数上限达到了10亿,比单个NameNode的体系结构在容量上提升了5000倍,这确实是很大的成功。

  节点扩展

  Hadoop的一些较小用户对数据存储和处理并没有太高要求,因此能够在更少的节点上运行,而有些Hadoop实现则可以达到了数千节点的规模。

  这也是Hadoop可扩展性非常出色的地方。从一个入门级大数据实现扩展到具有数千个节点的集群很容易,按照需求增加商品化硬件可以使成本最小化,这涉及到数据处理成本以及需求增加所需投入的成本。

  节点容量

  除了节点的数量,考虑到物理存储限制,Hadoop用户还应该检查每个处理和存储容量。你可以使用具有更高磁盘密度的节点减少总体节点数量,同时还能保证数据存储的要求。

  架构基础

  Hadoop的性能和可扩展性可以被进一步提升,前提是你要有多架构基础分布式系统的思想。

  减少软件层

  软件层太多,会导致导航成本的增加,使Hadoop系统的性能很难得到提升。

  使所有应用程序在同一个平台上运行

  一些Hadoop发行版可能会要求你创建多个实例,一个优化执行将使同一个环境中所有的工作负载被同时处理,这就减少了重复数据的产生,因此提高了可扩展性和性能。

  利用公共云平台获取更好的弹性和可扩展性

  一个好的发行版使你可以在自己的防火墙内灵活地使用Hadoop以及可靠的云环境,比如亚马逊网络服务和谷歌计算引擎。

  最后,选择正确的Hadoop发行版应符合业务需求,不仅仅考虑当前的需求还应考虑未来的需求。分析每个发行版的性能和可扩展性,同时考虑架构基础,这也是在组织内成功实施和评估Hadoop的基础。

时间: 2024-07-28 21:56:47

Hadoop系统如何应对实时任务避免延迟?的相关文章

HStreaming获投资,百万美元打造实时Hadoop系统

HStreaming初创公司总部位于旧金山,近期它接受了的第一笔创业投资--阿特拉斯风险投资公司给予了100万美元的投资,这笔资金将用来打造一个实时的Hadoop系统.这家仅仅有三个人的公司却已经有了两年的历史. 如果向Hadoop的有关人士询问 如何用Hadoop超越目前的批量处理平台,那么最主要的一个答案无疑就是"实时".实际上,下个月" Structure: Data"的一个讨论主题也是这个,企业希望Hadoop能够成为一个可操作的数据库并且具有各种类型的OL

Spark与EVAM组CP,应对实时流式事件处理

文章讲的是Spark与EVAM组CP,应对实时流式事件处理,Apache Spark是一个开源大数据处理框架,其速度快并具有很好的易用性,并且可用来应对复杂分析.Spark可以支持流式处理,图表数据,机器学习,以及Hadoop和map/reduce.它是探索建立实时事件处理的理想平台. EVAM是一个实时事件处理方面的领跑者,有超过40种解决方案可以支持全球超两亿用户的实时事件处理.最近几年,EVAM已经建立了多种客户解决方案,比较流行的几个比如AWS Kinesis和RedShift.既然Ap

联通黄文良:“Hadoop+至强”应对大数据

7月24日,以"芯动大数据,智领大机遇"为主题的英特尔大数据论坛在北京举行.中国联通研究院副院长黄文良先生在大会上介绍了联通应用英特尔Hadoop发行版和基于英特尔至强处理器平台的服务器应对大数据挑战的真实案例. 伴随着智能手机的普及,广大用户利用手机上网和社交越来越频繁,这由此也带来了一个新的挑战:用户想清清楚楚了解自己的上网流量究竟用在了哪里?在这种状况下,联通从去年开始部署针对移动互联网用户的上网记录.和其他运营商以省为单位不同,联通是在全国部署了一套上网记录查阅系统,用户可以通

基于Hadoop系统的MapReduce数据流优化

1 Hadoop管道改进思想 在Hadoop系统的实现中,Map端的输出数据首先被溢写入本地磁盘,当本机任务完成后通知JobTracker,然后Reduce端在得到 JobTracker的通知后会发出HTTP请求,利用复制的方式从相应的Map端拉回其输出.这样的方式只能等该Map任务完成后才能开始执行 Reduce任务,并且Map任务和Reduce任务的执行是分离的. 我们的改进思想是使Map任务和Reduce任务能够以管道的方式执行,即Map任务开始产生输出后直接发送给相应的Reduce任务,

win7系统移动鼠标出现停顿、延迟现象该如何解决

  1.打开电脑之后,将控制面板打开,在里面找到"硬件和声音"选项; 2.接着再找到"电源选项"选项; 3.单击里面的电源管理图标,然后就选中"更多电源选项",再单击"更改计划设置"选项; 4.接着再单击"更改高级电源设置"选项,如下图所示: 5.直接选中"USB选择性暂停设置"选项,接着将其设置为"已禁用"就可以了,具体操作如图所示: win7系统移动鼠标出现停顿.

详解Hadoop系统:Hadoop架构、各部分功能及对大数据的意义

如今Apache Hadoop已成为大数据行业发展背后的驱动力.Hive和Pig等技术也经常被提到,但是他们都有什么功能,为什么会需要奇怪的名字(如Oozie,ZooKeeper.Flume). Hadoop带来了廉价的处理大数据(大数据的数据容量通常是10-100GB或更多,同时数据种类多种多样,包括结构化.非结构化等)的能力.但这与之前有什么不同? 现今企业数据仓库和关系型数据库擅长处理结构化数据,并且可以存储大量的数据.但成本上有些昂贵.这种对数据的要求限制了可处理的数据种类,同时这种惯性

单点搭建HADOOP系统

单点搭建HADOOP系统 安装JDK 1.下载jdk1.6.0_20;(下载文件为jdk-6u20-linux-i586.bin); 2.进入到jdk文件所在目录,由于运行bin文件是需要权限的,所以运行如下命令:chmod u+x jdk-6u20-linux-i586.bin,使得当前用户有权限执行该文件: 3.在jdk文件所在目录下执行:sudo ./jdk-6u20-linux-i586.bin安装jdk; 4.执行java -version验证jdk是否安装成功:如果安装成功会输出ja

Hadoop系统分布式存储与并行计算构架

图1-14展示了Hadoop系统的http://www.aliyun.com/zixun/aggregation/14305.html">分布式存储和并行计算构架.从硬件体系结构上看,Hadoop系统是一个运行于普通的商用服务器集群的分布式存储和并行计算系统.集群中将有一个主控节点用来控制和管理整个集群的正常运行,并协调管理集群中各个从节点完成数据存储和计算任务.每个从节点将同时担任数据存储节点和数据计算节点两种角色,这样设计的目的主要是在大数据环境下实现尽可能的本地化计算,以此提高系统的

Hadoop系统实际运行的时候是不是都是用命令行执行的?Hadoop和Java的联系有哪些?

问题描述 我这两天装了一下Hadoop2.2的集群,用了Yarn和Zookeeper,执行Mapreduce的时候都是用命令行,比如hadoopjarmapreduceExample.jar/user/root/data/source.txt/user/root/output/result当然我估计实际使用的时候还会用到Flume.HBase等技术,但是实际的Hadoop系统是什么样的?都是用命令行人工执行的?还有Hadoop和Java的关系是不是就是用Java写Mapreduce的程序,然后把