Spark任务卡死

来源:互联网 发布:域名购买后是永久的吗 编辑:程序博客网 时间:2024/04/30 01:06

spark阶段

parkcore standalone /yarn 模式运行的时候 client 模式正常运行, cluster 模式卡死

spark-env.sh 里的配置 

SPARK_MASTER_PORT=7077

SPARK_MASTER_WEBUI_PORT=8080

SPARK_WORKER_CORES=2

SPARK_WORKER_MEMORY=1G      #开辟多大内存运行 worker

SPARK_WORKER_PORT=7078

SPARK_WORKER_WEBUI_PORT=8081

SPARK_WORKER_INSTANCES=1

  spark-submit \

  --driver-memory MEM:  # driver运行的内存大小,默认1024M

  --executor-memory                #executor 运行内存大小,默认 1024M

当使用 client模式运行的时候,master运行在本机,占用linux机器的内存;

 master              占用 虚拟机 1G 内存

Worker 1G ------executor  1G  运行任务

当使用 master模式的时候,由于使用的是为分布模式,所以master只能运行在本机的worker上,占用 1G的内存,由于worker内存用完,当执行任务的时候executor分配不到内存,所以卡死

Worker (1G) ------ master 占用1G

                             ----- executor  卡死

 

解决方法:

方式一.执行任务打时候规定 driver的内存大小

spark-submit   \

--master spark://hadoop-senior01.ibeifeng.com:7077   \

--deploy-mode cluster \

--driver-memory 206M \

--executor-memory 206M \

/home/kequan/data/sparkdemo01.jar

 

方式二.修改配置,扩大driver的运行内存 SPARK_WORKER_MEMORY=2G

总结配置运行参数的时候,core是虚拟出来的,大小一般不会影响,但是最好设置为虚拟机 cores的一半;

挂掉的主要原因就是内存不足,所以在配置上设置为 driver 和 worker 的内存总和 (一般比linux 总内存低)

 

 

 

原创粉丝点击