hadoop中setup,cleanup,run和context讲解

Posted 吊车尾88

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop中setup,cleanup,run和context讲解相关的知识,希望对你有一定的参考价值。

hadoop 执行中的setup run cleanup context的作用
1.简介
1) setup(),此方法被MapReduce框架仅且执行一次,在执行Map任务前,进行相关变量或者资源的集中初始化工作。若是将资源初始化工作放在方法map()中,导致Mapper任务在解析每一行输入时都会进行资源初始化工作,导致重复,程序运行效率不高!
2) Mapper或Reducer运行
3) cleanup(),此方法被MapReduce框架仅且执行一次,在执行完毕Map任务后,进行相关变量或资源的释放工作。若是将释放资源工作放入方法map()中,也会导致Mapper任务在解析、处理每一行文本后释放资源,而且在下一行文本解析前还要重复初始化,导致反复重复,程序运行效率不高!
4) run 程序启动运行
5) Context 是MapReduce任务运行的一个上下文,包含了整个任务的全部信息
context作为了map和reduce执行中各个函数的一个桥梁,这个设计和java web中的session对象、application对象很相似
注:建议资源初始化及释放工作,分别放入方法setup()和cleanup()中进行
2.执行顺序
setup---->Mapper或Reducer----->cleanup
|                                                 |
     run
解:Setup一般是在执行map函数前做一些准备工作,map是主要的数据处理函数,
cleanup则是在map执行完成后做一些清理工作和finally字句的作用很像,
下面看一下run方法
public void run(Context context) throws IOException, InterruptedException {
     setup(context);
     while(context.nextKeyValue()) {
            map(context.getCurrentKey(),context.getCurrentValue(),context);
      }
      cleanup(context);
    }
}

以上是关于hadoop中setup,cleanup,run和context讲解的主要内容,如果未能解决你的问题,请参考以下文章

mapreduce的cleanUp和setUp的特殊用法(TopN问题)和常规用法

svn在遇到"cleanUp"后,run 'cleanup' if it was interrupted

SVN总结:svn“Previous operation has not finished; run 'cleanup' if it was interrupted“

svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法

svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法

Error Permission denied when running brew cleanup