博客
关于我
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/

    你可能感兴趣的文章
    MySQL 中锁的面试题总结
    查看>>
    MySQL 中随机抽样:order by rand limit 的替代方案
    查看>>
    MySQL 为什么需要两阶段提交?
    查看>>
    mysql 为某个字段的值加前缀、去掉前缀
    查看>>
    mysql 主从
    查看>>
    mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
    查看>>
    mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
    查看>>
    mysql 主从关系切换
    查看>>
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 优化 or
    查看>>
    mysql 优化器 key_mysql – 选择*和查询优化器
    查看>>
    MySQL 优化:Explain 执行计划详解
    查看>>
    Mysql 会导致锁表的语法
    查看>>
    mysql 使用sql文件恢复数据库
    查看>>
    mysql 修改默认字符集为utf8
    查看>>
    Mysql 共享锁
    查看>>
    MySQL 内核深度优化
    查看>>
    mysql 内连接、自然连接、外连接的区别
    查看>>
    mysql 写入慢优化
    查看>>
    mysql 分组统计SQL语句
    查看>>