Hadoop文档声明可以使用-file
option在本地提供文件。
答案 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