IDEA maven工程运行spark程序出错java.lang.NoClassDefFoundError: scala/Cloneable

记录一下spark2.4.3 scala2.13.0 学习过程中的一些坑

在IDEA中创建maven工程,添加scala了插件,进行编写scala版本的WordCount时,运行出现如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Cloneable

    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
    	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    	at org.wangz.scala.spark.WordCount$.main(WordCount.scala:8)
    	at org.wangz.scala.spark.WordCount.main(WordCount.scala)
    Caused by: java.lang.ClassNotFoundException: scala.Cloneable
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    	... 14 more

本人maven 的pom.xml文件配置如下


    
      junit
      junit
      4.11
      test
    
    
      org.apache.spark
      spark-core_2.12
      2.4.3
    
    
      org.scala-lang
      scala-reflect
      2.13.0
    
    
      org.scala-lang
      scala-library
      2.13.0
    
    
      org.scala-lang
      scala-compiler
      2.13.0
    
  

  
    
      
        org.scala-tools
        maven-scala-plugin
        2.15.2
        
          
            
              compile
              testCompile
            
          
        
      
    
    
      
        
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-jar-plugin
          3.0.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
        
        
          maven-site-plugin
          3.7.1
        
        
          maven-project-info-reports-plugin
          3.0.0
        
      
    
  

#解决方案:
将如pom.xml中的如下依赖删除

		
          org.scala-lang
          scala-reflect
          2.13.0
        
        
          org.scala-lang
          scala-library
          2.13.0
        
        
          org.scala-lang
          scala-compiler
          2.13.0
        

因为我已经在IDEA中配置过了scala的相关插件,删除之后,正常
具体是因为什么冲突,我初学者 还不是很明白,两个版本其实都是2.13.0,但是就是会出错
正确的pom文件如下:
能做到java和scala完美整合


    UTF-8
    1.8
    1.8
  

  
    
      junit
      junit
      4.11
      test
    
    
      org.apache.spark
      spark-core_2.12
      2.4.3
    
    
  
    
      
        org.scala-tools
        maven-scala-plugin
        2.15.2
        
          
            
              compile
              testCompile
            
          
        
      
    
    
      
        
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-jar-plugin
          3.0.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
        
        
          maven-site-plugin
          3.7.1
        
        
          maven-project-info-reports-plugin
          3.0.0
        
      
    
  

还有一个问题就是,maven的下面两个添加插件的方式是不同的,起初我在

 
   
   	 
  

希望能帮到一些遇到同样问题的同学~

你可能感兴趣的:(大数据学习)