博客
关于我
YARN环境中应用程序JAR包冲突问题的分析及解决
阅读量:797 次
发布时间:2023-04-04

本文共 588 字,大约阅读时间需要 1 分钟。

Hadoop on YARN 环境下,MapReduce程序运行时JAR包查找的原理以及解决JAR包冲突的方法

在Hadoop框架中,预置的JAR包会优先被加载,这可能导致与应用程序的JAR包版本冲突。以下是解决问题的详细步骤。

一、问题分析我的MR程序使用jackson库1.9.13版本,而Hadoop预置1.8.8版本,导致无法使用新接口。运行时出现错误:org.codehaus.jackson.JsonNode.asText()。

二、YARN执行流程

  • AppMaster启动并分配任务到NodeManager。
  • NodeManager下载并运行Container。
  • Container通过launch_container.sh脚本启动,JVM CLASSPATH优先加载Hadoop预置JAR包。
  • 三、解决方法

  • 调整CLASSPATH顺序,将应用JAR包目录添加到前面。
  • 在运行命令中使用-libjars参数,将应用依赖JAR包打包。
  • 四、代码修改在MRApps类中修改YARN_APPLICATION_CLASSPATH配置,确保应用JAR包优先加载。

    五、优化方案

  • 读取源码,理解YARN如何设置CLASSPATH。
  • 修改配置,调整JAR包加载顺序。
  • 使用-libjars参数打包依赖JAR包。
  • 通过以上方法,可以确保应用程序的JAR包优先加载,解决冲突问题。

    转载地址:http://gcrfk.baihongyu.com/

    你可能感兴趣的文章
    mysqli
    查看>>
    MySQLIntegrityConstraintViolationException异常处理
    查看>>
    mysqlreport分析工具详解
    查看>>
    MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
    查看>>
    Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
    查看>>
    mysql_real_connect 参数注意
    查看>>
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>