美文网首页
Scala-Spark 生成jar之后再命令行执行 出现GC o

Scala-Spark 生成jar之后再命令行执行 出现GC o

作者: KATHY_932c | 来源:发表于2019-02-27 03:18 被阅读0次

    之前一直在intellJ里面执行代码,所有的输入命令都是用内置的Edit Configuration写好的,原本以为会没有问题,但是一旦生成jar之后再命令行里面修改就会一直在最后出现GC overhead Limit,如图

    然后在网上多方搜寻,终于找到了解决方法,首先执行spark-submit的时候去http://localhost:4040/jobs/

    检查自己的内存用的是多大,这里有一个Storage Memory 可以看到自己的memory是多大,一般在IntellJ里面系统会自己设置成大概在900MB左右,但是进入系统本身的命令行就只有大概300MB,所以会一直显示GC overhead Limit. 修改过之后就可以把这个问题解决了。

    下面主要是一些如何修改的干货!

    1. 首先进入自己的spark的包的位置

    2.进入conf 文件夹

    3.复制spark-env.sh.template文件,并且修改名称叫做spark-env.sh

    3.1 cp spark-env.sh.template spark-env.sh

    3.2 vim spark-env.sh

    加入下面两个命令

    export SPARK_DRIVER_MEMORY=4g

    export SPARK_EXECUTOR_MEMORY=4g

    4. 之后保存之后再去命令行里面执行scala代码,再去http://localhost:4040/jobs/,检查自己的内存使用情况,如果出现我图一所给出的900MB,就是基本上解决了GC overhead Limit这个问题,但是如果设置完了之后还是不能执行,或者还是报相同的错误,首先不妨可以试试再把内存提高,再不然可以修改一下代码里面有关于shuffle的地方,或者将aggregateByKey, GroupByKey这些需要大量时间和内存的地方优化一下,就可以啦,希望大家都能debug成功!

    相关文章

      网友评论

          本文标题:Scala-Spark 生成jar之后再命令行执行 出现GC o

          本文链接:https://www.haomeiwen.com/subject/pcwtuqtx.html