升级 spark 2.3问题:Spark Streaming日志级别设置,最小堆内存设置

一、内存问题

    1、旧集群

            spark 1.6.1

            jdk 1.7 或 1.8

            jvm 堆内存分配,直接分配的为driver申请的内存(最大、最小堆内存相等

    2、新集群

            spark 2.3.

            jdk 1.8

            jvm 堆内存分配,刚开始分比较小的内存,当内存不够时,增加内存(主要是老年代内存),新生代内存也有增长,但是比较小(280M-556M),

    问题分析:

    查看spark 源码:org.apache.spark.launcher.Main发现如下问题:

    Spark 2.3 分配的jvm 堆的大小时,只分配cmd.add("-Xmx" + memory);未分配最小堆内存

    Spark 1.6 分配的jvm 堆的大小时,cmd.add("-Xmx" + memory);cmd.add("-Xms" + memory);

    问题解决:

            1、添加配置:--conf spark.driver.extraJavaOptions="-Xms55G” \

            2、修改spark-class的cmd构建出的最小堆内存:CMD=("${CMD[@]}" "-Xms55G")

while IFS= read -d '' -r ARG; do
# echo "*****$ARG*****"
 # CMD+=("$ARG")
  if [ "$ARG" = "-cp" ]; then
   CMD=("${CMD[@]}" "-Xms55G")
   echo ${CMD[@]}
  fi
  CMD+=("$ARG")
done < <(build_command "$@")

二、日志级别设置

        1、spark 1.6.1-日志级别设置

                Logger.getLogger("org").setLevel(Level.WARN)

        2、spark 2.3.0-日志级别设置

                a、步骤1的设置,只在driver端生效,executor端无效,默认日志级别为INFO

                b、设置executor端日志级别为WARN

                    1)从 $SPARK_HOME/conf copy  log4j.properties.template 到指定目录,并修改名称为 log4j.properties,这里的指定目录为当前应用程序jar包所在目录下的conf文件夹

                    2)添加如下配置信息

--conf spark.executor.extraJavaOptions="-Dlog4j.configuration=log4j.properties" \

--files conf/metrics.properties,conf/log4j.properties \

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值