zoukankan      html  css  js  c++  java
  • 重点---版本问题-Spark中的一次ClassNotFoundException排除

    前阵子,我把实验室小集群上的spark从2.0.0升级到了2.1.1,当时直接排除掉了一个hdfs-site.xml文件不一致的错误(估计这是2.0.0版本的一个BUG),而且跑了一下测试代码,一切OK。

    可是,今天当我又试着跑同样一段简单的代码时,抛出了以下异常:

    ERROR server.TransportRequestHandler: Error while invoking RpcHandler#receive() on RPC id 6540510158756886012
    java.lang.ClassNotFoundException: org.apache.spark.scheduler.cluster.CoarseGrainedClusterMessages$RetrieveSparkProps$
    at scala.reflect.internal.util.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:62)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.spark.serializer.JavaDeserializationStream$$anon$1.resolveClass(JavaSerializer.scala:67)
    ...
     
    在网上搜了半天,几乎一无所获。有一些关于找不到类的异常的文章,但都不是我遇到的情况。后来,逐渐追踪到Spark的文档,发现Spark2.0.0中存在类“CoarseGrainedClusterMessages.RetrieveSparkProps”(见Spark2.0.0文档),但Spark2.1.1中,该类改名了,变成“CoarseGrainedClusterMessages.RetrieveSparkAppConfig”了!(见Spark2.1.1文档).

    这样看来,集群某个地方还是在按照2.0.0版本的spark运转,所以才会找不到类。猛然想到,之前在HDFS上专门建了个目录,将spark下jars目录下的jar包都传了上去,以方便spark on yarn的运行,但那些jar包还未更新,因此造成了版本的不一致产生了问题。于是立马更新HDFS上的这些jar包,spark果然又能正常运转了~


    ————————————————
    版权声明:本文为CSDN博主「sizheng0320」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sizheng0320/article/details/72567727

  • 相关阅读:
    数据规范化(normalization)
    《穷爸爸富爸爸》笔记
    期望,方差,协方差,相关系数,协方差矩阵,相关系数矩阵,以及numpy实现
    numpy array和mat的乘法
    matlab多图排列
    POJ 3463
    POJ 3463
    Poj2449 第k短路
    Poj2449 第k短路
    POJ 3013
  • 原文地址:https://www.cnblogs.com/javalinux/p/15079837.html
Copyright © 2011-2022 走看看