分享

mapperreducer程序中能不能直接用主类的静态变量值,还是用Context传递值,这有什...

Mr.k 发表于 2016-11-10 10:54:52 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 7785
哪位能不能给详细讲讲:
mapperreducer程序中能不能直接用主类的静态变量值,还是用Context传递值,这有什么区别?
比方说MainClass中public static final String date="20160906"?
然后在MapperClass中全局private String date0;


setup方法中用全局变量赋值
date0=MainClass.date;
在mapper方法中直接用date0去做点mapper的事


还有一种情况是在mainclass中将date保存到context上下文中,然后将context作为Mapper的传入参数,从context中取出date在到mapper中做点事情

以上两种情况有没有大区别呢?用静态变量会不会拿不到值,或者是创建了和splits相同个数的变量,都会重新创建
context有什么优点呢?所有的都只用这一份吗?不需要重新创建?
菜鸟一个,希望有人出来给讲讲

已有(1)人评论

跳转到指定楼层
arsenduan 发表于 2016-11-10 15:38:26
全局变量在传统程序中是比较常见的,在分布式程序中,全局静态,也只是相对于map和reduce。
最好还是使用Context
推荐篇文章
MapReduce中设置全局变量
http://www.aboutyun.com/forum.php?mod=viewthread&tid=7473


回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条