傳統的數據開發流程git
開發人員經過公共帳號登陸安裝了Hive、Hadoop客戶端的gateway機器;數據庫
編寫本身的腳本,調試代碼,完成後經過crontab配置腳本定時執行;架構
爲了防止腳本被其餘同事修改,一些謹慎的同事會在每次開發完本身的腳本後同步一份到本機,後面爲了實現版本控制,把腳本同步到了git;分佈式
傳統的開發流程面臨的問題oop
效率低下。測試
腳本或代碼沒有版本控制,開發人員想回滾到之前的版本很不方便。大數據
若開發人員疏忽,添加新的需求後未通過調試,將可能會影響生成的數據,進而影響線上業務。版本控制
任務缺少權限控制,可登錄gateway的任何人均可修改、運行腳本。調試
對於腳本中依賴的表,只能預估它天天產生的時間,一旦它產出延遲,將影響數據的產出。隊列
任務失敗無任何報警,只能依靠人工發現。
任務失敗從新恢復後沒法自動通知依賴下游從新生成。
任務失敗要逐層向上遊查找最源頭的任務失敗緣由,排查異常繁瑣。
一旦gateway機器故障,全部的任務都將灰飛煙滅,毫無疑問這將是一場災難。
大數據開發平臺應具有的功能特徵
Mars具有的功能特性:
引入版本控制,方便開發人員回滾到以前版本,快速恢復線上調度的任務。
規範大數據開發、測試、上線的流程。
權限控制,任務的全部人、管理員才能夠操做任務。
依賴調度,全部依賴的任務執行成功,自動觸發自身執行。
任務執行失敗,發送執行失敗消息給任務全部人,人工介入。
手動恢復任務,恢復成功後,自動通知下游的任務從新執行。
任務依賴圖譜,成功失敗用不一樣顏色區分,失敗源頭一目瞭然。
任務信息存儲在數據庫,Mars機器採用分佈式系統架構,即便單臺機器故障也不會影響使用。
輸入輸出檢測,判斷輸入表是否準備好,檢測輸出表數據是否完整。
合理使用Hadoop資源。用戶只能使用所屬團隊指定的hadoop隊列。