Hadoop 文档指出可以通过使用-file
选项使文件在本地可用。
如何使用Elastic MapReduce Ruby CLI做到这一点?
Hadoop 文档指出可以通过使用-file
选项使文件在本地可用。
如何使用Elastic MapReduce Ruby CLI做到这一点?
您可以使用DistributedCache
with 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