Spark的task一般都会分发到它所需数据的那个节点,这称之为”NODE_LOCAL”。
但在资源不足的情况下,数据所在节点未必有资源处理task,因此Spark在等待了“spark.locality.wait”所配置的时间长度后,会退而求其次,分发到数据所在节点的同一个机架的其它节点上,这是“RACK_LOCAL”。
当然,也有更惨的,就是再等了一段“spark.locality.wait”的时间长度后,干脆随便找一台机器去跑task,这就是“ANY”策略了。
【Spark本地化调度】来自: Spark技术日报-Spark Streaming应用与实战全攻略
推荐阅读
- spark|spark UDAF根据某列去重求合 distinct sum
- 大数据|spark UDAF 自定义聚合函数 UserDefinedAggregateFunction 带条件的去重操作
- Spark 写入 MySQL 乱码问题
- SCD|一种基于SparkSQL的Hive数据仓库拉链表缓慢变化维(SCD2+SCD1)的示例实现
- spark算子--action篇
- 大数据|Spark调优解决方案(一)之提交任务时合理分配资源
- spark|spark2.1 新特性
- Spark Aggregate算子