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 總內存低)