一、需求背景
基于业务需求,需要修改hadoop源码,将局部源代码修改后,放在自己的工程目录下,由于其相同的路径,想要覆盖掉源码对应部分
二、环境背景
IDEA下,编辑MapReduce任务,打包提交给服务器运行
三、目标
改动部分覆盖掉源码对应部分,生效
四、状况
Hadoop默认自己原生的源码优先,覆盖无效
五、措施
在设计MapReduce任务时,添加以下配置
conf.set("mapreduce.job.user.classpath.first","true");
conf.set("mapreduce.task.classpath.user.precedence","true");
六、结果
覆盖生效,MR成功
七、启发链接
Hadoop ClassPath: https://blog.csdn.net/andyelvis/article/details/51103988
Hadoop程序JAR包冲突的分析及解决方法:http://bbs.umeng.com/thread-12187-1-1.html
原文:https://www.cnblogs.com/PigeonNoir/p/9146439.html