Spark 1.4执行SQL查询过程中发现driver端Spark作业进程占用内存过大
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5109 liuxinmi 20 0 9152m 8.5g 18m S 99.9 13.5 7:04.13 java
15632 liuxinmi 20 0 9172m 8.5g 18m S 99.9 13.6 7:58.39 java
22145 liuxinmi 20 0 9155m 8.2g 18m S 99.9 13.1 3:47.78 java
4332 liuxinmi 20 0 9175m 8.7g 18m S 99.9 13.8 9:16.78 java
作业中做join操作时进行了broadcast。
被broadcast的表需要从driver端发送到executor机器,当较大时会撑满driver端内存。
可通过调整spark.sql.autoBroadcastJoinThreshold大小解决。