zoukankan      html  css  js  c++  java
  • spark on yarn运行产生jar包冲突问题

    1.1 问题描述

    Spark Streaming程序解析protobuf序列化的数据时,--jars 来添加依赖的protobuf-java-3.0.0.jar包,使用local模式程序正常,使用yarn模式时会报找不到方法的错误,如下所示:

    image.png

    1.2 解决方法

    分析local模式能运行,yarn模式不能运行的原因是,用户提交的protobuf-java-3.0.0.jar与SPARK_HOME/lib下的protobuf-java-2.5.0.jar冲突了,默认会优先加载SPARK_HOME/lib下的jar,而不是你程序的jar,所以会发生“ NoSuchMethodError”。

    解决方法:提交参数添加 --conf spark.executor.extraClassPath=$user_jars

    如下图所示,注意protobuf-java-3.0.0.jar包要分发到所有节点

    image.png

    此类问题相关参数总结:

    属性名称 默认值 含义
    spark.driver.extraClassPath (none) 附加到driver的classpath的额外的classpath实体。这个设置存在的主要目的是Spark与旧版本的向后兼容问题。用户一般不用设置这个选项
    spark.executor.extraClassPath (none) 附加到executors的classpath的额外的classpath实体。这个设置存在的主要目的是Spark与旧版本的向后兼容问题。用户一般不用设置这个选项
    spark.driver.userClassPathFirst false 实验性)当在driver中加载类时,是否用户添加的jar比Spark自己的jar, 优先级高。这个属性可以降低Spark依赖和用户依赖的冲突。它现在还是一个实验性的特征。
    spark.executor.userClassPathFirst false 实验性)当在executor中加载类时,是否用户添加的jar比Spark自己的jar优先级高。这个属性可以降低Spark依赖和用户依赖的冲突。它现在还是一个实验性的特征。

    订阅关注微信公众号《大数据技术进阶》,及时获取更多大数据架构和应用相关技术文章!

  • 相关阅读:
    传Windows 9预览版今秋发布
    谷歌上市十周年 成长为全球第二大技术公司
    Twitter CEO:有望进军中国 不会改变原则
    免费获得NOD32 半年、1年 激活码-14.08.12到期
    卡巴斯基正式版2015 简体中文版已经发布
    Google 宣布支持中文邮箱地址
    图片:走进柯达电影胶片厂
    Microsoft Visual Studio Ultimate 2013 with Update 3 CN+EN
    DataFrame衍生新特征操作
    isolation forest进行异常点检测
  • 原文地址:https://www.cnblogs.com/xiaodf/p/9190178.html
Copyright © 2011-2022 走看看