今天运行mr代码,在本地调试都没有问题,放到线上发现一直报错:
java.lang.NoSuchFieldError: INSTANCE in HttpClient when running hadoop
经过排查,发现是由于map中用到了HttpClient(4.5)的依赖,而hadoop中自带了另一个版本的httpClient.jar,导致jar冲突。解决方法可以使用map-job-user-classpath-first 配置,告诉hadoop优先使用用户classpath下的jar。