现在有个spark streaming的任务,读取hdfs上的数据,是以 spark on yarn的方式运行的,发现当hadoop集群有很大的job在运行时,spark读取数据出错,所以需要对计算资源做隔离。因为hadoop 2.6的默认资源调度器是Capacity Scheduler,所以讲大的job配置在单独的队列里,并限制其使用的资源量,而其他的任务配置成另外一个队列。这样,当资源占用过多的job运行时,就不会影响到spark的实时任务了。
另外发现,map task 的数目应该选取合适的值,减少并行的map task的数量,反倒可能加快job的执行速度