为什么Driver进程不能退出
问题
运行Spark Streaming任务,然后使用yarn application -kill applicationID命令停止任务,为什么Driver进程不能退出?
回答
使用yarn application -kill applicationID命令后Spark只会停掉任务对应的SparkContext,而不是退出当前进程。如果当前进程中存在其他常驻的线程(类似spark-shell需要不断检测命令输入,Spark Streaming不断在从数据源读取数据),SparkContext被停止并不会终止整个进程。
如果需要退出Driver进程,建议使用kill -9 pid命令手动退出当前Driver。