美文网首页
Spark 错误问题

Spark 错误问题

作者: heichong | 来源:发表于2019-10-16 15:51 被阅读0次

    1. 在windows下启动spark程序,报错如下

    java.io.IOException: (null) entry in command string: null chmod 0644 C:\Users\xxxx\AppData\Local\...
    

    或者如下错误

    java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
    

    解决方式:

    • 创建目录:D:\setup\hadoop 用来保存hadoop相关文件
    • https://github.com/steveloughran/winutils.git下载相关文件,注意hadoop版本,我的是3.0.0,所有使用hadoop-3.0.0文件夹下的文件
    • 把hadoop-3.0.0下的文件copy到D:\setup\hadoop
    • 配置环境变量:HADOOP_HOME=D:\setup\hadoop path添加 %HADOOP_HOME%\bin

    2. spark程序提交到集群,报NoClassDefFoundError: scala/runtime/LambdaDeserialize错误

    如果程序在集群运行时,报如下错误

    Caused by: java.lang.NoClassDefFoundError: scala/runtime/LambdaDeserialize
    

    基本上是由于集群的spark使用的scala版本与本地编译时使用的版本不一致导致的。
    通过集群环境执行spark-shell,可以看到集群使用的scala版本为2.11.12

    [hadoop@lfg01 ~]$ spark-shell
    Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
    Setting default log level to "WARN".
    To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
    Spark context Web UI available at http://lfg01:4040
    Spark context available as 'sc' (master = local[*], app id = local-1571298365414).
    Spark session available as 'spark'.
    Welcome to
          ____              __
         / __/__  ___ _____/ /__
        _\ \/ _ \/ _ `/ __/  '_/
       /___/ .__/\_,_/_/ /_/\_\   version 2.4.4
          /_/
    
    Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_201)
    Type in expressions to have them evaluated.
    Type :help for more information.
    
    scala>
    

    所以,本地开发环境上,下载scala 2.11.12,修改idea的sdk为2.11.12,重新打包、上传即可。

    相关文章

      网友评论

          本文标题:Spark 错误问题

          本文链接:https://www.haomeiwen.com/subject/ioufpctx.html