一般我们在mapreduce程序中调用第三方jar包时会出现找不到jar包的问题,检查发现jar包就在相应路径,mapreduce任务就是找不到。仔细想想会发现,这个jar包是放在执行mapreduce主程序机器上的内存中,一般为客户端机器。而我们在map或者reduce函数中调用该jar包时是在集群的机器上的内存中调用,这样怎么可以调用。可以使用以下方法:
1 把jar包提前放在集群每天机器上。
2 和集群调用mysql驱动程序一样,先将jar包放入hdfs,然后通过mysql的distributedcache将jar包分发到每台机器。
时间: 2024-10-12 08:08:26