我正在处理一个 Hadoop 项目并在我的本地集群中生成大量数据。不久之后,我将使用基于云的 Hadoop 解决方案,因为与实际工作负载相比,我的 Hadoop 集群非常小,但是我现在无法选择我将使用哪一个,即基于 Windows Azure、EMR 或其他。我正在本地生成大量数据,并希望将这些数据存储到一些基于云的存储中,因为我稍后将很快将这些数据与 Hadoop 一起使用。
我正在寻找建议,以根据某人的经验决定选择哪个云存储。提前致谢。
我正在处理一个 Hadoop 项目并在我的本地集群中生成大量数据。不久之后,我将使用基于云的 Hadoop 解决方案,因为与实际工作负载相比,我的 Hadoop 集群非常小,但是我现在无法选择我将使用哪一个,即基于 Windows Azure、EMR 或其他。我正在本地生成大量数据,并希望将这些数据存储到一些基于云的存储中,因为我稍后将很快将这些数据与 Hadoop 一起使用。
我正在寻找建议,以根据某人的经验决定选择哪个云存储。提前致谢。
首先这是一个很好的问题。让我们试着了解一下“数据在 Hadoop 中是如何处理的”:
在 Hadoop 集群中处理数据后,结果将存储在您在作业中配置的位置。输出数据源可以是 HDFS 或可从 Hadoop 集群访问的外部位置
将数据复制到 HDFS 后,您可以将其保留为一个 HDFS,但您必须为使用 Hadoop 集群付出代价。
在某些情况下,当您在某个间隔之间运行 Hadoop 作业并且可以更快地完成数据移动/复制时,最好有一个策略来 1)获取 Hadoop 集群 2)复制数据 3)运行作业 4)释放集群。
因此,基于上述详细信息,当您为 Hadoop 集群选择云中的数据源时,您必须考虑以下几点:
如果您要处理大数据(这在 Hadoop 集群中很常见),请考虑不同的数据源以及将数据从这些数据源复制/移动到 HDFS 所需的时间,因为这将是您的第一步。
您需要选择一个必须具有最低网络延迟的数据源,以便您可以尽可能快地输入和输出数据。
您还需要考虑如何将大量数据从当前位置移动到任何云存储。最好的选择是拥有一个可以发送数据磁盘(HDD/磁带等)的存储空间,因为上传多个 TB 数据将花费大量时间。
Amazon EMR(已经可用)、Windows Azure(CTP 中的 HadoopOnAzure)和 Google(预览中的 BigQuery,基于 Google Dremel)在云中提供了预配置的 Hadoop 集群,因此您可以选择想要运行 Hadoop 作业的位置,然后您可以考虑云存储。
即使您选择一个云数据存储并决定迁移到另一个,因为您想在云中使用其他 Hadoop 集群,您当然可以传输数据,但请考虑您可用的时间和数据传输支持。
例如,使用 HadooponAzure,您可以连接各种数据源,即 Amazon S3、Azure Blob 存储、SQL Server 和 SQL Azure 等,因此各种数据源是任何云 Hadoop 集群的最佳选择。