大数据实践的6个阶段
戳藍字“CSDN云計算”關注我們哦!
來源公眾號 |?智領云科技
作者 |?智領云 彭鋒博士
在最新的“2018年Gartner數據管理技術成熟度曲線”報告中,DataOps的概念被首次提出,Gartner標記其目前在“極為初級”這個階段里面,并預計需要5-10年的達到一個技術成熟時期。
“極為初級”階段是報告描述的技術成熟曲線的五個階段之一,Gartner預計一項技術從出現到公眾熟知將經歷以下的五個階段:
“極為初級” 階段 一項潛在的技術突破可以解決問題。早期的概念驗證故事和媒體興趣引發了重要的宣傳。通常沒有可用的產品存在且商業可行性未經證實。
“爆發增長”階段 早期宣傳產生了許多成功故事 – 通常伴隨著許多失敗。一些公司采取行動; 大部分都沒有。
“幻滅的低谷” 階段 由于實驗和實施無法實現,早期的利好逐漸減弱。該技術的生產者放棄技術或宣告失敗。只有幸存的供應商改進其產品以滿足早期采用者的需求,投資才會繼續。
“啟蒙的斜坡”階段 更多關于技術如何使企業受益的實例開始明確并且得到更廣泛的理解。后期迭代的產品來自技術提供商。更多企業資助開始注資試點項目; 保守的公司仍然保持謹慎。
“生產力的高原”階段 技術開始被廣泛接受。評估技術提供者的可行性的標準更明確。該技術廣泛的市場適用性和相關性顯然得到了回報。如果該技術不僅僅是一個利基市場,那么它將繼續增長。
基于上面的定義,Gartner報告基本上表明DataOps剛剛出現在數據管理領域,并且被認為是像在幾年前Spark和流處理一樣的潛在市場顛覆性技術之一。那么DataOps到底意味著什么?為什么它只是在Hadoop引領大數據浪潮近10年后才出現?
我們將嘗試通過描述大數據項目的六個階段來回答這些問題,并了解DataOps真正帶來了什么。
階段1 技術試驗階段
在此階段,你的團隊可能會安裝一個Hadoop集群和Hive(可能帶有Sqoop),以便將一些數據傳輸到集群并運行一些查詢。近年來,包括Kafka和Spark在內的組件也被考慮在內。如果要進行日志分析,也可以安裝ELK(ElasticSearch,LogStash,Kibana)等套件。
但是,這些系統大多數都是復雜的分布式系統,其中一些系統需要數據庫支持。雖然許多提供單節點模式供你使用,但你的團隊仍需要熟悉常見的Devops工具,如Ansible,Puppet,Chef,Fabric等。
由于開源社區的辛勤工作,對大多數工程團隊來說,使用這些工具和原型設計應該是可行的。如果團隊里面有一些優秀的工程師,你可能會在幾周內設置好一個可以聯通及運行的系統,具體的工作量一般取決于你要安裝的組件數量。
階段2 自動化階段
在這個階段,你已經擁有了一個基本的大數據系統,接下來你的需求可能有:
一些定期運行的Hive查詢,比如每小時一次或每天一次,以生成一些商業智能報告;
使用一些Spark程序運行機器學習程序,生成一些用戶分析模型,使你的產品系統可以提供個性化服務;
一些需要不時從遠程站點提取數據的爬蟲程序;
或一些流數據處理程序,用于創建實時數據儀表板,顯示在大屏幕上。
要實現這些需求,你需要一個作業調度系統,以根據時間或數據可用性來運行它們。像Oozie,Azkaban,Airflow等工作流系統允許你指定何時運行程序(類似Linux機器上的Cron程序)。
工作流系統之間的功能差異很大。例如,一些系統提供依賴關系管理,允許你指定調度邏輯,如作業A僅在作業B和作業C完成時運行;一些系統允許僅管理Hadoop程序,而另一些系統則允許更多類型的工作流程。你必須決定一個最符合你要求的。
除了工作流程系統,你還有其他需要自動化的任務。例如,如果你的HDFS上的某些數據需要在一段時間后刪除,假設數據只保留一年,那么在第366天,我們需要從數據集中最早的一天中刪除數據,這稱為數據保留策略。你需要編寫一個程序,為每個數據源指定并實施數據保留策略,否則你的硬盤將很快耗盡。
階段3 投入生產階段
現在你已經擁有了一個自動數據管道,數據終于可以在這個數據流水線上流動起來!大功告成?現實情況是你的生產環境會遇到下面這些棘手的問題:
第一年硬盤故障率為5.1%(與第一年服務器故障率類似)
第4年服務器的故障率為11%
大量使用的開源程序有很多bug
你的程序可能估計也會有一些bug
外部數據源有延遲
數據庫有停機時間
網絡有錯誤
有人在運行“sudo rm -rf / usr / local /”時使用了額外的空格
這些問題發生的次數會比你想象的要頻繁得多。假設你有50臺機器,每臺機器有8個硬盤驅動器,那么一年內將有20個硬盤驅動器故障,一個月大約2個。經過幾個月的手動過程掙扎,你終于意識到你迫切地需要:
監控系統:你需要一個監控程序來監控硬件,操作系統,資源使用情況,程序運行;
系統探針:系統需要告訴你它的各種運行指標,以便它可以被監控;
警報系統:出現問題時,需要通知運維工程師;
SPOF:避免單點故障,如果你不想在凌晨3點被叫醒,最好系統里不要出現SPOF;
備份:你需要盡快備份重要數據;不要依賴Hadoop的3份數據副本,它們可以通過一些額外的空格被輕松刪除;
恢復:如果你不希望每次發生時都手動處理所有錯誤,那么這些錯誤最好盡可能自動恢復。
在這個階段你意識到建立一個企業級的系統并不像安裝一些開源程序那么容易,可能我們要多下一點苦功了。
階段4 數據管理階段
一個企業級的大數據系統不僅要處理與任何標準系統操作類似的硬件和軟件故障問題,還要處理與數據相關的問題。對于一個真正數據驅動的IT系統,你需要確保你的數據完整,正確,準時,并為數據進化做好準備。
那么這些意味著什么?
你需要知道在數據流水線的任何步驟中數據都不會丟失。因此,你需要監控每個程序正在處理的數據量,以便盡快檢測到任何異常;
你需要有對數據質量進行測試的機制,以便在數據中出現任何意外值時,你接收到告警信息;
你需要監控應用程序的運行時間,以便每個數據源都有一個預定義的ETA,并且會對延遲的數據源發出警報;
你需要管理數據血緣關系,以便我們了解每個數據源的生成方式,以便在出現問題時,我們知道哪些數據和結果會受到影響;
系統應自動處理合法的元數據變更,并應立即發現和報告非法元數據變更;
你需要對應用程序進行版本控制并將其與數據相關聯,以便在程序更改時,我們知道相關數據如何相應地更改。
此外,在此階段,你可能需要為數據科學家提供單獨的測試環境來測試其代碼。并給他們提供各種便捷和安全的工具,讓他們能快速驗證自己的想法,并能方便地發布到生產環境。
階段5 重視安全性階段
在這個階段大數據已經與你密不可分:面向客戶的產品由數據驅動,你的公司管理層依靠實時的業務數據分析報告來做出重大決策。你的數據資產安全將變得非常最重要,你能確定你的數據只有合適的人員才能訪問嗎?并且你的系統擁有身份驗證和授權方案嗎?
一個簡單的例子是Hadoop的Kerberos身份驗證。如果你沒有使用Kerberos集成運行Hadoop,那么擁有root訪問權限的任何人都可以模擬Hadoop集群的root用戶并訪問所有數據。其他工具如Kafka和Spark也需要Kerberos進行身份驗證。由于使用Kerberos設置這些系統非常復雜(通常只有商業版本提供支持),我們看到的大多數系統都選擇忽略Kerberos集成。
除了身份驗證問題,以下是你在此階段需要處理的一些問題:
審計:系統必須審計系統中的所有操作,例如,誰訪問了系統中的內容
多租戶:系統必須支持多個用戶和組共享同一個集群,具有資源隔離和訪問控制功能;他們應該能夠安全,安全地處理和分享他們的數據;
端到端安全性:系統中的所有工具都必須實施正確的安全措施,例如,所有Hadoop相關組件的Kerberos集成,所有網絡流量的https / SSL;
單點登錄:系統中的所有用戶在所有工具中都應具有單一身份,這對于實施安全策略非常重要。
由于大多數開源工具都沒有在其免費版本中提供這些功能,因此許多項目在安全問題上采用“撞大運”的方法并不奇怪。我們同意安全的價值對不同的項目來說有不同的理解,但人們必須意識到潛在的問題并采取適當的方法。
階段6 云基礎架構的大數據階段
在這個階段隨著業務的不斷增長,越來越多的應用程序被添加到大數據系統中。除了像Hadoop / Hive / Spark這樣的傳統大數據系統,你現在需要使用TensorFlow運行深度學習,使用InfluxDB運行一些時間序列分析,使用Heron來處理流數據,或者一些Tomcat程序來提供數據服務API。每當你需要運行一些新程序時,你會發現配置機器和設置生產部署的過程非常繁瑣,并且有很多的坑要踩。此外,有的時候你需要臨時搞到一些機器來完成一些額外的分析工作,例如,可能是一些POC,或者要對一個比較大的數據集進行訓練。
這些問題是你首先需要在云基礎架構上運行大數據系統的原因。像Mesos這樣的云平臺為分析工作負載和一般工作負載提供了極大的支持,并提供了云計算技術提供的所有好處:易于配置和部署,彈性擴展,資源隔離,高資源利用率,高彈性,自動恢復。
在云計算環境中運行大數據系統的另一個原因是大數據工具的發展。傳統的分布式系統(如MySQL集群,Hadoop和MongoDB集群)傾向于處理自己的資源管理和分布式協調。但是現在由于Mesos / Yarn這樣的分布式資源管理器和調度程序的出現,越來越多的分布式系統(如Spark)將依賴底層分布式框架來提供這些資源分配和程序協調調度的分布式操作原語。在這樣的統一框架中運行它們將大大降低復雜性并提高運行效率。
總結
我們看到過處于各種階段的實際的大數據項目。在Hadoop被采用了10多年之后,我們看到的大部分項目仍然停留在第1階段或第2階段。這里主要的問題是在第3階段實施系統需要大量的專業知識和大量投資。Google的一項研究表明,構建機器學習系統所花費的時間中只有5%用于實際的機器學習代碼,另外95%的時間用于建立正確的基礎架構。由于數據工程師因難以培訓而非常昂貴(由于需要對分布式系統有很好的理解),因此大多數公司都很不幸的沒能走進大數據時代的快車道。
與DevOps一樣,DataOps是一個需要正確工具和正確思維的持續過程。DataOps的目標是使以正確的方式更容易地實現大數據項目,從而以更少的工作從數據中獲得最大的價值。Facebook和Twitter等公司長期以來一直在內部推動類似DataOps的做法。然而,他們的方法通常與他們的內部工具和現有系統相綁定,因此很難為其他人推廣。
在過去幾年中,通過Mesos和Docker等技術,大數據操作的標準化成為可能。結合更加廣泛的采用數據驅動的文化,DataOps終于準備好可以進入到大家的視野。我們相信這一運動將降低實施大數據項目的障礙,使每個企業和機構都更容易獲取數據的最大價值。
福利
掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
關于智領云
武漢智領云科技有限公司于2016年成立于武漢光谷,專注于大數據、云計算領域的核心技術研發。公司創始團隊成員來自于推特(Twitter)、蘋果(Apple)和藝電(EA)等硅谷知名企業,擁有多年的云計算和大數據系統的軟件開發、項目運作和公司管理的經驗。公司已經獲得了數千萬元國內外著名風險投資機構及天使投資人的投資。公司研發的BDOS(大數據操作系統)采用業界領先的容器技術對大數據系統需要的各種組件進行標準化和產品化,在統一的云平臺架構下運行,為物聯網、機器學習、人工智能、商業智能、互聯網應用提供全面的大數據平臺及運維支持,快速高效地實施、開發和管理一個企業級的大數據系統。BDOS使用戶可集中精力在業務邏輯上而無須考慮系統底層技術細節,極大地提高了大數據及人工智能應用的開發效率,降低運維成本,持續高效地實現大數據價值。
推薦閱讀:
做了中臺就不會死嗎?每年至少40%開發資源是被浪費的!
美女主播變大媽:在bug翻車現場說測試策略
漫畫高手、小說家、滑板專家……解鎖程序員的另一面!
手把手教你如何用Python模擬登錄淘寶
鴻蒙霸榜 GitHub,從最初的 Plan B 到“取代 Android”?
每天超50億推廣流量、3億商品展現,阿里媽媽的推薦技術有多牛?
真香,朕在看了!
總結
以上是生活随笔為你收集整理的大数据实践的6个阶段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在农村办什么小厂比较合适 2022年
- 下一篇: 使用Boost.Compute的STL