當前位置:首頁 » 軟體設計 » 大數據平台設計

大數據平台設計

發布時間: 2021-02-12 02:00:02

設計一個大數據實時分析平台要怎麼做呢

PetaBase-V作為Vertica基於億信分析產品的定製版,提供面向大數據的實時分析服務,採用無共享大規模並行架構(MPP),可線性擴展集群的計算能力和數據處理容量,基於列式資料庫技術,使 PetaBase-V 擁有高性能、高擴展性、高壓縮率、高健壯性等特點,可完美解決報表計算慢和明細數據查詢等性能問題。
大數據實時分析平台(以下簡稱PB-S),旨在提供數據端到端實時處理能力(毫秒級/秒級/分鍾級延遲),可以對接多數據源進行實時數據抽取,可以為多數據應用場景提供實時數據消費。作為現代數倉的一部分,PB-S可以支持實時化、虛擬化、平民化、協作化等能力,讓實時數據應用開發門檻更低、迭代更快、質量更好、運行更穩、運維更簡、能力更強。
整體設計思想
我們針對用戶需求的四個層面進行了統一化抽象:
統一數據採集平台
統一流式處理平台
統一計算服務平台
統一數據可視化平台
同時,也對存儲層保持了開放的原則,意味著用戶可以選擇不同的存儲層以滿足具體項目的需要,而又不破壞整體架構設計,用戶甚至可以在Pipeline中同時選擇多個異構存儲提供支持。下面分別對四個抽象層進行解讀。
1)統一數據採集平台
統一數據採集平台,既可以支持不同數據源的全量抽取,也可以支持增強抽取。其中對於業務資料庫的增量抽取會選擇讀取資料庫日誌,以減少對業務庫的讀取壓力。平台還可以對抽取的數據進行統一處理,然後以統一格式發布到數據匯流排上。這里我們選擇一種自定義的標准化統一消息格式UMS(Unified Message Schema)做為 統一數據採集平台和統一流式處理平台之間的數據層面協議
UMS自帶Namespace信息和Schema信息,這是一種自定位自解釋消息協議格式,這樣做的好處是:
整個架構無需依賴外部元數據管理平台;
消息和物理媒介解耦(這里物理媒介指如Kafka的Topic, Spark Streaming的Stream等),因此可以通過物理媒介支持多消息流並行,和消息流的自由漂移。
平台也支持多租戶體系,和配置化簡單處理清洗能力。
2)統一流式處理平台
統一流式處理平台,會消費來自數據匯流排上的消息,可以支持UMS協議消息,也可以支持普通JSON格式消息。同時,平台還支持以下能力:
支持可視化/配置化/SQL化方式降低流式邏輯開發/部署/管理門檻
支持配置化方式冪等落入多個異構目標庫以確保數據的最終一致性
支持多租戶體系,做到項目級的計算資源/表資源/用戶資源等隔離
3)統一計算服務平台
統一計算服務平台,是一種數據虛擬化/數據聯邦的實現。平台對內支持多異構數據源的下推計算和拉取混算,也支持對外的統一服務介面(JDBC/REST)和統一查詢語言(SQL)。由於平台可以統一收口服務,因此可以基於平台打造統一元數據管理/數據質量管理/數據安全審計/數據安全策略等模塊。平台也支持多租戶體系。
4)統一數據可視化平台
統一數據可視化平台,加上多租戶和完善的用戶體系/許可權體系,可以支持跨部門數據從業人員的分工協作能力,讓用戶在可視化環境下,通過緊密合作的方式,更能發揮各自所長來完成數據平台最後十公里的應用。
以上是基於整體模塊架構之上,進行了統一抽象設計,並開放存儲選項以提高靈活性和需求適配性。這樣的RTDP平台設計,體現了現代數倉的實時化/虛擬化/平民化/協作化等能力,並且覆蓋了端到端的OLPP數據流轉鏈路。
具體問題和解決思路
下面我們會基於PB-S的整體架構設計,分別從不同維度討論這個設計需要面對的問題考量和解決思路。
功能考量主要討論這樣一個問題:實時Pipeline能否處理所有ETL復雜邏輯?
我們知道,對於Storm/Flink這樣的流式計算引擎,是按每條處理的;對於Spark Streaming流式計算引擎,按每個mini-batch處理;而對於離線跑批任務來說,是按每天數據進行處理的。因此處理范圍是數據的一個維度(范圍維度)。
另外,流式處理面向的是增量數據,如果數據源來自關系型資料庫,那麼增量數據往往指的是增量變更數據(增刪改,revision);相對的批量處理面向的則是快照數據(snapshot)。因此展現形式是數據的另一個維度(變更維度)。
單條數據的變更維度,是可以投射收斂成單條快照的,因此變更維度可以收斂成范圍維度。所以流式處理和批量處理的本質區別在於,面對的數據范圍維度的不同,流式處理單位為「有限范圍」,批量處理單位為「全表范圍」。「全表范圍」數據是可以支持各種SQL運算元的,而「有限范圍」數據只能支持部分SQL運算元。
復雜的ETL並不是單一運算元,經常會是由多個運算元組合而成,由上可以看出單純的流式處理並不能很好的支持所有ETL復雜邏輯。那麼如何在實時Pipeline中支持更多復雜的ETL運算元,並且保持時效性?這就需要「有限范圍」和「全表范圍」處理的相互轉換能力。
設想一下:流式處理平台可以支持流上適合的處理,然後實時落不同的異構庫,計算服務平台可以定時批量混算多源異構庫(時間設定可以是每隔幾分鍾或更短),並將每批計算結果發送到數據匯流排上繼續流轉,這樣流式處理平台和計算服務平台就形成了計算閉環,各自做擅長的運算元處理,數據在不同頻率觸發流轉過程中進行各種運算元轉換,這樣的架構模式理論上即可支持所有ETL復雜邏輯。
2)質量考量
上面的介紹也引出了兩個主流實時數據處理架構:Lambda架構和Kappa架構,具體兩個架構的介紹網上有很多資料,這里不再贅述。Lambda架構和Kappa架構各有其優劣勢,但都支持數據的最終一致性,從某種程度上確保了數據質量,如何在Lambda架構和Kappa架構中取長補短,形成某種融合架構,這個話題會在其他文章中詳細探討。
當然數據質量也是個非常大的話題,只支持重跑和回灌並不能完全解決所有數據質量問題,只是從技術架構層面給出了補數據的工程方案。關於大數據數據質量問題,我們也會起一個新的話題討論。
3)穩定考量
這個話題涉及但不限於以下幾點,這里簡單給出應對的思路:
高可用HA
整個實時Pipeline鏈路都應該選取高可用組件,確保理論上整體高可用;在數據關鍵鏈路上支持數據備份和重演機制;在業務關鍵鏈路上支持雙跑融合機制
SLA保障
在確保集群和實時Pipeline高可用的前提下,支持動態擴容和數據處理流程自動漂移
彈性反脆弱
? 基於規則和演算法的資源彈性伸縮
? 支持事件觸發動作引擎的失效處理
監控預警
集群設施層面,物理管道層面,數據邏輯層面的多方面監控預警能力
自動運維
能夠捕捉並存檔缺失數據和處理異常,並具備定期自動重試機制修復問題數據
上游元數據變更抗性
?上游業務庫要求兼容性元數據變更
? 實時Pipeline處理顯式欄位
4)成本考量
這個話題涉及但不限於以下幾點,這里簡單給出應對的思路:
人力成本
通過支持數據應用平民化降低人才人力成本
資源成本
通過支持動態資源利用降低靜態資源佔用造成的資源浪費
運維成本
通過支持自動運維/高可用/彈性反脆弱等機制降低運維成本
試錯成本
通過支持敏捷開發/快速迭代降低試錯成本
5)敏捷考量
敏捷大數據是一整套理論體系和方法學,在前文已有所描述,從數據使用角度來看,敏捷考量意味著:配置化,SQL化,平民化。
6)管理考量
數據管理也是一個非常大的話題,這里我們會重點關注兩個方面:元數據管理和數據安全管理。如果在現代數倉多數據存儲選型的環境下統一管理元數據和數據安全,是一個非常有挑戰的話題,我們會在實時Pipeline上各個環節平台分別考慮這兩個方面問題並給出內置支持,同時也可以支持對接外部統一的元數據管理平台和統一數據安全策略。
以上是我們探討的大數據實時分析平台PB-S的設計方案。

⑵ 如何打造高性能大數據分析平台

大數據分析系統作為一個關鍵性的系統在各個公司迅速崛起。但是這種海量規模的數據帶來了前所未有的性能挑戰。同時,如果大數據分析系統無法在第一時間為運營決策提供關鍵數據,那麼這樣的大數據分析系統一文不值。本文將從技術無關的角度討論一些提高性能的方法。下面我們將討論一些能夠應用在大數據分析系統不同階段的技巧和准則(例如數據提取,數據清洗,處理,存儲,以及介紹)。本文應作為一個通用准則,以確保最終的大數據分析平台能滿足性能要求。

1. 大數據是什麼?

大數據是最近IT界最常用的術語之一。然而對大數據的定義也不盡相同,所有已知的論點例如結構化的和非結構化、大規模的數據等等都不夠完整。大數據系統通常被認為具有數據的五個主要特徵,通常稱為數據的5 Vs。分別是大規模,多樣性,高效性、准確性和價值性。
互聯網是個神奇的大網,大數據開發和軟體定製也是一種模式,這里提供最詳細的報價,如果真的想做,可以來這里,這個手技的開始數字是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,想說的是,除非想做或者了解這方面的內容,如果只是湊熱鬧的話,就不要來了。

據Gartner稱,大規模可以被定義為「在本(地)機數據採集和處理技術能力不足以為用戶帶來商業價值。當現有的技術能夠針對性的進行改造後來處理這種規模的數據就可以說是一個成功的大數據解決方案。

這種大規模的數據沒將不僅僅是來自於現有的數據源,同時也會來自於一些新興的數據源,例如常規(手持、工業)設備,日誌,汽車等,當然包括結構化的和非結構化的數據。

據Gartner稱,多樣性可以定義如下:「高度變異的信息資產,在生產和消費時不進行嚴格定義的包括多種形式、類型和結構的組合。同時還包括以前的歷史數據,由於技術的變革歷史數據同樣也成為多樣性數據之一 「。

高效性可以被定義為來自不同源的數據到達的速度。從各種設備,感測器和其他有組織和無組織的數據流都在不斷進入IT系統。由此,實時分析和對於該數據的解釋(展示)的能力也應該隨之增加。

根據Gartner,高效性可以被定義如下:「高速的數據流I/O(生產和消費),但主要聚焦在一個數據集內或多個數據集之間的數據生產的速率可變上」。

准確性,或真實性或叫做精度是數據的另一個重要組成方面。要做出正確的商業決策,當務之急是在數據上進行的所有分析必須是正確和准確(精確)的。

大數據系統可以提供巨大的商業價值。像電信,金融,電子商務,社交媒體等,已經認識到他們的數據是一個潛在的巨大的商機。他們可以預測用戶行為,並推薦相關產品,提供危險交易預警服務,等等。

與其他IT系統一樣,性能是大數據系統獲得成功的關鍵。本文的中心主旨是要說明如何讓大數據系統保證其性能。

2. 大數據系統應包含的功能模塊

大數據系統應該包含的功能模塊,首先是能夠從多種數據源獲取數據的功能,數據的預處理(例如,清洗,驗證等),存儲數據,數據處理、數據分析等(例如做預測分析??,生成在線使用建議等等),最後呈現和可視化的總結、匯總結果。

下圖描述了大數據系統的這些高層次的組件

描述本節的其餘部分簡要說明了每個組分,如圖1。

2.1 各種各樣的數據源當今的IT生態系統,需要對各種不同種類來源的數據進行分析。這些來源可能是從在線Web應用程序,批量上傳或feed,流媒體直播數據,來自工業、手持、家居感測的任何東西等等。

顯然從不同數據源獲取的數據具有不同的格式、使用不同的協議。例如,在線的Web應用程序可能會使用SOAP / XML格式通過HTTP發送數據,feed可能會來自於CSV文件,其他設備則可能使用MQTT通信協議。

由於這些單獨的系統的性能是不在大數據系統的控制范圍之內,並且通常這些系統都是外部應用程序,由第三方供應商或團隊提供並維護,所以本文將不會在深入到這些系統的性能分析中去。

2.2 數據採集第一步,獲取數據。這個過程包括分析,驗證,清洗,轉換,去重,然後存到適合你們公司的一個持久化設備中(硬碟、存儲、雲等)。

在下面的章節中,本文將重點介紹一些關於如何獲取數據方面的非常重要的技巧。請注意,本文將不討論各種數據採集技術的優缺點。

2.3 存儲數據第二步,一旦數據進入大數據系統,清洗,並轉化為所需格式時,這些過程都將在數據存儲到一個合適的持久化層中進行。

在下面的章節中,本文將介紹一些存儲方面的最佳實踐(包括邏輯上和物理上)。在本文結尾也會討論一部分涉及數據安全方面的問題。

2.4 數據處理和分析第三步,在這一階段中的一部分干凈數據是去規范化的,包括對一些相關的數據集的數據進行一些排序,在規定的時間間隔內進行數據結果歸集,執行機器學習演算法,預測分析等。

在下面的章節中,本文將針對大數據系統性能優化介紹一些進行數據處理和分析的最佳實踐。

2.5 數據的可視化和數據展示最後一個步驟,展示經過各個不同分析演算法處理過的數據結果。該步驟包括從預先計算匯總的結果(或其他類似數據集)中的讀取和用一種友好界面或者表格(圖表等等)的形式展示出來。這樣便於對於數據分析結果的理解。

3. 數據採集中的性能技巧

數據採集是各種來自不同數據源的數據進入大數據系統的第一步。這個步驟的性能將會直接決定在一個給定的時間段內大數據系統能夠處理的數據量的能力。

數據採集??過程基於對該系統的個性化需求,但一些常用執行的步驟是 - 解析傳入數據,做必要的驗證,數據清晰,例如數據去重,轉換格式,並將其存儲到某種持久層。

涉及數據採集過程的邏輯步驟示如下圖所示:

下面是一些性能方面的技巧:

來自不同數據源的傳輸應該是非同步的。可以使用文件來傳輸、或者使用面向消息的(MoM)中間件來實現。由於數據非同步傳輸,所以數據採集過程的吞吐量可以大大高於大數據系統的處理能力。 非同步數據傳輸同樣可以在大數據系統和不同的數據源之間進行解耦。大數據基礎架構設計使得其很容易進行動態伸縮,數據採集的峰值流量對於大數據系統來說算是安全的。

如果數據是直接從一些外部資料庫中抽取的,確保拉取數據是使用批量的方式。

如果數據是從feed file解析,請務必使用合適的解析器。例如,如果從一個XML文件中讀取也有不同的解析器像JDOM,SAX,DOM等。類似地,對於CSV,JSON和其它這樣的格式,多個解析器和API是可供選擇。選擇能夠符合需求的性能最好的。

優先使用內置的驗證解決方案。大多數解析/驗證工作流程的通常運行在伺服器環境(ESB /應用伺服器)中。大部分的場景基本上都有現成的標准校驗工具。在大多數的情況下,這些標準的現成的工具一般來說要比你自己開發的工具性能要好很多。

類似地,如果數據XML格式的,優先使用XML(XSD)用於驗證。

即使解析器或者校等流程使用自定義的腳本來完成,例如使用java優先還是應該使用內置的函數庫或者開發框架。在大多數的情況下通常會比你開發任何自定義代碼快得多。

盡量提前濾掉無效數據,以便後續的處理流程都不用在無效數據上浪費過多的計算能力。

大多數系統處理無效數據的做法通常是存放在一個專門的表中,請在系統建設之初考慮這部分的資料庫存儲和其他額外的存儲開銷。

如果來自數據源的數據需要清洗,例如去掉一些不需要的信息,盡量保持所有數據源的抽取程序版本一致,確保一次處理的是一個大批量的數據,而不是一條記錄一條記錄的來處理。一般來說數據清洗需要進行表關聯。數據清洗中需要用到的靜態數據關聯一次,並且一次處理一個很大的批量就能夠大幅提高數據處理效率。

數據去重非常重要這個過程決定了主鍵的是由哪些欄位構成。通常主鍵都是時間戳或者id等可以追加的類型。一般情況下,每條記錄都可能根據主鍵進行索引來更新,所以最好能夠讓主鍵簡單一些,以保證在更新的時候檢索的性能。

來自多個源接收的數據可以是不同的格式。有時,需要進行數據移植,使接收到的數據從多種格式轉化成一種或一組標准格式。

和解析過程一樣,我們建議使用內置的工具,相比於你自己從零開發的工具性能會提高很多。

數據移植的過程一般是數據處理過程中最復雜、最緊急、消耗資源最多的一步。因此,確保在這一過程中盡可能多的使用並行計算。

一旦所有的數據採集的上述活動完成後,轉換後的數據通常存儲在某些持久層,以便以後分析處理,綜述,聚合等使用。

多種技術解決方案的存在是為了處理這種持久(RDBMS,NoSQL的分布式文件系統,如Hadoop和等)。

謹慎選擇一個能夠最大限度的滿足需求的解決方案。

4. 數據存儲中的性能技巧

一旦所有的數據採集步驟完成後,數據將進入持久層。

在本節中將討論一些與數據數據存儲性能相關的技巧包括物理存儲優化和邏輯存儲結構(數據模型)。這些技巧適用於所有的數據處理過程,無論是一些解析函數生的或最終輸出的數據還是預計算的匯總數據等。

首先選擇數據範式。您對數據的建模方式對性能有直接的影響,例如像數據冗餘,磁碟存儲容量等方面。對於一些簡單的文件導入資料庫中的場景,你也許需要保持數據原始的格式,對於另外一些場景,如執行一些分析計算聚集等,你可能不需要將數據範式化。

大多數的大數據系統使用NoSQL資料庫替代RDBMS處理數據。

不同的NoSQL資料庫適用不同的場景,一部分在select時性能更好,有些是在插入或者更新性能更好。

資料庫分為行存儲和列存儲。

具體的資料庫選型依賴於你的具體需求(例如,你的應用程序的資料庫讀寫比)。

同樣每個資料庫都會根據不同的配置從而控制這些資料庫用於資料庫復制備份或者嚴格保持數據一致性?這些設置會直接影響資料庫性能。在資料庫技術選型前一定要注意。

壓縮率、緩沖池、超時的大小,和緩存的對於不同的NoSQL資料庫來說配置都是不同的,同時對資料庫性能的影響也是不一樣的。

數據Sharding和分區是這些資料庫的另一個非常重要的功能。數據Sharding的方式能夠對系統的性能產生巨大的影響,所以在數據Sharding和分區時請謹慎選擇。

並非所有的NoSQL資料庫都內置了支持連接,排序,匯總,過濾器,索引等。

如果有需要還是建議使用內置的類似功能,因為自己開發的還是不靈。

NoSQLs內置了壓縮、編解碼器和數據移植工具。如果這些可以滿足您的部分需求,那麼優先選擇使用這些內置的功能。這些工具可以執行各種各樣的任務,如格式轉換、壓縮數據等,使用內置的工具不僅能夠帶來更好的性能還可以降低網路的使用率。

許多NoSQL資料庫支持多種類型的文件系統。其中包括本地文件系統,分布式文件系統,甚至基於雲的存儲解決方案。

如果在互動式需求上有嚴格的要求,否則還是盡量嘗試使用NoSQL本地(內置)文件系統(例如HBase 使用HDFS)。

這是因為,如果使用一些外部文件系統/格式,則需要對數據進行相應的編解碼/數據移植。它將在整個讀/寫過程中增加原本不必要的冗餘處理。

大數據系統的數據模型一般來說需要根據需求用例來綜合設計。與此形成鮮明對比的是RDMBS數據建模技術基本都是設計成為一個通用的模型,用外鍵和表之間的關系用來描述數據實體與現實世界之間的交互。

在硬體一級,本地RAID模式也許不太適用。請考慮使用SAN存儲。

5. 數據處理分析中的性能技巧

數據處理和分析是一個大數據系統的核心。像聚合,預測,聚集,和其它這樣的邏輯操作都需要在這一步完成。

本節討論一些數據處理性能方面的技巧。需要注意的是大數據系統架構有兩個組成部分,實時數據流處理和批量數據處理。本節涵蓋數據處理的各個方面。

在細節評估和數據格式和模型後選擇適當的數據處理框架。

其中一些框架適用於批量數據處理,而另外一些適用於實時數據處理。

同樣一些框架使用內存模式,另外一些是基於磁碟io處理模式。

有些框架擅長高度並行計算,這樣能夠大大提高數據效率。

基於內存的框架性能明顯優於基於磁碟io的框架,但是同時成本也可想而知。

概括地說,當務之急是選擇一個能夠滿足需求的框架。否則就有可能既無法滿足功能需求也無法滿足非功能需求,當然也包括性能需求。

一些這些框架將數據劃分成較小的塊。這些小數據塊由各個作業獨立處理。協調器管理所有這些獨立的子作業?在數據分塊是需要當心。

該數據快越小,就會產生越多的作業,這樣就會增加系統初始化作業和清理作業的負擔。

如果數據快太大,數據傳輸可能需要很長時間才能完成。這也可能導致資源利用不均衡,長時間在一台伺服器上運行一個大作業,而其他伺服器就會等待。

不要忘了查看一個任務的作業總數。在必要時調整這個參數。

最好實時監控數據塊的傳輸。在本機機型io的效率會更高,這么做也會帶來一個副作用就是需要將數據塊的冗餘參數提高(一般hadoop默認是3份)這樣又會反作用使得系統性能下降。

此外,實時數據流需要與批量數據處理的結果進行合並。設計系統時盡量減少對其他作業的影響。

大多數情況下同一數據集需要經過多次計算。這種情況可能是由於數據抓取等初始步驟就有報錯,或者某些業務流程發生變化,值得一提的是舊數據也是如此。設計系統時需要注意這個地方的容錯。

這意味著你可能需要存儲原始數據的時間較長,因此需要更多的存儲。

數據結果輸出後應該保存成用戶期望看到的格式。例如,如果最終的結果是用戶要求按照每周的時間序列匯總輸出,那麼你就要將結果以周為單位進行匯總保存。

為了達到這個目標,大數據系統的資料庫建模就要在滿足用例的前提下進行。例如,大數據系統經常會輸出一些結構化的數據表,這樣在展示輸出上就有很大的優勢。

更常見的是,這可能會這將會讓用戶感覺到性能問題。例如用戶只需要上周的數據匯總結果,如果在數據規模較大的時候按照每周來匯總數據,這樣就會大大降低數據處理能力。

一些框架提供了大數據查詢懶評價功能。在數據沒有在其他地方被使用時效果不錯。

實時監控系統的性能,這樣能夠幫助你預估作業的完成時間。

6. 數據可視化和展示中的性能技巧

精心設計的高性能大數據系統通過對數據的深入分析,能夠提供有價值戰略指導。這就是可視化的用武之地。良好的可視化幫助用戶獲取數據的多維度透視視圖。

需要注意的是傳統的BI和報告工具,或用於構建自定義報表系統無法大規模擴展滿足大數據系統的可視化需求。同時,許多COTS可視化工具現已上市。

本文將不會對這些個別工具如何進行調節,而是聚焦在一些通用的技術,幫助您能打造可視化層。

確保可視化層顯示的數據都是從最後的匯總輸出表中取得的數據。這些總結表可以根據時間短進行匯總,建議使用分類或者用例進行匯總。這么做可以避免直接從可視化層讀取整個原始數據。

這不僅最大限度地減少數據傳輸,而且當用戶在線查看在報告時還有助於避免性能卡頓問題。

重分利用大化可視化工具的緩存。緩存可以對可視化層的整體性能產生非常不錯的影響。

物化視圖是可以提高性能的另一個重要的技術。

大部分可視化工具允許通過增加線程數來提高請求響應的速度。如果資源足夠、訪問量較大那麼這是提高系統性能的好辦法。

盡量提前將數據進行預處理,如果一些數據必須在運行時計算請將運行時計算簡化到最小。

可視化工具可以按照各種各樣的展示方法對應不同的讀取策略。其中一些是離線模式、提取模式或者在線連接模式。每種服務模式都是針對不同場景設計的。

同樣,一些工具可以進行增量數據同步。這最大限度地減少了數據傳輸,並將整個可視化過程固化下來。

保持像圖形,圖表等使用最小的尺寸。

大多數可視化框架和工具的使用可縮放矢量圖形(SVG)。使用SVG復雜的布局可能會產生嚴重的性能影響。

7. 數據安全以及對於性能的影響

像任何IT系統一樣安全性要求也對大數據系統的性能有很大的影響。在本節中,我們討論一下安全對大數據平台性能的影響。

- 首先確保所有的數據源都是經過認證的。即使所有的數據源都是安全的,並且沒有針對安全方面的需求,那麼你可以靈活設計一個安全模塊來配置實現。

- 數據進過一次認證,那麼就不要進行二次認證。如果實在需要進行二次認證,那麼使用一些類似於token的技術保存下來以便後續繼續使用。這將節省數據一遍遍認證的開銷。

- 您可能需要支持其他的認證方式,例如基於PKI解決方案或Kerberos。每一個都有不同的性能指標,在最終方案確定前需要將其考慮進去。

- 通常情況下數據壓縮後進入大數據處理系統。這么做好處非常明顯不細說。

- 針對不同演算法的效率、對cpu的使用量你需要進行比較來選出一個傳輸量、cpu使用量等方面均衡的壓縮演算法。

- 同樣,評估加密邏輯和演算法,然後再選擇。

- 明智的做法是敏感信息始終進行限制。

- 在審計跟蹤表或登錄時您可能需要維護記錄或類似的訪問,更新等不同的活動記錄。這可能需要根據不同的監管策略和用戶需求個性化的進行設計和修改。

- 注意,這種需求不僅增加了數據處理的復雜度,但會增加存儲成本。

- 盡量使用下層提供的安全技術,例如操作系統、資料庫等。這些安全解決方案會比你自己設計開發性能要好很多。

8. 總結

本文介紹了各種性能方面的技巧,這些技術性的知道可以作為打造大數據分析平台的一般准則。大數據分析平台非常復雜,為了滿足這種類型系統的性能需求,需要我們從開始建設的時候進行考量。

本文介紹的技術准則可以用在大數據平台建設的各個不同階段,包括安全如何影響大數據分析平台的性能。

⑶ 如何搭建大數據分析平台

1、 搭建大數據分析平台的背景
在大數據之前,BI就已經存在很久了,簡單把大數據等同於BI,明顯是不恰當的。但兩者又是緊密關聯的,相輔相成的。BI是達成業務管理的應用工具,沒有BI,大數據就沒有了價值轉化的工具,就無法把數據的價值呈現給用戶,也就無法有效地支撐企業經營管理決策;大數據則是基礎,沒有大數據,BI就失去了存在的基礎,沒有辦法快速、實時、高效地處理數據,支撐應用。 所以,數據的價值發揮,大數據平台的建設,必然是囊括了大數據處理與BI應用分析建設的。
2、 大數據分析平台的特點
數據攝取、數據管理、ETL和數據倉庫:提供有效的數據入庫與管理數據用於管理作為一種寶貴的資源。
Hadoop系統功能:提供海量存儲的任何類型的數據,大量處理功率和處理能力幾乎是無限並行工作或任務
流計算在拉動特徵:用於流的數據、處理數據並將這些流作為單個流。
內容管理特徵:綜合生命周期管理和文檔內容。
數據治理綜合:安全、治理和合規解決方案來保護數據。
3、 怎樣去搭建大數據分析平台
大數據分析處理平台就是整合當前主流的各種具有不同側重點的大數據處理分析框架和工具,實現對數據的挖掘和分析,一個大數據分析平台涉及到的組件眾多,如何將其有機地結合起來,完成海量數據的挖掘是一項復雜的工作。我們可以利用億信一站式數據分析平台(ABI),可以快速構建大數據分析平台,該平台集合了從數據源接入到ETL和數據倉庫進行數據整合,再到數據分析,全部在一個平台上完成。
億信一站式數據分析平台(ABI)囊括了企業全部所需的大數據分析工具。ABI可以對各類業務進行前瞻性預測分析,並為企業各層次用戶提供統一的決策分析支持,提升數據共享與流轉能力。

⑷ 大數據平台是什麼什麼時候需要大數據平台如何建立大數據平台

首先我們要了解Java語言和Linux操作系統,這兩個是學習大數據的基礎,學習的順序不分前後。

Java :只要了解一些基礎即可,做大數據不需要很深的Java 技術,學java SE 就相當於有學習大數據基礎。

Linux:因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的扎實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑,學會shell就能看懂腳本這樣能更容易理解和配置大數據集群。還能讓你對以後新出的大數據技術學習起來更快。

Hadoop:這是現在流行的大數據處理平台幾乎已經成為大數據的代名詞,所以這個是必學的。Hadoop裡麵包括幾個組件HDFS、MapRece和YARN,HDFS是存儲數據的地方就像我們電腦的硬碟一樣文件都存儲在這個上面,MapRece是對數據進行處理計算的,它有個特點就是不管多大的數據只要給它時間它就能把數據跑完,但是時間可能不是很快所以它叫數據的批處理。

Zookeeper:這是個萬金油,安裝Hadoop的HA的時候就會用到它,以後的Hbase也會用到它。它一般用來存放一些相互協作的信息,這些信息比較小一般不會超過1M,都是使用它的軟體對它有依賴,對於我們個人來講只需要把它安裝正確,讓它正常的run起來就可以了。

Mysql:我們學習完大數據的處理了,接下來學習學習小數據的處理工具mysql資料庫,因為一會裝hive的時候要用到,mysql需要掌握到什麼層度那?你能在Linux上把它安裝好,運行起來,會配置簡單的許可權,修改root的密碼,創建資料庫。這里主要的是學習SQL的語法,因為hive的語法和這個非常相似。

Sqoop:這個是用於把Mysql里的數據導入到Hadoop里的。當然你也可以不用這個,直接把Mysql數據表導出成文件再放到HDFS上也是一樣的,當然生產環境中使用要注意Mysql的壓力。

Hive:這個東西對於會SQL語法的來說就是神器,它能讓你處理大數據變的很簡單,不會再費勁的編寫MapRece程序。有的人說Pig那?它和Pig差不多掌握一個就可以了。

Oozie:既然學會Hive了,我相信你一定需要這個東西,它可以幫你管理你的Hive或者MapRece、Spark腳本,還能檢查你的程序是否執行正確,出錯了給你發報警並能幫你重試程序,最重要的是還能幫你配置任務的依賴關系。我相信你一定會喜歡上它的,不然你看著那一大堆腳本,和密密麻麻的crond是不是有種想屎的感覺。

Hbase:這是Hadoop生態體系中的NOSQL資料庫,他的數據是按照key和value的形式存儲的並且key是唯一的,所以它能用來做數據的排重,它與MYSQL相比能存儲的數據量大很多。所以他常被用於大數據處理完成之後的存儲目的地。

Kafka:這是個比較好用的隊列工具,隊列是干嗎的?排隊買票你知道不?數據多了同樣也需要排隊處理,這樣與你協作的其它同學不會叫起來,你干嗎給我這么多的數據(比如好幾百G的文件)我怎麼處理得過來,你別怪他因為他不是搞大數據的,你可以跟他講我把數據放在隊列里你使用的時候一個個拿,這樣他就不在抱怨了馬上灰流流的去優化他的程序去了,因為處理不過來就是他的事情。而不是你給的問題。當然我們也可以利用這個工具來做線上實時數據的入庫或入HDFS,這時你可以與一個叫Flume的工具配合使用,它是專門用來提供對數據進行簡單處理,並寫到各種數據接受方(比如Kafka)的。

Spark:它是用來彌補基於MapRece處理數據速度上的缺點,它的特點是把數據裝載到內存中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。Java語言或者Scala都可以操作它,因為它們都是用JVM的。

⑸ 如何設計企業級大數據分析平台

所謂的大數據平台不是獨立存在的,比如網路是依賴搜索引擎獲得大數據並開展業務的,阿里是通過電子商務交易獲得大數據並開展業務的,騰訊是通過社交獲得大數據並開始業務的,所以說大數據平台不是獨立存在的,重點是如何搜集和沉澱數據,如何分析數據並挖掘數據的價值。

我可能還不夠資格回答這個問題,沒有經歷過一個公司大數據平台從無到有到復雜的過程。不過說說看法吧,也算是梳理一下想法找找噴。
這是個需求驅動的過程。
曾經聽過spotify的分享,印象很深的是,他們分享說,他們的hadoop集群第一次故障是因為,機器放在靠窗的地方,太陽曬了當機了(笑)。從簡單的沒有機房放在自家窗前的集群到一直到現在復雜的數據平台,這是一個不斷演進的過程。
對小公司來說,大概自己找一兩台機器架個集群算算,也算是大數據平台了。在初創階段,數據量會很小,不需要多大的規模。這時候組件選擇也很隨意,Hadoop一套,任務調度用腳本或者輕量的框架比如luigi之類的,數據分析可能hive還不如導入RMDB快。監控和部署也許都沒時間整理,用腳本或者輕量的監控,大約是沒有ganglia、nagios,puppet什麼的。這個階段也許算是技術積累,用傳統手段還是真大數據平台都是兩可的事情,但是為了今後的擴展性,這時候上Hadoop也許是不錯的選擇。
當進入高速發展期,也許擴容會跟不上計劃,不少公司可能會遷移平台到雲上,比如AWS阿里雲什麼的。小規模高速發展的平台,這種方式應該是經濟實惠的,省了運維和管理的成本,擴容比較省心。要解決的是選擇平台本身提供的服務,計算成本,打通數據出入的通道。整個數據平台本身如果走這條路,可能就已經基本成型了。走這條路的比較有名的應該是netflix。
也有一個階段,你發現雲服務的費用太高,雖然省了你很多事,但是花錢嗖嗖的。幾個老闆一合計,再玩下去下個月工資發布出來了。然後無奈之下公司開始往私有集群遷移。這時候你大概需要一群靠譜的運維,幫你監管機器,之前兩三台機器登錄上去看看狀態換個磁碟什麼的也許就不可能了,你面對的是成百上千台主機,有些關鍵服務必須保證穩定,有些是數據節點,磁碟三天兩頭損耗,網路可能被壓得不堪重負。你需要一個靠譜的人設計網路布局,設計運維規范,架設監控,值班團隊走起7*24小時隨時准備出台。然後上面再有平台組真的大數據平台走起。
然後是選型,如果有技術實力,可以直接用社區的一整套,自己管起來,監控部署什麼的自己走起。這個階段部署監控和用戶管理什麼的都不可能像兩三個節點那樣人肉搞了,配置管理,部署管理都需要專門的平台和組件;定期Review用戶的作業和使用情況,決定是否擴容,清理數據等等。否則等機器和業務進一步增加,團隊可能會死的很慘,疲於奔命,每天事故不斷,進入惡性循環。
當然有金錢實力的大戶可以找Cloudera,Hortonworks,國內可以找華為星環,會省不少事,適合非互聯網土豪。當然互聯網公司也有用這些東西的,比如Ebay。
接下去你可能需要一些重量的組件幫你做一些事情。
比如你的數據接入,之前可能找個定時腳本或者爬log發包找個伺服器接收寫入HDFS,現在可能不行了,這些大概沒有高性能,沒有異常保障,你需要更強壯的解決方案,比如Flume之類的。
你的業務不斷壯大,老闆需要看的報表越來越多,需要訓練的數據也需要清洗,你就需要任務調度,比如oozie或者azkaban之類的,這些系統幫你管理關鍵任務的調度和監控。
數據分析人員的數據大概可能漸漸從RDBMS搬遷到集群了,因為傳統資料庫已經完全hold不住了,但他們不會寫代碼,所以你上馬了Hive。然後很多用戶用了Hive覺得太慢,你就又上馬交互分析系統,比如Presto,Impala或者SparkSQL。
你的數據科學家需要寫ML代碼,他們跟你說你需要Mahout或者Spark MLLib,於是你也部署了這些。
至此可能數據平台已經是工程師的日常工作場所了,大多數業務都會遷移過來。這時候你可能面臨很多不同的問題。
比如各個業務線數據各種數據表多的一塌糊塗,不管是你還是寫數據的人大概都不知道數據從哪兒來,接下去到哪兒去。你就自己搞了一套元數據管理的系統。
你分析性能,發現你們的數據都是上百Column,各種復雜的Query,裸存的Text格式即便壓縮了也還是慢的要死,於是你主推用戶都使用列存,Parquet,ORC之類的。
又或者你發現你們的ETL很長,中間生成好多臨時數據,於是你下狠心把pipeline改寫成Spark了。
再接下來也許你會想到花時間去維護一個門戶,把這些零散的組件都整合到一起,提供統一的用戶體驗,比如一鍵就能把數據從資料庫chua一下拉到HDFS導入Hive,也能一鍵就chua一下再搞回去;點幾下就能設定一個定時任務,每天跑了給老闆自動推送報表;或者點一下就能起一個Storm的topology;或者界面上寫幾個Query就能查詢Hbase的數據。這時候你的數據平台算是成型了。
當然,磕磕碰碰免不了。每天你都有新的問題和挑戰,否則你就要失業了不是?
你發現社區不斷在解決你遇到過的問題,於是你們架構師每天分出很多時間去看社區的進展,有了什麼新工具,有什麼公司發布了什麼項目解決了什麼問題,興許你就能用上。
上了這些亂七八糟的東西,你以為就安生了?Hadoop平台的一個大特點就是坑多。尤其是新做的功能新起的項目。對於平台組的人,老闆如果知道這是天然坑多的平台,那他也許會很高興,因為跟進社區,幫忙修bug,一起互動其實是很提升公司影響力的實情。當然如果老闆不理解,你就自求多福吧,招幾個老司機,出了問題能馬上帶路才是正道。當然團隊的技術積累不能不跟上,因為數據平台還是亂世,三天不跟進你就不知道世界是什麼樣了。任何一個新技術,都是坑啊坑啊修啊修啊才完善的。如果是關鍵業務換技術,那需要小心再小心,技術主管也要有足夠的積累,能夠駕馭,知道收益和風險。

⑹ 大數據平台搭建需要了解什麼以及怎麼去設計求大神解答

大數據平台搭建吹的有點什麼意思,怎麼去設置?求大神覺得這是編的簡直就要成為你就這么過去時間溝通個人打箭頭調著各種各樣的酒。這邊那個打架。

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837