yarn的用途
如果使用yarn进行资源管理,那么各种任务在启动的时候,都会通过yarn申请资源,从而会在yarn里留下痕迹。通过resource manager可以看到有多少应用在yarn里执行。
为什么yarn里有很多应用执行了很多天也不结束?
在使用RM观察yarn应用清单的时候,往往会发现很多 应用持续执行了很多天,Name都是Hive On Spark,用户都是Hive。这是什么情况?
这个往往是用户使用了一个客户端,连在大数据平台上,始终没有退出导致。例如,用户用hue,或者beeline,一旦执行了connect命令,这个session就是一个yarn 应用。如果不退出,则它就会作为一个任务一直挂在RM里,不结束。也许这个时候,它并占用太多资源。
如何把作业给明显地区分出来?
如果都用beeline去连接数据库,如何区分作业是否跑完?会不会作业看起来都一个样?
如果全部使用默认设置,上述情况的确会发生。但是也有办法。那就是通过设置job name来搞定。
对于spark作业来说,有一个spark.yarn.tags属性可以在beeline里先设置好,然后再执行sql。这个时候,在RM里,就可以查到这个作业的tags了。
例如:
beeline> set spark.yarn.tags="mac,debug"
beeline> select count(*) from table_1;