分享

使用DistributedCache出错

nickpro 2014-9-26 23:18:23 发表于 异常错误 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 11 37346
howtodown 发表于 2014-9-27 14:10:59
nickpro 发表于 2014-9-27 12:15
http://www.codelast.com/?p=8131  这是我在网上找到的,他说使用旧api可以成功,不过我试了一下,也没法 ...
hadoop1的api和2的api看看是不是弄混要了
参考下面:
第一步:上传
  1. hadoop fs -put ./keyvalues.properties cache/keyvalues.properties
复制代码

第二步:读取

  1. public class DistributedCacheMapper extends Mapper<LongWritable, Text, Text, Text> {
  2. Properties cache;
  3. @Override
  4. protected void setup(Context context) throws IOException, InterruptedException {
  5. super.setup(context);
  6. Path[] localCacheFiles = DistributedCache.getLocalCacheFiles(context.getConfiguration());
  7. if(localCacheFiles != null) {
  8. // expecting only single file here
  9. for (int i = 0; i < localCacheFiles.length; i++) {
  10. Path localCacheFile = localCacheFiles[i];
  11. cache = new Properties();
  12. cache.load(newFileReader(localCacheFile.toString()));
  13. }
  14. } else {
  15. // do your error handling here
  16. }
  17. }
  18. @Override
  19. public void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException {
  20. // use the cache here
  21. // if value contains some attribute, cache.get(<value>)
  22. // do some action or replace with something else
  23. }
  24. }
复制代码

第三步:加到驱动中
  1. JobConf jobConf = new JobConf();
  2. // set job properties
  3. // set the cache file
  4. DistributedCache.addCacheFile(newURI("cache/keyvalues.properties#keyvalues.properties"), jobConf);
复制代码









回复

使用道具 举报

howtodown 发表于 2014-9-27 14:21:29
DistributedCache.addCacheFile(newURI("cache/keyvalues.properties#keyvalues.properties"), jobConf);
不要忘了后面的链接符
回复

使用道具 举报

12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条