A. 公司級大數據處理平台的構建需要做哪些准備
按照大數據處理的流程,分為數據採集、數據存儲、數據提取、數據挖掘、數據分析,數據展現和應用。以下是鏈家網的案例,採用Hadoop集群建立BI和報表平台,以及採用業務員自助分析和數據挖掘、數據分析人員借用大數據平台的集群運算能力挖掘數據的雙模式業務。
除此之外,更傳統的企業對於大數據平台的應用也是基於以上的流程。
引用某大數據平台建設的案例,該機構是國家性研究機構,建立大數據平台主要收集市場數據,出台國家級的研究性報告,用於輔助市場決策。
從建設的及流程開始講起吧,算是提供一個方法論。
第一步是數據整合,對多源多類型的數據進行整合,實現數據共享。目前以帆軟報表FineReport為數據處理工具,以SQLServer為資料庫存儲平台,整合信息中心常用業務數據,常用的業務數據包括價格、進出口以及平衡表等。
第二步就是數據的抓取、處理激畢和分析並自動化生成系列產品報告,實現目標是解放生產力御盯。把業務人員從採集、整理、處理數據的體力勞動中解放出來,集中精力於市場深度分析研究、模型建立鎮鉛和。本質上還是數據整合,不同地方是數據自動採集,並依據構建的模型。技術選型:FineReport+FineBI+Python+Kettle(ETL工具)+SQLServer。
第三步是數據挖掘,目標是構建行業模型和行業計量模型實現科學決策。
依託一期、二期整合的數據和大數據,接下來將構建大數據能力,提供標准化的服務能力。但糧油的分析模型、行業積累模型,是一種因素模型、經驗模型,一定程度上依賴於分析師對市場的看法,這個模型分析結果需要分析師經驗和直覺來判斷,技術上要到位,所以這里通過帆軟報表FineReport和商業智能FineBI的結果,從數據報表、數據分析、數據挖掘三個層次,把數據轉化為信息把數據轉化為信息,使得業務人員能夠利用這些信息,輔助決策,這就是商業智能主要解決的問題。無論在哪個層次,核心目標就是「把數據轉化為信息」。
B. 鏁板瓧鍖栫暅鐗т笟鍙戝睍鍦ㄦ惌寤哄ぇ鏁版嵁騫沖彴鏂歸潰闇瑕佹敞鎰忎粈涔
鏁板瓧鍖栫暅鐗т笟鍙戝睍鍦ㄦ惌寤哄ぇ鏁版嵁騫沖彴鏂歸潰闇瑕佹敞鎰忎互涓嬪嚑涓鍏抽敭瑕佺礌錛氭暟鎹鏀墮泦涓庢暣鍚堛佹暟鎹鍒嗘瀽涓庡勭悊銆佹暟鎹瀹夊叏涓庨殣縐佷繚鎶わ紝浠ュ強鏁版嵁鍏變韓涓庡悎浣溿
棣栧厛錛屾暟鎹鏀墮泦涓庢暣鍚堟槸鎼寤哄ぇ鏁版嵁騫沖彴鐨勫熀紜銆傚湪鐣滅墽涓氫腑錛岄渶瑕佹敹闆嗗悇縐嶆暟鎹錛屽寘鎷鍔ㄧ墿鐢熼暱鎯呭喌銆侀ゲ鏂欐秷鑰椼佺柧鐥呴槻娌葷瓑銆傝繖浜涙暟鎹鏉ユ簮浜庝笉鍚岀殑娓犻亾鍜岃懼囷紝濡備紶鎰熷櫒銆佺洃鎺ф憚鍍忓ご銆佺Щ鍔ㄨ懼囩瓑銆傚洜姝わ紝瑕佺『淇濇暟鎹鐨勫噯紜鎬у拰鍙闈犳э紝鍚屾椂鑰冭檻濡備綍鏈夋晥鍦版暣鍚堣繖浜涙暟鎹錛屼互渚胯繘琛屽悗緇鐨勫垎鏋愬拰鍒╃敤銆
鍏舵★紝鏁版嵁鍒嗘瀽涓庡勭悊鏄澶ф暟鎹騫沖彴鐨勬牳蹇冨姛鑳姐傞氳繃鏁版嵁鍒嗘瀽錛屽彲浠ユ彮紺虹暅鐗т笟鐢熶駭涓鐨勮勫緥鍜岃秼鍔匡紝涓哄喅絳栨彁渚涙敮鎸併備緥濡傦紝閫氳繃鍒嗘瀽鍔ㄧ墿鐨勭敓闀挎暟鎹錛屽彲浠ラ勬祴鍏舵湭鏉ョ殑鐢熼暱鎬ц兘鍜屼駭鑲夐噺錛屼粠鑰屼紭鍖栭ゲ鏂欓厤鏂瑰拰楗插吇綆$悊銆傛ゅ栵紝鏁版嵁澶勭悊鎶鏈濡傛暟鎹鎸栨帢銆佹満鍣ㄥ︿範絳変篃鍙浠ョ敤浜庡彂鐜板紓甯告儏鍐靛拰瑙e喅闂棰樸
鐒跺悗錛屾暟鎹瀹夊叏涓庨殣縐佷繚鎶ゆ槸鎼寤哄ぇ鏁版嵁騫沖彴鏃跺繀欏婚噸瑙嗙殑闂棰樸傜暅鐗т笟鏁版嵁娑夊強鍒頒紒涓氱殑鍟嗕笟鏈哄瘑鍜屽啘鎴風殑涓浜洪殣縐侊紝涓鏃︽硠闇詫紝鍙鑳戒細閫犳垚緇忔祹鎹熷け鍜屼俊浠誨嵄鏈恆傚洜姝わ紝闇瑕侀氳繃鎶鏈鎵嬫靛拰綆$悊鎺鏂斤紝紜淇濇暟鎹鐨勫畨鍏ㄦу拰闅愮佷繚鎶ゃ備緥濡傦紝閲囩敤鍔犲瘑浼犺緭鍜屽瓨鍌ㄦ暟鎹錛屽緩絝嬫暟鎹璁塊棶鏉冮檺綆$悊鍒跺害絳夈
鏈鍚庯紝鏁版嵁鍏變韓涓庡悎浣滄槸鎺ㄥ姩鏁板瓧鍖栫暅鐗т笟鍙戝睍鐨勫叧閿銆備笉鍚屼紒涓氬拰鏈烘瀯涔嬮棿鍙浠ラ氳繃鍏變韓鏁版嵁錛屽疄鐜拌祫婧愪紭鍖栭厤緗鍜屽崗鍚屽壋鏂般備緥濡傦紝縐戠爺鏈烘瀯鍙浠ヨ幏鍙栧吇孌栦紒涓氱殑鏁版嵁錛屽紑灞曠戝︾爺絀跺拰鎶鏈寮鍙戱紝涓轟紒涓氭彁渚涙洿濂界殑鎶鏈鏀鎸佸拰鏈嶅姟銆
緇間笂鎵榪幫紝鏁板瓧鍖栫暅鐗т笟鍙戝睍鍦ㄦ惌寤哄ぇ鏁版嵁騫沖彴鏃墮渶瑕佹敞鎰忔暟鎹鏀墮泦涓庢暣鍚堛佹暟鎹鍒嗘瀽涓庡勭悊銆佹暟鎹瀹夊叏涓庨殣縐佷繚鎶わ紝浠ュ強鏁版嵁鍏變韓涓庡悎浣溿傝繖浜涘洜緔犲逛簬鎻愰珮鐣滅墽涓氱敓浜ф晥鐜囥侀檷浣庢垚鏈銆佹彁鍗囦駭鍝佽川閲忕瓑鏂歸潰鍏鋒湁閲嶈佹剰涔夈
C. 大數據工程師進行數據平台建設 有哪些方案
【導語】數據平台其實在企業發展的進程中都是存在的,在進入到數據爆發式增加的大數據時代,傳統的企業級資料庫,在數據管理應用上,並不能完全滿意各項需求。就企業自身而言,需求更加契合需求的數據平台建設方案,那麼大數據工程師進行數據平台建設,有哪些方案呢?下面就來細細了解一下吧。
1、敏捷型數據集市
數據集市也是常見的一種方案,底層的數據產品與分析層綁定,使得應用層可以直接對底層數據產品中的數據進行拖拽式分析。數據集市,主要的優勢在於對業務數據進行簡單的、快速的整合,實現敏捷建模,並且大幅提升數據的處理速度。
2、常規數據倉庫
數據倉庫的重點,是對數據進行整合,同時也是對業務邏輯的一個梳理。數據倉庫雖然也可以打包成SAAS那種Cube一類的東西來提升數據的讀取性能,但是數據倉庫的作用,更多的是為了解決公司的業務問題。
3、Hadoop分布式系統架構
當然,大規模分布式系統架構,Hadoop依然站在不可代替的關鍵位置上。雅虎、Facebook、網路、淘寶等國內外大企,最初都是基於Hadoop來展開的。
Hadoop生態體系龐大,企業基於Hadoop所能實現的需求,也不僅限於數據分析,也包括機器學習、數據挖掘、實時系統等。企業搭建大數據系統平台,Hadoop的大數據處理能力、高可靠性、高容錯性、開源性以及低成本,都使得它成為首選。
4、MPP(大規模並行處理)架構
進入大數據時代以來,傳統的主機計算模式已經不能滿足需求了,分布式存儲和分布式計算才是王道。大家所熟悉的Hadoop
MapRece框架以及MPP計算框架,都是基於這一背景產生。
MPP架構的代表產品,就是Greenplum。Greenplum的資料庫引擎是基於Postgresql的,並且通過Interconnnect神器實現了對同一個集群中多個Postgresql實例的高效協同和並行計算。
關於大數據工程師進行數據平台建設方案的有關內容,就給大家介紹到這里了,中國社會發展至今,大數據的應用正在逐漸普及,所以未來前景不可估量,希望想從事此行業的人員能夠合理選擇。
D. 搭建大數據平台的具體步驟是什麼
1、操作體系的挑選
操作體系一般使用開源版的RedHat、Centos或許Debian作為底層的構建渠道,要根據大數據渠道所要建立的數據剖析東西能夠支撐的體系,正確的挑選操作體系的版本。
2、建立Hadoop集群
Hadoop作為一個開發和運行處理大規模數據的軟體渠道,實現了在大量的廉價計算機組成的集群中對海量數據進行分布式計算。Hadoop結構中最核心的規劃是HDFS和MapRece,HDFS是一個高度容錯性的體系,合適布置在廉價的機器上,能夠供給高吞吐量的數據訪問,適用於那些有著超大數據集的應用程序;MapRece是一套能夠從海量的數據中提取數據最終回來成果集的編程模型。在生產實踐應用中,Hadoop非常合適應用於大數據存儲和大數據的剖析應用,合適服務於幾千台到幾萬台大的伺服器的集群運行,支撐PB級別的存儲容量。
3、挑選數據接入和預處理東西
面臨各種來源的數據,數據接入便是將這些零散的數據整合在一起,歸納起來進行剖析。數據接入首要包括文件日誌的接入、資料庫日誌的接入、關系型資料庫的接入和應用程序等的接入,數據接入常用的東西有Flume,Logstash,NDC(網易數據運河體系),sqoop等。
4、數據存儲
除了Hadoop中已廣泛應用於數據存儲的HDFS,常用的還有分布式、面向列的開源資料庫Hbase,HBase是一種key/value體系,布置在HDFS上,與Hadoop一樣,HBase的目標首要是依靠橫向擴展,通過不斷的添加廉價的商用伺服器,添加計算和存儲才能。同時hadoop的資源管理器Yarn,能夠為上層應用供給統一的資源管理和調度,為集群在利用率、資源統一等方面帶來巨大的優點。
5、挑選數據挖掘東西
Hive能夠將結構化的數據映射為一張資料庫表,並供給HQL的查詢功能,它是建立在Hadoop之上的數據倉庫根底架構,是為了削減MapRece編寫工作的批處理體系,它的出現能夠讓那些通曉SQL技術、可是不熟悉MapRece、編程才能較弱和不擅長java的用戶能夠在HDFS大規模數據集上很好的利用SQL言語查詢、匯總、剖析數據。
6、數據的可視化以及輸出API
關於處理得到的數據能夠對接主流的BI體系,比如國外的Tableau、Qlikview、PowrerBI等,國內的SmallBI和新興的網易有數(可免費試用)等,將成果進行可視化,用於決策剖析;或許迴流到線上,支撐線上業務的開展。
E. 如何搭建大數據分析平台
1、 搭建大數據分析平台的背景
在大數據之前,BI就已經存在很久了,簡單把大數據等同於BI,明顯是不恰當的。但兩者又是緊密關聯的,相輔相成的。BI是達成業務管理的應用工具,沒有BI,大數據就沒有了價值轉化的工具,就無法把數據的價值呈現給用戶,也就無法有效地支撐企業經營管理決策;大數據則是基礎,沒有大數據,BI就失去了存在的基礎,沒有辦法快速、實時、高效地處理數據,支撐應用。 所以,數據的價值發揮,大數據平台的建設,必然是囊括了大數據處理與BI應用分析建設的。
2、 大數據分析平台的特點
數據攝取、數據管理、ETL和數據倉庫:提供有效的數據入庫與管理數據用於管理作為一種寶貴的資源。
Hadoop系統功能:提供海量存儲的任何類型的數據,大量處理功率和處理能力幾乎是無限並行工作或任務
流計算在拉動特徵:用於流的數據、處理數據並將這些流作為單個流。
內容管理特徵:綜合生命周期管理和文檔內容。
數據治理綜合:安全、治理和合規解決方案來保護數據。
3、 怎樣去搭建大數據分析平台
大數據分析處理平台就是整合當前主流的各種具有不同側重點的大數據處理分析框架和工具,實現對數據的挖掘和分析,一個大數據分析平台涉及到的組件眾多,如何將其有機地結合起來,完成海量數據的挖掘是一項復雜的工作。我們可以利用億信一站式數據分析平台(ABI),可以快速構建大數據分析平台,該平台集合了從數據源接入到ETL和數據倉庫進行數據整合,再到數據分析,全部在一個平台上完成。
億信一站式數據分析平台(ABI)囊括了企業全部所需的大數據分析工具。ABI可以對各類業務進行前瞻性預測分析,並為企業各層次用戶提供統一的決策分析支持,提升數據共享與流轉能力。
F. 如何建立一個完整可用的安全大數據平台
「
要建立一個大數據系統,我們需要從數據流的源頭跟蹤到最後有價值的輸出,並在現有的Hadoop和大數據生態圈內根據實際需求挑選並整合各部分合適的組件來構建一個能夠支撐多種查詢和分析功能的系統平台。這其中既包括了對數據存儲的選擇,也涵蓋了數據線上和線下處理分離等方面的思考和權衡。此外,沒有任何一個引入大數據解決方案的商業應用在生產環境上承擔的起安全隱患。
1
計算框架篇
大數據的價值
只有在能指導人們做出有價值的決定時,數據才能體現其自身的價值。因此,大數據技術要服務於實際的用途,才是有意義的。一般來說,大數據可以從以下三個方面指導人們做出有價值的決定:
報表生成(比如根據用戶歷史點擊行為的跟蹤和綜合分析、 應用程序活躍程度和用戶粘性計算等);
診斷分析(例如分析為何用戶粘性下降、根據日誌分析系統為何性能下降、垃圾郵件以及病毒的特徵檢測等);
決策(例如個性化新聞閱讀或歌曲推薦、預測增加哪些功能能增加用戶粘性、幫助廣告主進行廣告精準投放、設定垃圾郵件和病毒攔截策略等)。
圖 1
進一步來看,大數據技術從以下三個方面解決了傳統技術難以達成的目標(如圖1):
在歷史數據上的低延遲(互動式)查詢,目標是加快決策過程和時間, 例如分析一個站點為何變緩慢並嘗試修復它;
在實時數據上的低延遲查詢,目的是幫助用戶和應用程序在實時數據上做出決策, 例如實時檢測並阻攔病毒蠕蟲(一個病毒蠕蟲可以在1.3秒內攻擊1百萬台主機);
更加精細高級的數據處理演算法,這可以幫助用戶做出「更好」的決策, 例如圖數據處理、異常點檢測、趨勢分析及其他機器學習演算法。
蛋糕模式
從將數據轉換成價值的角度來說,在Hadoop生態圈十年蓬勃成長的過程中,YARN和Spark這二者可以算得上是里程碑事件。Yarn的出現使得集群資源管理和數據處理流水線分離,大大革新並推動了大數據應用層面各種框架的發展(SQL on Hadoop框架, 流數據,圖數據,機器學習)。
它使得用戶不再受到MapRece開發模式的約束,而是可以創建種類更為豐富的分布式應用程序,並讓各類應用程序運行在統一的架構上,消除了為其他框架維護獨有資源的開銷。就好比一個多層蛋糕,下面兩層是HDFS和Yarn, 而MapRece就只是蛋糕上層的一根蠟燭而已,在蛋糕上還能插各式各樣的蠟燭。
在這一架構體系中,總體數據處理分析作業分三塊(圖2),在HBase上做互動式查詢(Apache Phoenix, Cloudera Impala等), 在歷史數據集上編寫MapRece程序抑或利用Hive等做批處理業務, 另外對於實時流數據分析Apache Storm則會是一種標准選擇方案。
雖然Yarn的出現極大地豐富了Hadoop生態圈的應用場景,但仍存有兩個顯而易見的挑戰:一是在一個平台上需要維護三個開發堆棧;二是在不同框架內很難共享數據,比如很難在一個框架內對流數據做互動式查詢。這也意味著我們需要一個更為統一和支持更好抽象的計算框架的出現。
圖 2
一統江湖
Spark的出現使得批處理任務,互動式查詢,實時流數據處理被整合到一個統一的框架內(圖3),同時Spark和現有的開源生態系統也能夠很好地兼容(Hadoop, HDFS, Yarn, Hive, Flume)。 通過啟用內存分布數據集,優化迭代工作負載, 用戶能夠更簡單地操作數據,並在此基礎上開發更為精細的演算法,如機器學習和圖演算法等。
有三個最主要的原因促使Spark目前成為了時下最火的大數據開源社區(擁有超過來自200多個公司的800多個contributors):
Spark可以擴展部署到超過8000節點並處理PB級別的數據,同時也提供了很多不錯的工具供應用開發者進行管理和部署;
Spark提供了一個互動式shell供開發者可以用Scala或者Python即時性試驗不同的功能;
Spark提供了很多內置函數使得開發者能夠比較容易地寫出低耦合的並且能夠並發執行的代碼,這樣開發人員就更能集中精力地為用戶提供更多的業務功能而不是花費時間在優化並行化代碼之上。
當然Spark也和當年的MapRece一樣不是萬靈葯,比如對實時性要求很高的流數據處理上Apache Storm還是被作為主流選擇, 因為Spark Streaming實際上是microbatch(將一個流數據按時間片切成batch,每個batch提交一個job)而不是事件觸發實時系統,所以雖然支持者們認為microbatch在系統延時性上貢獻並不多,但在生產環境中和Apache Storm相比還不是特別能滿足對低延時要求很高的應用場景。
比如在實踐過程中, 如果統計每條消息的平均處理時間,很容易達到毫秒級別,但一旦統計類似service assurance(確保某條消息在毫秒基本能被處理完成)的指標, 系統的瓶頸有時還是不能避免。
但同時我們不能不注意到,在許多用例當中,與流數據的交互以及和靜態數據集的結合是很有必要的, 例如我們需要在靜態數據集上進行分類器的模型計算,並在已有分類器模型的基礎上,對實時進入系統的流數據進行交互計算來判定類別。
由於Spark的系統設計對各類工作(批處理、流處理以及互動式工作)進行了一個共有抽象,並且生態圈內延伸出了許多豐富的庫(MLlib機器學習庫、SQL語言API、GraphX), 使得用戶可以在每一批流數據上進行靈活的Spark相關操作,在開發上提供了許多便利。
Spark的成熟使得Hadoop生態圈在短短一年之間發生了翻天覆地的變化, Cloudera和Hortonworks紛紛加入了Spark陣營,而Hadoop項目群中除了Yarn之外已經沒有項目是必須的了(雖然Mesos已在一些場合替代了Yarn), 因為就連HDFS,Spark都可以不依賴。但很多時候我們仍然需要像Impala這樣的依賴分布式文件系統的MPP解決方案並利用Hive管理文件到表的映射,因此Hadoop傳統生態圈依然有很強的生命力。
另外在這里簡要對比一下互動式分析任務中各類SQL on Hadoop框架,因為這也是我們在實際項目實施中經常遇到的問題。我們主要將注意力集中在Spark SQL, Impala和Hive on Tez上, 其中Spark SQL是三者之中歷史最短的,論文發表在15年的SIGMOD會議上, 原文對比了數據倉庫上不同類型的查詢在Shark(Spark最早對SQL介面提供的支持)、Spark SQL和Impala上的性能比較。
也就是說, 雖然Spark SQL在Shark的基礎上利用Catalyst optimizer在代碼生成上做了很多優化,但總體性能還是比不上Impala, 尤其是當做join操作的時候, Impala可以利用「predicate pushdown」更早對表進行選擇操作從而提高性能。
不過Spark SQL的Catalyst optimizer一直在持續優化中,相信未來會有更多更好的進展。Cloudera的Benchmark評測中Impala一直比其他SQL on Hadoop框架性能更加優越,但同時Hortonworks評測則指出雖然單個數據倉庫查詢Impala可以在很短的時間內完成,但是一旦並發多個查詢Hive on Tez的優勢就展示出來。另外Hive on Tez在SQL表達能力也要比Impala更強(主要是因為Impala的嵌套存儲模型導致的), 因此根據不同的場景選取不同的解決方案是很有必要的。
圖 3
各領風騷抑或代有才人出?
近一年比較吸引人眼球的Apache Flink(與Spark一樣已有5年歷史,前身已經是柏林理工大學一個研究性項目,被其擁躉推崇為繼MapRece, Yarn,Spark之後第四代大數據分析處理框架)。 與Spark相反,Flink是一個真正的實時流數據處理系統,它將批處理看作是流數據的特例,同Spark一樣它也在嘗試建立一個統一的平台運行批量,流數據,互動式作業以及機器學習,圖演算法等應用。
Flink有一些設計思路是明顯區別於Spark的,一個典型的例子是內存管理,Flink從一開始就堅持自己精確的控制內存使用並且直接操作二進制數據,而Spark一直到1.5版本都還是試用java的內存管理來做數據緩存,這也導致了Spark很容易遭受OOM以及JVM GC帶來的性能損失。
但是從另外一個角度來說, Spark中的RDD在運行時被存成java objects的設計模式也大大降低了用戶編程設計門檻, 同時隨著Tungsten項目的引入,Spark現在也逐漸轉向自身的內存管理, 具體表現為Spark生態圈內從傳統的圍繞RDD(分布式java對象集合)為核心的開發逐漸轉向以DataFrame(分布式行對象集合)為核心。
總的來說,這兩個生態圈目前都在互相學習,Flink的設計基因更為超前一些,但Spark社區活躍度大很多,發展到目前毫無疑問是更為成熟的選擇,比如對數據源的支持(HBase, Cassandra, Parquet, JSON, ORC)更為豐富以及更為統一簡潔的計算表示。另一方面,Apache Flink作為一個由歐洲大陸發起的項目,目前已經擁有來自北美、歐洲以及亞洲的許多貢獻者,這是否能夠一改歐洲在開源世界中一貫的被動角色,我們將在未來拭目以待。
2
NoSQL資料庫篇
NoSQL資料庫在主流選擇上依舊集中在MongoDB, HBase和Cassandra這三者之間。在所有的NoSQL選擇中,用C 編寫的MongoDB幾乎應該是開發者最快也最易部署的選擇。MongoDB是一個面向文檔的資料庫,每個文檔/記錄/數據(包括爬取的網頁數據及其他大型對象如視頻等)是以一種BSON(Binary JSON)的二進制數據格式存儲, 這使得MongoDB並不需要事先定義任何模式, 也就是模式自由(可以把完全不同結構的記錄放在同一個資料庫里)。
MongoDB對於完全索引的支持在應用上是很方便的,同時也具備一般NoSQL分布式資料庫中可擴展,支持復制和故障恢復等功能。 MongoDB一般應用於高度伸縮性的緩存及大尺寸的JSON數據存儲業務中,但不能執行「JOIN」操作,而且數據佔用空間也比較大,最被用戶詬病的就是由於MongoDB提供的是資料庫級鎖粒度導致在一些情況下建索引操作會引發整個資料庫阻塞。一般來說,MongoDB完全可以滿足一些快速迭代的中小型項目的需求。
下面來主要談談Cassandra和HBase之間的比較選擇。Cassandra和HBase有著截然不同的基因血統。HBase和其底層依賴的系統架構源自於著名的Google FileSystem(發表於2003年)和Google BigTable設計(發表於2006年), 其克服了HDFS注重吞吐量卻犧牲I/O的缺點,提供了一個存儲中間層使得用戶或者應用程序可以隨機讀寫數據。
具體來說,HBase的更新和刪除操作實際上是先發生在內存MemStore中, 當MemStore滿了以後會Flush到StoreFile, 之後當StoreFile文件數量增長到一定閾值後會觸發Compact合並操作,因此HBase的更新操作其實是不斷追加的操作,而最終所有更新和刪除數據的持久化操作都是在之後Compact過程中進行的。
這使得應用程序在向內存MemStore寫入數據後,所做的修改馬上就能得到反映,用戶讀到的數據絕不會是陳舊的數據,保證了I/O高性能和數據完全一致性; 另一方面來說, HBase基於Hadoop生態系統的基因就已經決定了他自身的高度可擴展性、容錯性。
在數據模型上,Cassandra和HBase類似實現了一個key-value提供面向列式存儲服務,其系統設計參考了 Amazon Dynamo (發表於2007年) 分布式哈希(DHT)的P2P結構(實際上大部分Cassandra的初始工作都是由兩位從Amazon的Dynamo組跳槽到Facebook的工程師完成),同樣具有很高的可擴展性和容錯性等特點。
除此之外, 相對HBase的主從結構,Cassandra去中心化的P2P結構能夠更簡單地部署和維護,比如增加一台機器只需告知Cassandra系統新節點在哪,剩下的交給系統完成就行了。同時,Cassandra對多數據中心的支持也更好,如果需要在多個數據中心進行數據遷移Cassandra會是一個更優的選擇。
Eric Brewer教授提出的經典CAP理論認為任何基於網路的數據共享系統,最多隻能滿足數據一致性、可用性、分區容忍性三要素中的兩個要素。實際分布式系統的設計過程往往都是在一致性與可用性上進行取捨,相比於HBase數據完全一致性的系統設計,Cassandra選擇了在優先考慮數據可用性的基礎上讓用戶自己根據應用程序需求決定系統一致性級別。
比如:用戶可以配置QUONUM參數來決定系統需要幾個節點返回數據才能向客戶端做出響應,ONE指只要有一個節點返回數據就可以對客戶端做出響應,ALL指等於數據復制份數的所有節點都返回結果才能向客戶端做出響應,對於數據一致性要求不是特別高的可以選擇ONE,它是最快的一種方式。
從基因和發展歷史上來說,HBase更適合用做數據倉庫和大規模數據處理與分析(比如對網頁數據建立索引), 而Cassandra則更適合用作實時事務和互動式查詢服務。Cassandra在國外市場佔有比例和發展要遠比國內紅火, 在不少權威測評網站上排名都已經超過了HBase。目前Apache Cassandra的商業化版本主要由軟體公司DataStax進行開發和銷售推廣。另外還有一些NoSQL分布式資料庫如Riak, CouchDB也都在各自支持的廠商推動下取得了不錯的發展。
雖然我們也考慮到了HBase在實際應用中的不便之處比如對二級索引的支持程度不夠(只支持通過單個行鍵訪問,通過行鍵的范圍查詢,全表掃描),不過在明略的大數據基礎平台上,目前整合的是依然是HBase。
理由也很簡單,HBase出身就與Hadoop的生態系統緊密集成,其能夠很容易與其他SQL on Hadoop框架(Cloudera Impala, Apache Phoenix, or Hive on Tez)進行整合,而不需要重新部署一套分布式資料庫系統,而且可以很方便地將同樣的數據內容在同一個生態系統中根據不同框架需要來變換存儲格式(比如存儲成Hive表或者Parquet格式)。
我們在很多項目中都有需要用到多種SQL on Hadoop框架,來應對不同應用場景的情況,也體會到了在同一生態系統下部署多種框架的簡便性。 但同時我們也遇到了一些問題, 因為HBase項目本身與HDFS和Zookeeper系統分別是由不同開源團隊進行維護的,所以在系統整合時我們需要先對HBase所依賴的其他模塊進行設置再對HBase進行配置,在一定程度上降低了系統維護的友好性。
目前我們也已經在考慮將Cassandra應用到一些新的客戶項目中,因為很多企業級的應用都需要將線上線下資料庫進行分離,HBase更適合存儲離線處理的結果和數據倉庫,而更適合用作實時事務和並發交互性能更好的Cassandra作為線上服務資料庫會是一種很好的選擇。
3
大數據安全篇
隨著越來越多各式各樣的數據被存儲在大數據系統中,任何對企業級數據的破壞都是災難性的,從侵犯隱私到監管違規,甚至會造成公司品牌的破壞並最終影響到股東收益。給大數據系統提供全面且有效的安全解決方案的需求已經十分迫切:
大數據系統存儲著許多重要且敏感的數據,這些數據是企業長久以來的財富
與大數據系統互動的外部系統是動態變化的,這會給系統引入新的安全隱患
在一個企業的內部,不同Business Units會用不同的方式與大數據系統進行交互,比如線上的系統會實時給集群推送數據、數據科學家團隊則需要分析存儲在數據倉庫內的歷史數據、運維團隊則會需要對大數據系統擁有管理許可權。
因此為了保護公司業務、客戶、財務和名譽免於被侵害,大數據系統運維團隊必須將系統安全高度提高到和其他遺留系統一樣的級別。同時大數據系統並不意味著引入大的安全隱患,通過精細完整的設計,仍然能夠把一些傳統的系統安全解決方案對接到最新的大數據集群系統中。
一般來說,一個完整的企業級安全框架包括五個部分:
Administration: 大數據集群系統的集中式管理,設定全局一致的安全策略
Authentication: 對用戶和系統的認證
Authorization:授權個人用戶和組對數據的訪問許可權
Audit:維護數據訪問的日誌記錄
Data Protection:數據脫敏和加密以達到保護數據的目的
系統管理員要能夠提供覆蓋以上五個部分的企業級安全基礎設施,否則任何一環的缺失都可能給整個系統引入安全性風險。
在大數據系統安全集中式管理平台這塊,由Hortonworks推出的開源項目Apache Ranger就可以十分全面地為用戶提供Hadoop生態圈的集中安全策略的管理,並解決授權(Authorization)和審計(Audit)。例如,運維管理員可以輕松地為個人用戶和組對文件、數據等的訪問策略,然後審計對數據源的訪問。
與Ranger提供相似功能的還有Cloudera推出的Apache Sentry項目,相比較而言Ranger的功能會更全面一些。
而在認證(Authentication)方面, 一種普遍採用的解決方案是將基於Kerberos的認證方案對接到企業內部的LDAP環境中, Kerberos也是唯一為Hadoop全面實施的驗證技術。
另外值得一提的是Apache Knox Gateway項目,與Ranger提高集群內部組件以及用戶互相訪問的安全不同,Knox提供的是Hadoop集群與外界的唯一交互介面,也就是說所有與集群交互的REST API都通過Knox處理。這樣,Knox就給大數據系統提供了一個很好的基於邊緣的安全(perimeter-based security)。
基於以上提到的五個安全指標和Hadoop生態圈安全相關的開源項目, 已經足已證明基於Hadoop的大數據平台我們是能夠構建一個集中、一致、全面且有效的安全解決方案。
我市再ITjob管網上面找的
G. 企業的大數據分析平台應該如何構建
①確認數據分析方向。比如是分析社交數據,還是電商數據,亦或者是視頻數據,或者搜索數據。
②確認數據來源。比如來自騰訊,來自網路,來自阿里巴巴,來自實體店。
③數據分析師,去分析你獲取的數據。
H. 怎麼搭建大數據分析平台
未至科技數據中心解決方案是以組織價值鏈分析模型為理論指導,結合組織戰略規版劃和面向對象權的方法論,對組織信息化戰略進行規劃重造立足數據,以數據為基礎建立組織信息化標准,提供面向數據採集、處理、挖掘、分析、服務為組織提供一整套的基礎解決方案。未至數據中心解決方案採用了當前先進的大數據技術,基於Hadoop架構,利用HDFS、Hive、Impala等大數據技術架構組件和公司自有ETL工具等中間件產品,建立了組織內部高性能、高效率的信息資源大數據服務平台,實現組織內數億條以上數據的秒級實時查詢、更新、調用、分析等信息資源服務。未至數據中心解決方案將,為公安、教育、旅遊、住建等各行業業務數據中心、城市公共基礎資料庫平台、行業部門信息資源基礎資料庫建設和數據資源規劃、管理等業務提供了一體化的解決方案。
I. 如何打造高性能大數據分析平台
大數據分析系統作為一個關鍵性的系統在各個公司迅速崛起。但是這種海量規模的數據帶來了前所未有的性能挑戰。同時,如果大數據分析系統無法在第一時間為運營決策提供關鍵數據,那麼這樣的大數據分析系統一文不值。本文將從技術無關的角度討論一些提高性能的方法。下面我們將討論一些能夠應用在大數據分析系統不同階段的技巧和准則(例如數據提取,數據清洗,處理,存儲,以及介紹)。本文應作為一個通用准則,以確保最終的大數據分析平台能滿足性能要求。
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. 總結
本文介紹了各種性能方面的技巧,這些技術性的知道可以作為打造大數據分析平台的一般准則。大數據分析平台非常復雜,為了滿足這種類型系統的性能需求,需要我們從開始建設的時候進行考量。
本文介紹的技術准則可以用在大數據平台建設的各個不同階段,包括安全如何影響大數據分析平台的性能。
J. 如何創建一個大數據平台
首先要明來白大數據平台的基自礎,大數據的基礎就是數據,數據是要經過採集才能形成。
建立大數據平台,關鍵是使用比較好的信息採集技術。
這些技術,具有以下的特點:
信息採集系統的主要功能為:根據用戶自定義的任務配置,批量而精確地抽取網際網路目標網頁中的半結構化與非結構化數據,轉化為結構化的記錄,保存在本地資料庫中,用於內部使用或外網發布,快速實現外部信息的獲取。 如下圖所示:
淫才,這樣的信息採集技術,用途是非常廣泛的。