日萌社
人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)
大数据组件使用 总文章
问题:window本地运行MR程序/spark程序时,是正常可以的,但是打包程序jar包到集群环境中运行时,
却报错 ClassNotFound 引用不到/找不到 第三方jar包中的类时。
分析原因:window本地因为配置了maven正常依赖使用第三方jar包,但是把MR程序/spark程序打包为jar包上传到集群环境中时,
却无法引用找到集群环境中的第三方jar包
解决方式之一:可在本地打包完MR程序/spark程序为jar包文件之后,把所依赖的第三方的jar包解压后的所有文件/文件夹,
一起丢进 MR程序/spark程序所打包的jar包文件中,那么在集群环境中运行MR程序/spark程序所打包的jar包文件
时,便会优先找到 MR程序/spark程序所打包的jar包文件中的 第三方的jar解压出来的文件/文件夹。
例子:
在集群中运行mr的时候,可能会引用不到 kafka-clients-1.0.1.jar 而报错找不到 KafkaConsumer类,
因此就需要自己打包mr程序的jar包之后,还要把 kafka-clients-1.0.1.jar 中的 org整个目录给 打包进 mr程序的jar包中,
那么集群中跑mr程序时就能使用自己手动打包进去的kafka-clients-1.0.1.jar