使文件在Elastic MapReduce上本地可用

时间:2013-01-17 01:21:00

标签: ruby hadoop elastic-map-reduce

Hadoop文档声明可以使用-file option在本地提供文件。

如何使用Elastic MapReduce Ruby CLI

执行此操作

1 个答案:

答案 0 :(得分:0)

您可以使用DistributedCache与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客户端中执行此操作的示例:

./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