魔盒——日拱一卒,功不唐捐把

来源:http://www.cnblogs.com/zhengyun_ustc/archive/2017/07/02/datacube.html
-Advertisement-
Play Games

而這就是我們最初設定的願景。 加速高質量的交付,提升開發者的價值。我們技術團隊所做的每一個步驟、每一個過程都是疊加的、遞增的,日拱一卒,功不唐捐。 ...


鄭昀 創建於2017/6/29 最後更新於2017/6/30

關鍵詞:大數據,Spark,SparkSQL,HBase,HDFS,工作流,任務,Flow,Job,監控報警

提綱:

  1. 為什麼要大數據協作?

  2. 什麼是願景?

  3. 我們的DataCube

  4. 工作流什麼樣?


DataCube 是數據中心劉奎組推出的大數據協作平臺。從2016年3月29日我提出數據中心的大一統平臺建設目標至今,已經過去了整整一年零三個月時間。其實在很久以前,基於 Hadoop 集群的單一離線計算任務的上傳和管理工作,針對 Mesos 集群、HBase、HDFS 的監控報警,劉奎、王銀卡、崔建偉、陳少明、李少傑等人已經開發就緒。但真正要把數據倉庫計算方方面面搬進來,仍然等了一年時間,因為在底層,運維工程師們還構建了一個 DataFlash 集群,情況比較複雜。

DataCube,中文名字是魔盒。

 

當初,我說魔盒主要是圍繞著這四個核心概念構建一個體系:

  1. 資源

  2. 數據

  3. 流程

  4. 操作

什麼體系?

  • 資源,能看見。

  • 流程,能流轉。

  • 數據,能共用。

  • 操作,有記錄。

出了問題,隨時能通過圖形化界面排查。

不需要知道的,都隱藏在黑暗之中,被封裝為黑箱。

流程驅動數據,再驅動操作,形成閉環。

 

在2016年年初,我還對於運維自動化平臺 SimpleWay 也提出了我的願景:

在我的想象中,到了 2016年Q3 所見到的是:

  • 線上配置同步到CMDB且可視化:我能在 SimpleWay 上看到任意一臺 Nginx、Redis、MySQL、ElasticSearch、ZooKeeper等的物理信息和配置;

  • 資源的調撥和歷史可視化:我能在 SimpleWay 上看到任意一臺物理機什麼時候採購的、什麼時候上架的、在哪個機櫃、上面都有什麼應用、跑了什麼虛擬機、承載了什麼容器等等;

  • 資源申請、運維操作的流程化:SA、Dev、QA 對資源的申請,或變更配置,工作流的流轉以及操作登記備案。

 

其實,對未來的這些願景大同小異,都體現了窩窩和雲縱的研發哲學:Don't make me think.

 

0x00,為什麼要大數據協作?

2016年的時候,數據中心雖然有自助式報表、即席查詢、資料庫變更訂閱中心、元數據管理、實時數據大屏等管理工具,即使2017年進一步演變出來了數屏、數據開放實驗室,但仍不成體系。

什麼叫不成體系?

數據,不能共用。

流程,不能流轉。

資源,無法看見。

操作,沒有記錄。

各個模塊各自為戰。最令我無法忍受的是,Hadoop 集群的離線計算和實時計算線下部署和線上發佈還以手工操作為主。

所以,我著重強調用“流程貫穿”提升研發的生產效率。

 

0x01,什麼是願景?

我曾經說過,在內部討論技術平臺和體系的時候,不要束縛自己的想象力,不要說因為我現在是這樣,所以我按此演進,只能是那樣。

NO!

 

一定要切換到朴素無華的腦力和心態(是的,我喜歡用朴素無華這個詞),進入使用者場景,想象怎麼才是用起來最舒服的狀態,或者你所見過的最應當如此、最順其自然的流程。

我說,我要如此。

可能,最後真的能如此。

 

舉一個例子:

研發中心的協作平臺,申請伺服器資源是這個樣子:

圖1 我們這樣申請測試資源

 

那時候我們期望如此。

後來夢想成真。

 

0x02,我們的DataCube

那麼現如今,魔盒能做到什麼呢?

先來一張靚照:

圖2-0 DataCube靚照

 

生產環境的它有這些功能:

  • DashBoard

  • 流程管理:

    • 任務:

      • 任務列表

        • 任務詳情

        • 任務更新

        • 任務刪除

      • 創建任務(Spark任務,SparkSQL任務)

    • 工作流:

      • 工作流列表

        • 工作流詳情

        • 工作流編輯

        • 工作流刪除

      • 創建工作流

        • 配置流程

        • 展示流程拓撲圖

        • 設定調度計劃

  • DataFlash:主要是監控報警

    • 集群概覽

      • DataFlash實時監測

      • 近一周報警走勢

      • 今日報警分類圖

      • 今日報警日誌列表

    • Mesos

      • 概覽

      • 實例列表

      • 監控指標

      • 報警規則(設置)

    • HBase

      • 概覽

      • 實例列表

      • 監控指標

      • 報警規則(設置)

    • HDFS

      • 概覽

      • 實例列表

      • 監控指標

      • 報警規則(設置)

  • 系統管理:

    • 公共資源配置

 

對 DataFlash 集群(Mesos/HBase/HDFS)的監控報警,暫且不提。大概齊長下麵這個樣子:

圖2-1 針對DataFlash集群的監控報警體系

 

我們講一下最新的工作流。

 

0x03,工作流什麼樣?

我作為一名數據倉庫工程師,首先創建一個離線計算任務:

 

圖3 創建任務

 

我可以創建一個 Spark任務 或 一個 SparkSQL 任務。

我不需要上傳 jar 包。

指定 git 倉庫地址即可,以及任務入口類名,還可以設置動態參數。

系統可以幫你構建和上傳,不需要你操心。

提交任務之後,可以進入任務詳情,親手構建和發佈上線。

 

圖4 任務詳情

 

這裡的“發佈上線”指的是,從測試環境推送到生產環境。當然了,生產環境需要對這次推送確認。

有了任務,還需要有工作流。

我們的工作流往往很複雜。

譬如這樣的:

 

圖5 工作流詳情頁上半部分

 

工作流中的任務可以依賴於其他任務或工作流。

我們在工作流身上設置時間調度規則。也可以選擇立即執行。

可以在工作流詳情頁的下半部分看到執行詳情:

 

圖6 工作流詳情頁下半部分

 

點擊上圖中的工作流名稱,可以看到本次執行的拓撲圖,下圖中的紅色代表執行失敗:

 

圖7 工作流執行詳情

 

還可以一路點擊進去看到底錯在哪裡了:

 

圖8 工作流執行-任務詳情

 

還是解決不了問題的話,就點擊查看日誌,不再贅述。

 

總之,我們可以通過魔盒的圖形化界面,解決85%~90%的大數據日常調度、管理和部署工作。

而這就是我們最初設定的願景。

加速高質量的交付,提升開發者的價值。我們技術團隊所做的每一個步驟、每一個過程都是疊加的、遞增的,日拱一卒,功不唐捐。

 

下一步需要做什麼?

實時計算還沒有納入其中。繼續努力。

-EOF-

 

關註我的訂閱號:

註:頭圖來自於bing.com


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.引言 & 160;& 160;& 160;& 160;本篇將介紹音頻播放頁面的設計情況,也希望能將自己的心得與大家分享。 2.設計情況 2.1 總體設計 & 160;& 160;& 160;& 160;XAML頁面如下: 在這裡我將這個頁面分成三行,第二行的高度為40,第三行的高度為Auto,其 ...
  • 相信會碰到很多類似的需求,一個列表控制項,然後控制項上方的一個頭部需要自定義,這樣就不好有時候也不能加在列表控制項的頭部了,那必須得嵌套一層scrollview了,沒毛病,那麼一般的列表控制項都是有上拉下拉的操作,而且一般也是在 github 上找尋一個收藏量高的 來做為一個全局通用的上下拉控制項,這裡問題就 ...
  • [What's New in iOS 8.x](https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS8.html#//apple_ref/doc/uid/TP40014205-S ...
  • 問到tableView有哪些優化的方法,想必很多人會說到,圖片儘量不要圓角處理,特別註意的是,不是說這裡的圖片不能圓角顯示,只是說不能使用setCornerRadiusi對imageview的layer進行圓角處理,網上的解釋是,通過設置layer的屬性,實現圓角,在iOS9以前這種設置可能會觸發離 ...
  • 指令分析 package.json裡面 "dev": "node build/dev-server.js", "build": "node build/build.js", 意思:運行”npm run dev”的時候執行的是build/dev-server.js文件, 運行”npm run buil ...
  • 本人前段時間做一個社區電商應用,發現了一個 天坑 ...................讓我哭會 。 下麵聽聽我的踩坑之路吧 ,電商肯定跟¥打交道了,計算少不了的。由於本人太菜 單純的以為 float double 可以直接參与加減乘除 感覺這種代碼萬無一失沒去想這麼多直接 float*int 。 ...
  • 一,效果圖。 二,工程圖。 三,代碼。 ViewController.h ViewController.m ...
  • 1、向數據表添加註釋及查詢表註釋 2、向表中添加列及添加相應註釋 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...