2017-05-19 51 views
0

我想列出在Hadoop集羣上運行的應用程序。我可以得到列表中的應用現狀進行過濾,如下所示:紗線應用-list:如何過濾今天或過去24小時的列表?

>yarn application -list -appStates FINISHED 

但仍然拉起整個歷史(過去的4-5天,我想基於紗線時間軸服務器配置)。

有沒有一種方法可以過濾特定的日期或類似過去24小時?

回答

1

您可以使用RM Apps API來執行此操作。對於一個簡單的測試,你可以運行:

$ date +"%s" 
1495215569 
$ let x=1495215569-86400 
$ echo $x 
1495129169 
$ curl 'RMURL/ws/v1/cluster/apps?startedTimeBegin=1495129169000' | python -m json.tool 

該拉時的日期被減一天(86400秒)運行啓動,並顯示他們的應用程序。您需要添加000,因爲時間參數需要毫秒而不是秒。支持的參數是:

  • startedTimeBegin - 開始與這一次的開始時間的應用,因爲時代
  • startedTimeEnd以毫秒爲單位指定的 - 與開始時間應用這個時候結束,因爲時代
  • finishedTimeBegin以毫秒爲單位指定 - 與完成時間與應用這個時候開始,因爲時代
  • finishedTimeEnd以毫秒爲單位指定 - 應用與完成時間與此時間結束,紀元以來毫秒指定

查看https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Applications_API瞭解更多詳情。

+0

太棒了@ tk421。稍微修改一下,我打算在過去24小時列出所有SPARK和SUCCEEDED應用程序: 'curl「http://atl-hdp-022.afy.gbl:8088/ws/v1/cluster/apps? startedTimeBegin ='date +%s%3N -d'1 days ago''&startedTimeEnd ='date +%s%3N'&applicationTypes = SPARK&finalStatus = SUCCEEDED「' – Viren

+0

是的,這看起來應該可行。 – tk421

相關問題