spark1.6升级到spark2.4的常见问题

  1. 查看hadoop版本
    spark1.6升级到spark2.4的常见问题_第1张图片
    hadoop2.7可支持最新的spark2.4.0版本,下载地址为http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz

  2. 解压,进入conf目录,拷贝旧版本spark中的spark-env.sh、spark-defaults.conf、hive-site.xml三个文件到该目录下

  3. 若yarn模式的spark运行时出现
    NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig错误,可能是因为yarn的lib包下面使用的是1.9的jar,而spark下使用的是2.22.2的jar包,
    /opt/beh/core/hadoop/share/hadoop/yarn/lib/jersey-client-1.9.jar
    /opt/beh/core/hadoop/share/hadoop/yarn/lib/jersey-core-1.9.jar
    /opt/beh/core/spark/jars/jersey-common-2.22.2.jar
    /opt/beh/core/spark/jars/jersey-server-2.22.2.jar
    /opt/beh/core/spark/jars/jersey-media-jaxb-2.22.2.jar
    /opt/beh/core/spark/jars/jersey-client-2.22.2.jar

    将 jersey-core-1.9.jar 和 jersey-client-1.9.jar 这两个包拷贝到$SPARK_HOME/jars目录下,并将该目录下原本的 jersey-client-2.22.2.jar删除或改名,yarn模式的spark就可以正常启动。

  4. 若出现 __spark_conf__/__hadoop_conf__: bad substitution 错误
    在spark-defaults.conf文件中添加两个参数:
    spark.driver.extraJavaOptions -Dhdp.version=XXX
    spark.yarn.am.extraJavaOptions -Dhdp.version=XXX
    其中XXX为hadoop的版本

  5. 使用 ./bin/spark-shell --master yarn --deploy-mode client 测试,spark启动成功,最后将其bin目录设置到系统环境变量中

  6. 如果跑任务过程中出现unable to save case-sensitive schema for table
    那是spark sql的一个新的参数, spark.sql.hive.caseSensitiveInferenceMode, 默认设置为INFER_AND_SAVE, 如果hive表没有写权限就会报错,可在spark-defaults.conf中将其修改为NEVER_INFER,也可减少第一次执行时模式推断的开销

你可能感兴趣的:(bigdata)