IBM?、Google、VMWare 和 Amazon 等公司已经开始提供云计算产品和战略。本文讲解如何使用 Apache Hadoop 构建一个 MapReduce 框架以建立 Hadoop 集群,以及如何创建在 Hadoop 上运行的示例 MapReduce 应用程序。还将讨论如何在云上设置耗费时间/磁盘的任务。
云计算简介
近来云计算越来越热门了,云计算已经被看作 IT 业的新趋势。云计算可以粗略地定义为使用自己环境之外的某一服务提供的可伸缩计算资源,并按使用量付费。可以通过 Internet 访问 “云” 中的任何资源,而不需要担心计算能力、带宽、存储、安全性和可靠性等问题。
本文简要介绍 Amazon EC2 这样的云计算平台,可以租借这种平台上的虚拟 Linux? 服务器;然后介绍开放源码 MapReduce 框架 Apache Hadoop,这个框架将构建在虚拟 Linux 服务器中以建立云计算框架。但是,Hadoop 不仅可以部署在任何厂商提供的 VM 上,还可以部署在物理机器上的一般 Linux OS 中。
在讨论 Apache Hadoop 之前,我们先简要介绍一下云计算系统的结构。图 1 显示云计算的各个层以及现有的一些服务。关于云计算的各个层的详细信息。
基础设施即服务 (Infrastructure-as-a-Service,IaaS)是指以服务的形式租借基础设施(计算资源和存储)。IaaS 让用户可以租借计算机(即虚拟主机)或数据中心,可以指定特定的服务质量约束,比如能够运行某些操作系统和软件。Amazon EC2 在这些层中作为 IaaS,向用户提供虚拟的主机。平台即服务 (Platform-as-a-Service,PaaS)主要关注软件框架或服务,提供在基础设施中进行 “云” 计算所用的 API。Apache Hadoop 作为 PaaS,它构建在虚拟主机上,作为云计算平台。
图 1. 云计算的层和现有服务