我正在开发一个 Java MapReduce 应用程序,该应用程序必须能够为从用户本地机器到 S3 存储桶的一些图片提供上传服务。
问题是应用程序必须在 EC2 集群上运行,所以我不确定在复制文件时如何引用本地计算机。方法 copyFromLocalFile(..) 需要来自本地机器的路径,该路径将是 EC2 集群......
我不确定我是否正确地陈述了问题,有人能理解我的意思吗?
谢谢
我正在开发一个 Java MapReduce 应用程序,该应用程序必须能够为从用户本地机器到 S3 存储桶的一些图片提供上传服务。
问题是应用程序必须在 EC2 集群上运行,所以我不确定在复制文件时如何引用本地计算机。方法 copyFromLocalFile(..) 需要来自本地机器的路径,该路径将是 EC2 集群......
我不确定我是否正确地陈述了问题,有人能理解我的意思吗?
谢谢
您还可以调查 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。
您需要将文件从 userMachine 获取到至少 1 个节点,然后才能通过 MapReduce 使用它们。
FileSystem
和FileUtil
功能指的是集群中节点之一的本地磁盘或本地磁盘上的路径HDFS
。它不能引用用户的本地系统。(也许如果你做了一些 ssh 设置......也许?)