Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 火花是如何占据记忆的_Apache Spark - Fatal编程技术网

Apache spark 火花是如何占据记忆的

Apache spark 火花是如何占据记忆的,apache-spark,Apache Spark,如果我的服务器有50GB内存,则Hbase使用的是40GB。当我运行Spark时,我将内存设置为——executor memory 30G。因此Spark将从Hbase中获取一些内存,因为只剩下10GB。 另外一个问题,如果Spark只需要1GB内存,但我给了Spark 10G内存,Spark会占用10GB内存吗 根据部署模式,行为会有所不同。如果您使用的是本地模式,那么--executor memory将不会更改任何内容,因为您只有1个executor,这是您的驱动程序,因此您需要增加驱动程序

如果我的服务器有50GB内存,则Hbase使用的是40GB。当我运行Spark时,我将内存设置为
——executor memory 30G
。因此Spark将从Hbase中获取一些内存,因为只剩下10GB。
另外一个问题,如果Spark只需要1GB内存,但我给了Spark 10G内存,Spark会占用10GB内存吗

根据部署模式,行为会有所不同。如果您使用的是本地模式,那么
--executor memory
将不会更改任何内容,因为您只有1个executor,这是您的驱动程序,因此您需要增加驱动程序的内存

如果您使用独立模式并以群集模式提交作业,则以下内容适用:-

  • --执行器内存
    是每个执行器所需的内存。它是执行器堆大小。默认情况下,60%的已配置--executor内存用于缓存RDD。剩余40%的内存可用于任务执行期间创建的任何对象。这相当于-Xms和-Xmx。因此,如果您提供了比可用内存更多的内存,那么您的执行者将显示关于内存不足的错误

  • 根据部署模式的不同,行为会有所不同。如果您使用的是本地模式,那么
    --executor memory
    将不会更改任何内容,因为您只有1个executor,这是您的驱动程序,因此您需要增加驱动程序的内存

    如果您使用独立模式并以群集模式提交作业,则以下内容适用:-

  • --执行器内存
    是每个执行器所需的内存。它是执行器堆大小。默认情况下,60%的已配置--executor内存用于缓存RDD。剩余40%的内存可用于任务执行期间创建的任何对象。这相当于-Xms和-Xmx。因此,如果您提供了比可用内存更多的内存,那么您的执行者将显示关于内存不足的错误

  • 当您给Spark executor 30G内存时,操作系统不会给它实际的物理内存。但当您的执行器需要实际内存来缓存或处理时,这将导致您的其他进程(如hbase)继续交换。如果系统的交换设置为零,则将面临OOM错误


    操作系统交换掉进程的空闲部分,这可能会使进程运行得非常慢。

    当您给Spark executor 30G内存时,操作系统不会给它实际的物理内存。但当您的执行器需要实际内存来缓存或处理时,这将导致您的其他进程(如hbase)继续交换。如果系统的交换设置为零,则将面临OOM错误


    操作系统会替换掉进程中的空闲部分,这可能会使您的进程运行非常缓慢。

    部分回答了您的问题。对于完整的解决方案,您需要添加更多关于环境的信息,以及当您说我给了Spark 10G内存时,您在谈论哪个参数?请在您的问题中添加相同的内容,我将详细说明提供的回答。部分回答了您的问题。对于完整的解决方案,您需要添加更多关于环境的信息,以及当您说我给了Spark 10G内存时,您在谈论哪个参数?请在您的问题中添加相同的内容,我将详细说明所提供的答复。