《转载hadoop初探》word版

《转载hadoop初探》word版

ID:30438486

大小:84.33 KB

页数:10页

时间:2018-12-29

《转载hadoop初探》word版_第1页
《转载hadoop初探》word版_第2页
《转载hadoop初探》word版_第3页
《转载hadoop初探》word版_第4页
《转载hadoop初探》word版_第5页
资源描述:

《《转载hadoop初探》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、转载Hadoop初探原文地址:Hadoop初探作者:hi祥龙Hadoop初探转载自:是基于shared-nothing架构的海量数据存储和计算的分布式系统,它由若干个成员组成,主要包括:HDFS、MapReduce、Hive、HBase、Pig和ZooKeeper,其中HDFS是Google的GFS开源实现,而ZooKeeper是Google的Chubby开源版本,而HBase是Google的BigTable开源版本。HDFS具体高容错性和强线性扩展特点。Hadoop由DougCutting在2004年开始开发,2008

2、年开始流行于中国,2009年在中国已经火红,包括中国移动、百度、网易、淘宝、腾讯、金山和华为等众多公司都在研究和使用它,另外还有中科院、暨南大学、浙江大学等众多高校在研究它。1.适用范围1.1.大规模数据处理面临的挑战1.2.摩尔定律2.Hadoop2.1.与现有技术的比较2.2.数据分布2.3.MapReduce:孤立式处理2.4.平台可扩展性1.适用范围Hadoop是实现大规模分布式处理的一种基础架构。虽然Hadoop也可以在单台机器上适用,但是在由几百台,上千台拥有多核处理器的计算机组成的平台上,才能显示其真正的威

3、力。另外,Hadoop也可以实现大规模任务在计算机集群上的有效分配。那么大规模的任务到底有多大呢?大型订单的规模超过许多现有系统可以支持的数量。Hadoop的低端任务规模就可以达到数百G的数据。事实上,Hadoop是设计用来处理网络规模的数据任务的,其大小可以从数百G到数百T,甚至数百P。在这种情况下,输入数据的规模早已超过单个机器硬盘可以应付的大小,更不用说内存了。所以Hadoop采用了分布式文件系统,将输入数据进行拆分,分布到集群的若干台机器上。这样就可以实现并行处理,并且尽可能有效地计算出结果。1.1大规模数据处理

4、面临的挑战大规模数据计算有很多困难。首先,要容纳这么多的数据,就必须将其分散到若干台机器上,并行地进行处理。然而,当若干台机器协同工作的时候,问题就出现了。在单台机器的环境下,程序设计者们并不会很关心系统崩溃的问题。因为如果系统崩溃了,那么应用程序也是无论如何不可能再恢复的。然而局部失效的问题在分布式环境下确很常见。交换机和路由器的故障会造成网络局部或者整体失效;网络拥塞会造成数据不能及时到达;网络中的某台机器可能会过热,崩溃,硬盘失效或者没有足够的存储空间;数据也有可能损坏,或者是恶意,错误的传输;客户端可能会使用各种

5、不同的协议;时钟不同步,文件无法解锁,执行分布式任务的某台机器也有可能与网络失去联系;…大规模数据处理时,无论出现上述的任何一个错误,局部失效或者是瞬时错误,分布式系统都应该能够恢复并且继续执行。当然,对软件工程而言,提供满足这种条件的恢复力的是一个巨大的挑战。不同的分布式系统可能会对若干种错误情况有很好的解决方案,但是很难做到面面俱到。Hadoop不提供安全模式以及对注入攻击的防护措施。比如说,Hadoop不能检测到节点之间的中间人攻击。但是另一方面,它却能很好地解决硬盘失效以及数据拥塞的问题。不同的分布式系统,根据不

6、同的使用需求(例如高安全性),会做出不同的权衡。除了上面所说的这些问题,硬件有限的运算资源也是重要的一个问题。这些资源包括:处理器时间内存硬件设备空间网络带宽单个计算机通常只有几G的内存。当输入若干T大小的数据集时,需要成千台机器才能将所有的数据放在RAM中,即使这样,单个机器也不能引用或处理所有的数据。硬盘可存储的信息量会大很多。现在,单个机器通常会有几个T大小的硬盘。但是,大规模运算通常会在运算过程中产生几倍于原始数据大小的中间数据,而导致硬盘也没有足够的存储空间,此时,分布式系统需要寻找其他节点来存储溢出的数据。最

7、后,即使在内部网络中,带宽也是比较稀缺的资源。当节点间用1G的以太网连接时,通常也会有很高的吞吐量。当所有的节点都传输以G计的数据时,很容易占据所有的带宽。另外如果机器分布在多个机架时,可用的带宽就会更少,此外,使用此信道的RPC请求以及其他数据传输请求就有可能被延迟或者损坏。所以,一个成功的大规模分布式系统必须能够有效地管理上面提到的资源。而且,除了分配尽可能多的时间用于实际的核心运算外,分布式系统还必须分配额外的资源用于整体维护。多台计算机之间的同步是分布式系统最大的问题。如果分布式系统的节点间可以显示地通信的话,那

8、么应用程序设计者必须要认识到这种通信模式带来的风险。这样会很容易造成大量的,甚至超过系统负荷的远程程序调用(RPC),多方数据交换也很容易造成死锁或者竞争,会使得错误后继续计算变得更加困难。例如,一个拥有100个节点的集群,当其中一个节点失效之后,其他的99个节点应该能够继续进行运算,并且,理想情况下,由此而产生的计

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。