【问题标题】:Hadoop upload files from local machine to amazon s3Hadoop 将文件从本地机器上传到 amazon s3
【发布时间】:2012-03-15 21:55:55
【问题描述】:

我正在开发一个 Java MapReduce 应用程序,该应用程序必须能够为用户本地计算机到 S3 存储桶的一些图片提供上传服务。

问题是应用程序必须在 EC2 集群上运行,所以我不确定在复制文件时如何引用本地计算机。方法 copyFromLocalFile(..) 需要来自本地机器的路径,该路径将是 EC2 集群...

我不确定我是否正确地陈述了这个问题,有人能理解我的意思吗?

谢谢

【问题讨论】:

  • 这里不清楚的是用户(您要从其本地计算机上传图像)如何与此应用程序交互。你能分享更多的架构细节吗?

标签: amazon-s3 amazon-ec2 hadoop hdfs


【解决方案1】:

您还可以调查 s3distcp:http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html

Apache DistCp 是一个开源工具,可用于复制大量数据。 DistCp 使用 MapReduce 以分布式方式进行复制——在多个服务器之间共享复制、错误处理、恢复和报告任务。 S3DistCp 是 DistCp 的扩展,经过优化可与 Amazon Web Services,尤其是 Amazon Simple Storage Service (Amazon S3) 一起使用。使用 S3DistCp,您可以高效地将大量数据从 Amazon S3 复制到 HDFS,然后由您的 Amazon Elastic MapReduce (Amazon EMR) 作业流处理。您还可以使用 S3DistCp 在 Amazon S3 存储桶之间或从 HDFS 复制数据到 Amazon S3。

【讨论】:

    【解决方案2】:

    您需要将文件从 userMachine 获取到至少 1 个节点,然后才能通过 MapReduce 使用它们。

    FileSystem 和FileUtil 函数引用HDFS 或集群中某个节点的本地磁盘上的路径。 它不能引用用户的本地系统。 (也许如果你做了一些 ssh 设置......也许?)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-31
      • 2011-07-21
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      相关资源
      最近更新 更多