2

我正在处理一个 Hadoop 项目并在我的本地集群中生成大量数据。不久之后,我将使用基于云的 Hadoop 解决方案,因为与实际工作负载相比,我的 Hadoop 集群非常小,但是我现在无法选择我将使用哪一个,即基于 Windows Azure、EMR 或其他。我正在本地生成大量数据,并希望将这些数据存储到一些基于云的存储中,因为我稍后将很快将这些数据与 Hadoop 一起使用。

我正在寻找建议,以根据某人的经验决定选择哪个云存储。提前致谢。

4

1 回答 1

1

首先这是一个很好的问题。让我们试着了解一下“数据在 Hadoop 中是如何处理的”:

  1. 在 Hadoop 中,所有数据都在 Hadoop 集群上处理,这意味着当您处理任何数据时,该数据会从其源复制到 HDFS,这是 Hadoop 的重要组成部分。
  2. 仅在您在其中运行 Map/Reduce 作业以获取结果后将数据复制到 HDFS 时。
  3. 这意味着无论您的数据源是什么以及在哪里(Amazon S3、Azure Blob、SQL Azure、SQL Server、本地源等),您都必须将数据从源移动/传输/复制到 HDFS,在Hadoop的限制。
  4. 在 Hadoop 集群中处理数据后,结果将存储在您在作业中配置的位置。输出数据源可以是 HDFS 或可从 Hadoop 集群访问的外部位置

  5. 将数据复制到 HDFS 后,您可以将其保留为一个 HDFS,但您必须为使用 Hadoop 集群付出代价。

  6. 在某些情况下,当您在某个间隔之间运行 Hadoop 作业并且可以更快地完成数据移动/复制时,最好有一个策略来 1)获取 Hadoop 集群 2)复制数据 3)运行作业 4)释放集群。

因此,基于上述详细信息,当您为 Hadoop 集群选择云中的数据源时,您必须考虑以下几点:

  1. 如果您要处理大数据(这在 Hadoop 集群中很常见),请考虑不同的数据源以及将数据从这些数据源复制/移动到 HDFS 所需的时间,因为这将是您的第一步。

  2. 您需要选择一个必须具有最低网络延迟的数据源,以便您可以尽可能快地输入和输出数据。

  3. 您还需要考虑如何将大量数据从当前位置移动到任何云存储。最好的选择是拥有一个可以发送数据磁盘(HDD/磁带等)的存储空间,因为上传多个 TB 数据将花费大量时间。

  4. Amazon EMR(已经可用)、Windows Azure(CTP 中的 HadoopOnAzure)和 Google(预览中的 BigQuery,基于 Google Dremel)在云中提供了预配置的 Hadoop 集群,因此您可以选择想要运行 Hadoop 作业的位置,然后您可以考虑云存储。

  5. 即使您选择一个云数据存储并决定迁移到另一个,因为您想在云中使用其他 Hadoop 集群,您当然可以传输数据,但请考虑您可用的时间和数据传输支持。

  6. 例如,使用 HadooponAzure,您可以连接各种数据源,即 Amazon S3、Azure Blob 存储、SQL Server 和 SQL Azure 等,因此各种数据源是任何云 Hadoop 集群的最佳选择。

于 2012-05-08T04:34:20.997 回答