
上QQ阅读APP看书,第一时间看更新
1.1 为什么要学习Hadoop
继工业革命之后,信息化再次掀起了新的革命浪潮,数据信息量成指数幂增长,大量数据蕴含的价值成为人们关注的焦点。然而,庞大的数据量存储及计算问题,已成为一种具有挑战性的问题。
分布式系统解决了大数据时代的数据爆发所带来的高并发的吞吐和大规模数据管理与计算问题。分布式系统是一个其组件分布在联网的计算机上,组件之间通过传递消息进行通信和动作协调的系统,有以下3个主要特征。
1. 并发性
对于计算机网络中的数据等共享资源来说,程序执行时并发访问是常见的行为。分布式系统中的多个节点可能会并发地操作一些共享的资源。协调分布式并发操作也成为分布式系统架构与设计中最大的挑战之一。
2. 副本
它是分布式系统提供的一种容错机制,分为数据副本和服务副本。数据副本指在不同节点上持有同一份数据,当某一个节点上存储的数据丢失时,可以从其他节点的副本上读取该数据,这是解决分布式系统数据丢失问题的有效手段。服务副本指多个节点提供同样的服务,每个节点都有能力接受来自外部的请求并进行相应的处理。
3. 可扩展性
分布式系统的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数据量的任务。分布式系统由独立的服务器通过网络松散耦合组成。提升分布式系统的整体性能是要通过横向扩展(增加更多的服务器),而不是纵向扩展(提升每个节点的服务器性能)。
Hadoop是Apache公司旗下的一个开源项目,是一个高效的分布式计算平台,由于其可靠性、高效性,以及可以在大量普通计算机集群上部署,被越来越多的企业应用。Hadoop的兴起,简化了数据海量存储及计算这个难题的研究过程。