栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

spark程序使用 gson 高版本解决方案

spark程序使用 gson 高版本解决方案

问题
  1. spark程序调用高版本gson方法,集群运行时抛出NoSuchMethod异常,本地执行无问题
  2. 查看依赖,程序本身并没有依赖老版本的gson。
原因
  1. spark自带gson,版本为2.2.4。spark任务启动时,会优先加载该版本。程序本身编译集成的gson版本不会被加载。
  2. 如果代码中使用了更高版本的gson才有的方法和特性,就会抛出异常。
解决方案

使用maven-shade-plugin的relocate功能。该功能将package进行改名成另外一个。程序在运行时,会自动将原package进行改名。

具体方法:

    org.apache.maven.plugins
    maven-shade-plugin
    3.0.0
    
        
            package
            
                shade
            
            
            	
					
						
						mainClass
					
				
                
                    
                        com.google.gson
                        shaded.com.google.gson
                    
                
				
					
						*:*
						
							
							meta-INF/*.SF
							meta-INF/*.DSA
							meta-INF/*.RSA
						
					
				
            
        
    

然后使用maven package进行打包即可 (注意 shade插件使用该方式进行打包,否则shade插件不生效)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号