今天往学校的集群上提交一个词频分析搜狗4000W的数据,一个jar包需要引用程序的另一个jar包中的方法,所以必须把被引用的jar包提前导入hadoop中,在hadoop1.2版本中中,提交的jar放在hadoop的lib下,执行的时候系统会默认到lib下找到jar,应用到hadoop2.5.2上位置变了,今天在这个问题上卡了好久,最后经过尝试,是把引入的包导入到hadoop包下的share包的mr中的lib下,那么当你执行程序时,系统会默认到lib包下查找所需要的类。
还有一个问题,就是必须修改所有节点的hadoop下的share下的mr的lib包,注意是所有,假如你只修改了master,程序会报错,想想也对,master只事负责任务调度,真正的计算是在slave中进行的,所以slave节点都得导入被引用的jar包
虽然充满曲折,最终还是解决问题,加油!mzy!
hadoop2版本和hadoop1版本的第三方jar包的位置问题
最新推荐文章于 2022-11-16 18:11:10 发布