在spark,MapReduce 或 Flink 程序里面制定环境变量

2 篇文章 0 订阅
2 篇文章 0 订阅

以jdk来举例,当我们需要 更高版本的jdk时,而默认的环境引用的是低版本的jdk,会引发如下错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/iteblog/mobile/UserMobileInfo : Unsupported major.minor version 52.0

因为某些原因下,我们并不方便进行集群jdk的升级,此时我们就需要在程序制定环境,但是前提是我们必须在 YARN 集群的每台节点安装好相应 JDK 版本。

1:spark指定方式

1>:通过指定SPARK_YARN_USER_ENV

范例:export SPARK_YARN_USER_ENV="JAVA_HOME=/opt/jdk1.8.0_151"

2>:通过指定spark.executorEnv.JAVA_HOME 和 spark.yarn.appMasterEnv.JAVA_HOME

$SPARK_HOME/bin/spark-submit --master yarn-cluster  \

        --executor-memory 5g \

        --num-executors 10 \

        --queue ia \

        --conf "spark.yarn.appMasterEnv.JAVA_HOME=/opt/jdk1.8.0_151" \

        --conf "spark.executorEnv.JAVA_HOME=/home/opt/jdk1.8.0_151" \

        --executor-cores 1 \

也可以将这个参数写到 $SPARK_HOME/conf/spark_default.conf 文件中

2: MapReduce

可以直接在程序中设置相关env参数来调试

conf.set("mapred.child.env", "JAVA_HOME=/opt/jdk1.8.0_151");

conf.set("yarn.app.mapreduce.am.env", "JAVA_HOME=/opt/jdk1.8.0_151");

3:flink

可以在 $FLINK_HOME/conf/flink-conf.yaml  设置如下参数

env.java.home: /opt/jdk1.8.0_151"

注:上面所说的 JDK 路径全部都是指 YARN 集群的 JDK 路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值