作者:禅与计算机程序设计艺术

1.简介

Apache Hadoop(TM)是由Apache基金会推出的开源分布式文件系统(Hadoop Distributed File System),它是一个基于Java开发的一个框架,提供了分布式计算环境。Hadoop支持在廉价的PC服务器上运行,并可以在多台机器上存储超大的数据集,同时它也提供高容错性、高可用性等特性。然而,作为一个框架,它仍然需要被进一步地封装、优化和改造才能适应实际应用场景。比如说:HDFS(Hadoop Distributed File System)的优化;YARN(Yet Another Resource Negotiator)的功能扩展;MapReduce的改进,等等。本文将从架构角度出发,对大规模分布式系统的设计和实现进行详细阐述,并指导读者如何通过阅读本文了解到大数据相关的很多经典论文中没有涉及到的关键技术。另外,在具体的代码编写环节,还会着重介绍一些适用于分布式系统编程的重要工具。

文章将分以下几个章节来介绍:

2. 背景介绍

2.1 分布式系统

2.1.1 概念定义

分布式系统的定义:将不同的计算机分布在不同的网络互联设备上,通过某种通信协议连接起来,共同完成一项任务或完成共同的工作。如图所示,分布式系统由分布式节点组成,每个节点都可以进行处理运算,处理结果可以共享或者整合,实现系统的功能模块之间的弹性伸缩。