0

Hadoop 文档指出可以通过使用-file选项使文件在本地可用。

如何使用Elastic MapReduce Ruby CLI做到这一点?

4

1 回答 1

0

您可以使用DistributedCachewith EMR 来执行此操作。

对于 ruby​​ 客户端,这可以通过以下选项来完成:

`--cache <path_to_file_being_cached#name_in_current_working_dir>`

它将单个文件放在DistributedCache. 它允许您指定文件的位置(s3n 或 hdfs),后跟其在应用程序的当前工作目录中引用的名称,并将文件本地放置在由mapred.local.dir(我认为)标识的目录上的任务节点上。

然后,您可以轻松访问Mapper/Reducer任务中的文件。我相信您可以像任何普通文件一样直接访问它,但您可能必须DistributedCache.getLocalCacheFiles(job);setup任务方法中执行类似操作。

在 Ruby 客户端中执行此操作的示例取自 Amazon 的论坛:

./elastic-mapreduce --create --stream --input s3n://your_bucket/wordcount/input --output s3n://your_bucket/wordcount/output --mapper s3n://your_bucket/wordcount/wordSplitter.py --reducer aggregate --cache s3n://your_bucket/wordcount/stop-word-list#stop-word-list
于 2013-01-18T00:17:59.163 回答