赫拉(hera)分佈式任務調度系統之操作文檔

前言

最近發現我總是站在我的角度來使用hera,每個功能都很清楚,但是對於使用者,他們是不清楚的,所以提供一篇hera操作文檔。有問題可以在下面回覆

開源地址

操作文檔

登錄和註冊

hera上登錄和註冊其實分爲兩個部分,即用戶和用戶組(如果使用的是hera2.4版本以下的沒這個功能)

用戶

用戶的登錄url地址爲 /login,頁面效果如圖
在這裏插入圖片描述
請注意看提示,用戶名爲你註冊的郵箱的前綴。
在這裏插入圖片描述

  • 郵箱:任務失敗(手動恢復或者自動調度觸發並且達到任務重試次數)後發送郵件
  • 手機號:任務失敗(手動恢復或者自動調度觸發並且達到任務重試次數)後打電話
  • 工號:任務失敗(手動恢復或者自動調度觸發並且達到任務重試次數)後發送釘釘/企業微信消息
  • 部門: 這裏的部門,即是用戶組,每一個用戶一定屬於一個用戶組。用戶註冊後可以聯繫管理員修改組
    Tip:這裏的工號在數據庫中只設置了長度爲5的字符,如果需要更長,請聯繫管理員修改

用戶組

用戶組對應的 url 爲 /login/admin,頁面效果如下
在這裏插入圖片描述
用戶組也可以登錄,使用你註冊的用戶名和密碼登錄即可。
在這裏插入圖片描述

  • 賬號: 注意,這裏的用戶組賬號對應到 linux 機器上的用戶。在每個任務執行的時候都會切換到該用戶組來執行任務,來實現 linux 多租戶的功能
  • 郵箱:所屬於該用戶組的用戶所創建的任務失敗(手動恢復或者自動調度觸發並且達到任務重試次數)後發送郵件
  • 手機:暫時無用
  • 賬號描述:部門描述等額外信息

總結

用戶組和用戶的含義在公司裏解釋:

用戶組對應我們公司的各個部門,每個部門的 leader 持有該賬戶。
用戶對應部門下的員工,每個員工持有該賬戶

用戶組和用戶的含義在 hera 裏的解釋:

用戶組表示一大堆任務的所有者,hera 裏面任務的權限粒度只到用戶組級別,也就是說,所屬於同一個用戶組的用戶可以訪問彼此的任務。

首頁

目前首頁放的是一系列的任務信息,簡單介紹以下
在這裏插入圖片描述
在這裏插入圖片描述

  • 今日總任務數: 從今天凌晨到此刻,在 hera 上執行的總的任務數
  • 失敗任務數:從今天凌晨到此刻,在 hear 上執行的失敗的任務數
  • 實時任務狀態:此刻,在 hera 集羣實時運行的任務數量及狀態統計
  • 任務執行狀態:最近7填任務的數量的折線圖
  • 任務時長TOP10:昨日和今日任務的執行時長對比柱狀圖(排序方式爲:今天任務的執行時長耗時)

總結

通過今日總任務數清楚集羣執行了多少任務
通過失敗任務數來查看任務的失敗,以便處理失敗任務。
通過實時任務狀態來判斷集羣是否有任務在執行。
通過任務的執行狀態來大致查看任務最近幾天的執行狀態
通過任務的時長 TOP10 來優化那些耗時長的任務

機器組監控

在這裏插入圖片描述
在這裏插入圖片描述
主要是查看機器的相關信息,沒什麼好說的

系統管理

系統管理頁面只有赫拉的超級管理員才能查看,主要包含用戶、用戶組的審覈及編輯,機器組的新建與刪除、機器組中機器的創建與刪除,下面一一介紹

用戶管理

用戶組

用戶組即是在 /login/admin 地址中註冊的用戶,註冊後會展示在這裏等待管理員審覈
在這裏插入圖片描述
用戶組的操作有審覈通過、審覈拒絕以及在編輯中修改用戶組的郵箱和手機號信息。

用戶

用戶組即是在 /login 地址中註冊的用戶,註冊後會展示在這裏等待管理員審覈
在這裏插入圖片描述
用戶操作主要是對用戶組所屬的用戶進行審覈通過、審覈拒絕以及對用戶的工號、郵箱、電話、所屬用戶組的修改

總結

該頁面主要是 hera 超級管理員的操作,默認爲 hera 組的所有成員,用來審覈用戶以及修改用戶信息

監控管理

監控管理頁面的效果圖如下
在這裏插入圖片描述
監控管理頁面的功能主要是:

  • 添加任務監控人
  • 移除任務監控人

解釋一下什麼是監控人,每一個任務都有一個或多個監控人(關注人),一旦該任務執行失敗(手動恢復/自動調度)就會通過短信、電話、郵件(如果發現無告警,聯繫管理員自行擴展 AlarmCenter.class的電話和微信告警)的方式通知該任務的所有監控人

機器組管理&worker管理

在這裏插入圖片描述
該頁面是爲 hera 的所有 work 進行分組,假設 hera 有4臺 work 分別爲A,B,C,D。其中 A、B 兩臺機器執行spark任務,C、D 兩臺機器執行默認任務。我們就可以在機器組頁面創建兩個機器組分別爲默認組和 spark 組。

在這裏插入圖片描述

然後在 worker管理頁面分別添加 A、B 機器的 ipspark 組,C、D 兩臺機器到默認組。
然後就可以在添加任務的時候選擇所需要執行的機器組了。

注意: 1.機器組管理在`emr`集羣上目前是不支持分組的,也就是說你的分組無效。因爲 `emr` 是 `ssh` 到遠程集羣,並不是在本地執行。 2.在 `worker` 頁面添加機器 `ip` 後不是實時生效的,需要等待半個小時或者手動重啓 `master `。

任務管理

任務管理主要是對調度中心任務的一些信息檢索及查看,主要包含:任務詳情、任務依賴、任務搜索、日誌記錄等

任務詳情

界面展示如圖
在這裏插入圖片描述
該界面展示所有任務的執行的狀態,包括執行次數,執行時長,執行人,執行機器等信息。可以通過右上角的狀態進行勾選想要查看的狀態

  • 狀態 選項有全部、成功、失敗、運行中、等待等任務的幾種狀態
  • 日期 默認選擇今天,可供使用者自己勾選

同時,每一條記錄都是支持點擊查看運行記錄詳情,點擊後的展開圖如下
在這裏插入圖片描述
該詳情其實與調度中心的運行日誌界面基本一致,主要是展示運行的運行記錄,運行結果,運行時長等基本信息

任務依賴

任務依賴,顧名思義就是任務的上下游關係,該界面主要是爲了查看某個任務的上下游任務狀態。
任務狀態由不同的顏色來表示

綠色:執行成功
黃色:正在運行
紅色:失敗或未執行
灰色:關閉

具體操作是:先填入任務 ID,之後點擊上游任務鏈或者下游任務鏈按鈕,此時展示全部會變爲不可點擊狀態,等待展示全部變爲點擊狀態時,點擊一下,任務的依賴關係圖就會繪製完成

上游任務

上游任務一般用來排查當前任務爲什麼沒執行?任務在上游執行到哪裏了?上游哪個任務失敗了需要我手動恢復?等等
在這裏插入圖片描述

下游任務

下游任務一般看當前任務的執行進度,以及哪些任務依賴當前任務。
在這裏插入圖片描述

tips:

  • 任務依賴圖也可以在調度中心直接點擊,無需填寫任務 ID
  • 依賴圖展示完畢後可以把鼠標放在某個任務上面,此時右側的任務狀態信息就會變化
  • 任務依賴圖中的任務支持點擊查看
  • 0 號任務沒有實際意義,僅僅爲了標識依賴圖的開始節點。即:如果你點擊的是上有任務鏈,那麼 0 號任務在最下方,如果你點擊的是下游任務鏈,那麼 0 號任務在最上方

任務搜索

在這裏插入圖片描述
該界面主要根據腳本內容、任務名稱、描述內容、變量內容、任務類型、任務是否開啓等任務條件來模糊搜索該平臺的所有任務,很簡單,就不再介紹。

日誌記錄

在這裏插入圖片描述
該界面主要展示任務的所有操作記錄,點擊記錄右側的查看可以看到操作的詳細內容

在這裏插入圖片描述
主要是爲了方便對比或者找回曾經修改的腳本

有一點需要注意,超級管理員可以看所有用戶組中用戶的操作記錄。如果是普通用戶只能看該組內的用戶操作記錄

開發中心

在這裏插入圖片描述
開發中心,顧名思義,是我們日常開發任務的地方。

在任務欄最外層有兩個文件夾,分別爲個人文檔和共享文檔,區別如下:

  • 個人文檔: 屬於同一個組的用戶共同使用個人文檔內創建的任務
  • 共享文檔: 任意組的人都能查看在共享文檔內創建的任務

新建任務/新建文件夾

在這裏插入圖片描述
在任務欄處可以通過把鼠標放在某個文件夾上然後右鍵來調出任務操作。主要包含增加文件夾、新建 Hive 任務、新建 Shell 任務、新建 Spark 任務、重命名、刪除等操作。

執行任務

大家可能發現腳本區的上方有幾個按鈕,其中執行和執行選中的代碼,就是用來執行腳本內容的。
當在文件夾中新建任務後,就可以寫腳本執行任務了。通過鼠標點擊左側的任務可以進行編輯任務,比如我點擊左側的 echo.sh 任務然後代碼內容寫爲 echo "hello world" ,再然後點擊工具欄的執行按鈕,此時腳本下方會實時輸出任務的執行結果

在這裏插入圖片描述

如果腳本內容分很多段,我只想執行某一部分怎麼辦?
此時可以通過鼠標選中你要執行的代碼,然後點擊上方的執行選中的代碼按鈕即可

在這裏插入圖片描述

日誌查看

在開發中心,日誌查看有兩種方式
1.第一種就是上面那種,通過任務執行,直接在下方查看
2.點擊最下方的歷史日誌

在這裏插入圖片描述
在這裏插入圖片描述
然後就能看詳細的歷史日誌了

上傳資源

點擊腳本上方工具欄的上傳資源按鈕會彈出上傳文件的彈框,通過選擇自己要上傳的文件,點擊上傳按鈕即可完成上傳

在這裏插入圖片描述

注意

1.上傳的文件目前僅支持'py','jar','sql','hive','sh','js','txt','png','jpg','gif' 等擴展名,如果需要其它文件,請聯繫管理員修改
2.上傳成功後會返回一個路徑,請copy下你上傳後的文件地址,以便後面使用。目前還未有界面來維護上傳的資源,在計劃開發中

同步任務

該功能開發中,後續會自動關聯調度中心,關聯調度中心某個任務的配置

保存腳本

腳本會自動保存,如果不放心的話,就點一下吧

調度中心

調度中心,可謂是赫拉的核心操作的地方。在這裏主要用來開發任務,控制任務的開啓/關閉狀態,設置任務的定時時間,任務的依賴,手動執行、手動恢復任務、查看運行日誌,配置告警,查看組下任務狀態等等。下面一一來介紹。

總覽

在這裏插入圖片描述
調度中心主要分三部分,紅框標註的爲任務樹,綠框標註的爲任務的基本信息,藍框標註的爲任務的操作按鈕(任務的操作按鈕和任務組的操作按鈕不一致,此處截取的是任務的操作按鈕)

任務樹

大家可以通過上面截圖中的紅框內容發現,最上方有兩個按鈕,分別爲:我的調度任務和全部調度任務。

  • 我的調度任務:我所屬的用戶組所創建的所有任務
  • 全部調度任務:所有用戶組用戶所創建的所有任務

任務樹中的圖標主要有三種:
在這裏插入圖片描述
1.大目錄

大目錄下只能創建大目錄或者小目錄

2.小目錄

小目錄下面只能創建文件(任務)

3.文件

文件的內容就是任務的腳本

提示:上圖中可以看到點擊98號任務後右側顯示編輯和刪除的按鈕,這兩個按鈕均爲臨時重命名和刪除,刷新後還會存在。需要知道的是,調度中心所有的操作按鈕都在最右側,即總覽所附圖中藍色框標註的部分

任務基本信息

當你在任務樹中點擊某個任務後,任務的基本信息就會改變
在這裏插入圖片描述
包含的內容比較多,我會把主要部分信息介紹一下

  • 任務id :系統自動生成,任務的唯一標識
  • 名稱:新建任務時用戶填寫,最好見名知意,儘可能短
  • 任務類型:編輯任務時可選shell、hive、spark三種類型
  • 自動調度: 自動調度是否開啓,可以通過右側的開啓/關閉按鈕來操作
  • 任務優先級:編輯任務時可選low,medium,high,當隊列中任務很多時會根據該優先級進行分發任務執行
  • 描述:必填項,任務信息的描述
  • 調度類型:編輯任務時可選定時調度、依賴調度,定時調度時需要填寫cron 表達式,依賴調度時需要選擇所依賴的任務 ID
  • 定時表達式:調度類型爲定時調度時所填寫的 cron 表達式
  • 依賴任務:調度類型爲依賴調度時所選擇的依賴任務 ID 的列表
  • 重試次數:任務自動調度/手動恢復失敗時重試的次數
  • 重試間隔:任務自動調度/手動恢復失敗後需要等待多久進行重試
  • 預計時長:整數,0表示無限大。當任務執行超出預計時長時會進行告警
  • 報警類型:任務任務自動調度/手動恢復失敗,並且重試次數已經用完進行郵件、企業微信、電話告警,告警級別依次升高。當選擇電話告警時,三種告警都會觸發
  • 所有人:任務創建者所屬的用戶組
  • 關注人員:任務失敗後告警的人員,默認是任務的創建者。其它用戶也可以在這裏點擊關注或者管理員在監控管理界面添加
  • 管理員:該任務還允許哪些用戶組的用戶操作,可以通過操作按鈕的配置管理員進行添加
  • 重複執行:是否運行同一時間允許兩個或兩個以上實例執行。比如:每個小時觸發的任務,任務的執行時間超出了一個小時,如果設置爲否,則下個小時的任務不會執行,直到漏跑檢測到纔會執行
  • 機器組:該任務需要在哪個機器組執行。機器組的創建請參考上面的機器組管理
  • 區域:任務需要在哪個區域執行。默認是 all ,如果你們的 hera 數據庫做了多區同步,那麼可以選擇需要執行的區域,在不是所選擇的區域執行該任務時會直接設置爲成功。如果需要支持,可以聯繫我加入赫拉開源羣

任務配置項以及腳本內容

上面簡單表述了一下任務的基本信息,下面需要說明任務的配置信息、腳本等
在這裏插入圖片描述
從上往下依次是:任務配置項、腳本內容、繼承的配置項

  • 任務的配置項:是專屬於該任務的配置,以 key=value 對的形式存在,換行分割。
  • 腳本內容:供開發者編寫的腳本內容,腳本內容要根據任務的類型來寫,如果是 spark 任務就寫 spark-sql,如果是 hive 任務就寫 hive-sql,如果是 shell 任務就寫 shell 腳本
  • 繼承的配置項:在 hera 中允許配置項的繼承,凡是任務都能夠使用其所有父級的目錄,所以 hera 可以把一些公共的配置配置到目錄上。如果任務的配置項和繼承配置項有重複 key 的,那麼以最近原則爲準,取任務的配置而忽略繼承的配置。

有一點需要說明的是,hera 本身支持區域代碼前綴的變量,那麼該變量就會在指定區域使用
我們公司共有五個區域

  • AY:中國
  • EU:歐洲
  • US:美國
  • IND:印度
  • UE:美東
    我的配置項裏有兩個配置:
    在這裏插入圖片描述

然後我選擇的執行區域爲美國和歐洲,配置項裏只有歐洲和美國開頭的name 變量,然後我在不同區域執行該任務時:

  • 中國區域
    在這裏插入圖片描述
    由於執行區域只有歐洲(EU)和美國(US),所以在中國(AY)執行直接設置爲成功,然後通知下游任務執行

  • 歐洲區域
    在這裏插入圖片描述
    由於我們設置的配置項的 EU.name=歐洲 所以歐洲區域讀取的變量內容爲歐洲

  • 美國區域
    在這裏插入圖片描述
    美國區域讀取的就是 US.name=美國 的變量內容


腳本內容
腳本內容其實不想說的,不過又擔心大家不懂,還是舉幾個例子

  • shell任務
    其實 shell 任務可以執行任務任務,只要是使用 shell 腳本可以操作的,這裏都可以操作,就舉個 shell 實現 spark-submit 的任務
    在這裏插入圖片描述
  • hive任務
    hive 任務就是使用 hive sql 寫的腳本,也舉個例子

在這裏插入圖片描述

  • spark任務
    spark 任務就是使用 spark sql 寫的任務。spark 任務和 hive 任務差不多,不過對於 spark 任務通常我們會配置 --executor-memory --num-executors 等參數。hera 默認已經配置了這些參數,當你覺得資源不夠時,可以通過在配置項增加 hera.spark.conf 變量覆蓋默認參數

在這裏插入圖片描述

操作按鈕

操作按鈕包含了調度中心的所有點擊操作,任務操作按鈕和組操作按鈕有些許不同,下面一一介紹

組操作按鈕

在這裏插入圖片描述
基本信息模塊與任務模塊差不多,不再介紹

  • 任務總覽
    任務總覽可以查看該組下的所有任務執行狀態信息
    在這裏插入圖片描述
    通過該功能我們可以知道那些任務執行了,那些任務沒執行的原因是上游哪個任務失敗了,右側按鈕可以進行再次過濾

  • 正在運行
    與任務總覽類似,只不過只看正在運行的任務

  • 失敗記錄
    與任務總覽類似,只不過只看失敗的任務

  • 添加組
    該功能在鼠標放在大目錄上時顯示,能夠在該組下面創建新的組

  • 編輯
    編輯該組配置信息和基本信息

  • 添加任務
    該功能在放在小目錄上時顯示,能夠在該組下面創建新的任務

  • 刪除
    字面意思

  • 配置管理員
    當其它用戶組需要在該組下添加任務時,需要有該組的權限。通過配置管理員的方式可以實現

任務操作按鈕

  • 運行日誌
    顧名思義,運行日誌查看任務的執行日誌信息,當點擊該任務後會彈出一個模態框
    在這裏插入圖片描述
    該模態框包含了該任務所有的歷史執行記錄,主要包含開始時間、結束時間、執行的機器ip、執行人、執行時長等信息。左側的+號按鈕可以展開查看詳細的執行日誌。

  • 操作記錄
    操作記錄主要記錄了該任務的歷史所有操作記錄
    在這裏插入圖片描述
    主要包含操作類型、操作人、操作時間等信息,左側的 + 號同樣支持展開
    查看詳細操作
    比如,我展開更新腳本內容
    在這裏插入圖片描述
    左側爲歷史的腳本內容,右側爲最新的腳本內容。如果想查找歷史腳本可以從這裏恢復

  • 版本生成
    在赫拉中任務的執行需要版本一說,所以每個任務如果要執行都需要版本。赫拉本身會在每個小時的整點附近自動生成版本,如果某人想立刻生成版本,需要點擊一下版本生成按鈕(目前2.4及以下版本不支持依賴任務版本生成,僅支持定時任務,如果需要的話,可以先把任務設置爲定時任務,生成版本後再切換回去。2.4.1版本以上已經支持了依賴任務的版本生成)。

  • 依賴圖
    依賴圖與上面介紹的一樣,不再敘述

  • 編輯
    默認情況下 基本信息腳本配置項腳本是隻讀的狀態,只有點擊編輯後才能夠進行編輯這些信息

  • 手動執行
    執行一次該任務,執行成功不會通知下游依賴任務。手動執行的時候需要選擇一個版本,如果沒有版本就要等待版本生成或者手動生成

  • 手動恢復
    執行一次該任務,執行成功通知下游依賴任務。其它與手動執行一致

  • 開啓/關閉
    任務是否開啓自動調度,默認是關閉狀態。開啓狀態的任務失敗會進行告警。

  • 失效
    可以理解爲關閉。

  • 刪除
    字面含義

  • 配置管理員
    該功能一般在該任務需要交接給其它部門的人時使用,凡是在配置管理員內的用戶組的用戶都能操作該任務

  • 關注該任務
    當前登錄用戶關注該任務的失敗告警通知


關注公衆號獲取最新文章哦
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章