Ⅰ 青雲李威:在雲上做大數據平台有什麼獨特的挑戰
7月18日,"雲用戶生態發展論壇暨第三屆中國雲計算用戶大會"在北京國家會議中心召開。在下午的會議中,青雲QingCloud系統工程師及大數據平台負責人李威帶來主題為「大數據雲平台之最佳實踐」的精彩演講,以下是他的演講實錄:
李威:大家好,我是QingCloud青雲的系統工程師李威。今天我講的這個話題可能技術性有點強,可能需要大家費點腦子。分成幾大塊。第一,先說一下雲計算和大數據的關系。第二,在雲上做大數據平台有什麼獨特的挑戰。第三,我們會講一下大數據平台它有一個比較基本的,或者說通用的一個系統架構是什麼樣子。最後,分享一些我們自己的,包括和在客戶那兒的一些跟大數據相關的最佳實踐。
大數據的例子,我就不說太多了,說一些我們的一些企業客戶的。比如說第一個是一個非常大型的一個跨國的一個互聯網社交企業。然後他們會用我們在雲上的大數據的一些平台,包括一些具體的技術,會做比如用戶畫像。就是你在社交網路裡面,然後為什麼推薦給你的朋友正好是你可能會認識的,然後為什麼推薦給你的信息可能就是你感興趣的。這個都是用戶畫像用大數據來做的。
第二,像一個非常大型的互聯網的金融企業,它會用大數據做一些風控分析。因為在互聯網金融,尤其是互聯網金融行業裡面,它之所以可以和傳統金融PK,就是因為它在風控這方面可以用大數據技術把風險控制的非常小。大家可以想一想,在P2P平台上面,憑什麼沒有像以前傳統銀行各種人來調查你,沒有什麼抵押金,但是可以讓你用錢。包括政府部門海量信息檢索,比如它需要把全國的各種部門聯合起來,然後我需要有一個犯罪嫌疑人他有沒有可能在各個地方有一些其他數據,我可以搜索,可以挖掘,然後進行一些分析。
大數據很火,它跟雲計算到底什麼關系?其實我們認為大數據現在大家可能覺得到什麼地方都聽見大數據,其實很可能每個人說的不一樣,也得人說的是大數據平台,有的人說的是大數據的某個產品,有的人可能說的是大數據的某個應用,比如Alpha Go。
尤其在企業裡面,我們和客戶談的時候,客戶第一個比較想不明白的就是大數據的產品和技術太多了,而且每個場景都區別不是那麼明顯。所以,在大數據這個技術裡面,我們第一個要解決的就是到底怎麼選擇大數據的解決方案,怎麼為企業做大數據解決方案。但是,每個企業需求變化又特別大,或者有很多企業,就是傳統企業他們對大數據的需求不是非常明確,互聯網企業他們需求變化非常快。按照傳統的比如建一套大數據平台,可能花費很多成本,時間成本、人力成本,包括金錢。但是雲平台,大家知道IaaS、PaaS、SaaS,最後所有東西都變成伺服器。你要構建一個非常復雜方案的時候成本就低,因為你只需要按照服務構建的方式來做,而且這樣非常靈活,如果你發現其中方案某一部分有問題,你可以很快的替換掉,因為很多都是平台上的服務。所以,它可以滿足你的業務不確定性的需求,包括業務彈性的需求。因為大家知道現在變化太快了。
第二,雲計算給大數據帶來的好處是什麼?比如它可以自動化運維,一些復雜系統的安裝、部署、監控都不用你自己做,在界面上非常快的就可以,非常簡單就能做完。然後還有一些包括穩定、性能,這個不多說了,雲計算的好處大家肯定知道特別多,說幾個有意思的。
比如,網路和存儲,計算引擎的切換,這個比較有意思。也就是當你的平台足夠復雜,足夠大的時候,每塊部分都是一個伺服器,每一塊變成一個伺服器之後,可以非常靈活的替換掉它,把他換成別的產品實現,或者別的技術實現。後面就是Service Orchestration,就是比如你有一個界面,需要畫各種圖,或者工具也好,但是他們有一個非常致命的缺點,你畫的那個圖是不能執行的,就是是不能部署,不能執行的。Service Orchestration是給你一個大的拓撲圖,這也是青雲今年年初發布的一個產品,叫做資源編排。可以在雲平台把一整套的架構部署出來,這是雲上他們這些帶來的一些好處。
雲上大數據平台的挑戰。很多企業做大數據平台在物理機上做,為什麼沒有在雲上做?因為挑戰非常多。第一,穩定性的挑戰,比如高可用、災備。第二,性能。一直被人垢病的,因為你是虛擬機,肯定沒有網路機的硬碟快。在青雲第一個IaaS層的穩定性已經運行好幾年了,沒有太多可說的。垢病性能這一塊,我們去年做了軟體定義網路的2.0,2.0出來之後,這個是為雲計算,為大的IaaS平台專門研發的一套SDN,可以做到點對點之間的網路傳輸,可以達到物理網卡。第二,在硬碟這塊一直被垢病的,我們容器技術,可以把硬碟的技術降的非常低。第三個好處就是遷移,遷移技術非常好,因為現在已經有一些比較成形的,比如關系型資料庫和非關系型資料庫。
我們說解決這些挑戰之後,我們會有一個大數據的平台系統架構出來這個架構其實都是一個非常通用的架構。就是你可能在很多企業裡面,不管京東、美團、亞馬遜,可能看到的基本都是這樣的樣子。其實先從左開始看起,其實是一個數據的生命周期,就是數據從哪個地方收集,可能是日誌,可能是感測器,收集過來到中間的核心平台,最下面一層就是IaaS,青雲所有PaaS層的服務都是基於IaaS做的,就是都是在雲上面的。然後到第一個就是存儲。中間三個大塊,第一個叫實時計算,叫Storm,當然Twitter現在出來的可能宣稱比Storm更強。第二,就是Batch Processing,第三個就是Big SQL,包括像Kylim等。右邊就是你做所有平台可能都會做的,包括它的數據管理、監控、安全,包括用來做分布式的配置中心的一項東西。
所有的數據經過存儲、計算之後,你可能會通過一些,就是你想要一些非常好的用戶友好的方式使用這些數據,我們一般可能會把數據提交到比如說像一些交互性比較好的技術組件裡面,這樣在最上層,不管報表還是可視化,像Hadoop生態圈裡面比較流行的做可視化就比較方便。
我現在畫的這個圖裡面,基本上就是在大數據的生命周期裡面最核心的,或者說最主流的產品或者技術都涵蓋在裡面了,青雲自己的大數據平台也是按照這個架構來做的。
接下來先說一下,我會按照這個架構,挨個的挨個的說。第一,先說一下計算。計算上面最經典的就是Hadoop,這個圖不需要太多說。如果大家平時研究大數據,可以提一點,從2.0後之,它的HDFS有高可用,把之前的變成Yarn來支持,這樣會提升很大的性能。第二個計算型的架構就是Spark,比如它上面有主流的一些功能。如果做實時計算,Storm肯定首選的。MapRece延遲非常高,但是吞吐量很大。MapRece的硬碟非常高,Spark Streaming由於它是硬碟計算,所以計算還好。如果之前有一些Hadoop生態圈的基礎,可能選Spark比較好,如果不是要求非常實時,因為Spark平台非常強,它本身就是一個平台,現在的平台發展非常快,所以可能選Spark,對你要求非常高,現在我們碰見的客戶都有。第二,Big SQL裡面,提幾個,一個是Phoenix,提供了SQ語言上包裝的產品。第二種就是MPP的。
存儲。最初就是HDFS,第一,一定是為大文件設計的,不是為海量小文件設計的。如果想處理海量小文件,在青雲平台上有一個想像就是對象存儲,我們當時設計的時候不管文件什麼類型,不管文件什麼大小,都可以用這個存儲。HDFS為什麼不能存海量小文件,原因很簡單,像Linux裡面所有數據都有一個索引,如果存海量小文件,索引的數據有一個特點,不管數據文件大還是小,索引的數據都是一樣的大。存海量小文件的時候其實文件沒有多大,它會非常影響性能,導致數據整個存儲空間沒有利用慢,但是性能已經不可用了。
第二個比較主流的存儲就是Hbase,Hbase是架構在HDFS之上,它可以存非常寬的樣表,也可以存非常高的樣表,所有表的數據分布在每個節點上,其實它的架構比這個復雜多了。其實你可以看成對應一個表的概念。不知道大家有沒有人看Hbase,可能剛開始看Hbase比較費解,因為它是列式的存儲,和以前看到的資料庫解的不一樣。其實它的定義非常簡單,就是最上面,第二行那句話,是一個稀疏的、分布式的、多維的、持久化的一個影射。稀疏的就是是一個單位格的比,Hbase在存儲格式上已經解決了這個問題,可以存一個稀疏的表。第二,分布式的就不用解釋了。這個圖裡面可以看到有一些時間戳的概念在裡面,這是一個比如第一個是一個記錄的Row Key,然後有一個Column Families,然後有一個版本號。
存儲裡面的選型,剛才說了幾個,做存儲選型怎麼選?並不一定是一開始肯定會聽到很多人說Hbase一定比HDFS快,這些說法都是不責任的,都是一定要在什麼場景下。比如說Hadoop,這樣的方式就是在做全局文件掃描的時候是快的,但是像Hbase做隨機存儲的時候是快的,所以也是分場景的。但是像中間這個KUDU,昨天一個客戶說他們正在用一個KUDU,屬於一個中間的方案,介於HDFS和Hbase之間的一個存儲引擎,現在還沒有看到大規模的生產應用。這個就是今年年初做的一個數據倉庫,Greenplum Database,是去年開源的。之前Greenplum的核心就能工業他們自己出來,它最大的一個好處,我們覺得有幾個,第一個是標準的SQL,你可能看到很多市面上的產品都說支持SQL,但是其實都不是標準的。不是標準的意味著什麼?比如很多語法不一樣,你以前像數據工程師,數據分析師,他們用的比較高級的用法都沒法用。但是,Greenplum Database不一樣,因為它的核心計算引擎我們覺得比MySQL更好,它還有很多別的特點。
我們說完計算的產品,說完存儲的產品,接下來一些數據的傳輸。數據傳輸我們說一個最經典的Kafka,是分布式、可分區、多副本、低延遲的。低延遲什麼意思?左右這兩張圖長的很像,其實就是Kafka相當於進入和留出的數據,Kafka就是領英開源的,因為我們平台提供了Kafka服務,他們現在也在用,這是他們是使用出來的一個產品。意思就是Kafka的延遲非常低,基本數據不落下來,直接就出去了。
為什麼它可以這樣?有兩個非常本質的原因:第一,它在寫數據的時候是直接寫到PageCatch裡面,往外發的時候直接通過Linux發出去的,所以它的吞吐量延時非常低,這是兩個核心的原因。Kafka的架構非常簡單,就是三個松偶合的,比如最上層是它的生產者,然後是一個集群,中間是一個伺服器,Kafka的伺服器,下面是它的消費者。它的生產者一個集群都可以往broker裡面發數據,相當於broker把數據發到第一個Partition裡面,第二個發到第二個Partition裡面,Partition第一個主要概念就是你發布的消息是什麼,你生產出的消息相對於在Kafka裡面有幾個隊列,每個隊列就是一個Partition。
第二個集群就是它的消費者,消費者可以提比較重要的一點,它有一個消費組的概念,這個組的概念非常重要。當你想把一個Topic的消息想多播出去,想被很多個消費者處理的時候,這個時候需要建多個消費組,這個消息才能被多個消費者來消費。如果只建了一個消費組,哪怕這個消費組有好幾個消費者,每次都是由一個消費者處理的。第二個問題,就是消費組裡面消費者的數量,這裡面一個是兩個,一個是四個,就是一個消息裡面有四個Partition,如果有四個消費者,正好一對一,每個消費者消費一個Partition,如果只有一個消費者,有一個會消費兩個Partition。這種情況比較好。有一種情況要避免,就是比如有5個消費者,你那個Topic只有4個隊列,你就會浪費掉一個消費者。這個是需要注意的。
說完了計算,說完了存儲,說完了傳出,然後說一些我們碰到的問題。第一個大問題就是復制因子的問題,為什麼原生的不用考慮,但是雲上為什麼要獨特考慮呢?原因很簡單,因為在雲上面所有的服務都是基於IaaS做的,IaaS這一層本身有高可用,就是它的數據本身就是有副本的,如果你還照搬物理機上的做法,你就找三個副本,你想想2×3就是6個。所以,第一個就是要去副本,把它用兩個副本,這是我們最開始想的方案,用兩個副本就行了。但是,後來我們覺得兩個副本還是2×2=4,還是空間浪費上會多一點。
後來我們想更高級的方案是什麼?就是我們在IaaS這一層提供一種能力,讓PaaS層可以選擇,說我要幾個副本,就是變成一個選項,這樣比如像大數據這樣,或者非常脆弱的應用,但是有時候比如不需要,有它自己的一個副本的策略,完全不需要IaaS層的副本,這個時候就根據你自己的配置,或者根據你自己的產品的需要可以配置IaaS層的副本策略,這樣跟物理就是一樣的了。
這個參數調優,比如像典型的大數據裡面每個產品或者每個平台都有兩三百個參數,這個太正常了,這個時候做調優第一個重要的步驟就是你應該知道我們應該盡量去知道這些調優的參數之間什麼關系,他們之間到底什麼關系,不能只知道每一個參數是干什麼的,要不然調一個,影響另外一個,或者調按沒有任何反應,那是因為你沒有把這個關系搞清楚。像這樣的圖,可以把yarn裡面的Node Manager都弄的比它小,然後是yarn裡面分配的內存,這個之間的關系嘎明白,在做性能調優的時候是很重要的。
最後一個比較重要的最佳實踐就是在數據格式上,這個肯定很多人都會忽略。但是在大數據裡面非常重要,為什麼?因為數據很大,數據量非常大的時候,如果不注重數據格式就會導致這幾個問題。比如可能性能會下降,然後你的空間反而浪費了很多,成倍的上升。
其實數據格式比較注意的項非常多。我們挑出兩個比較重要的准則,第一這個數據格式要可分隔。可分隔支持的格式有這些,比較多的像Avro、Parquet Lzop+index、SequenceFile,不支持的就是XML、JSON文件。
然後可塊壓縮的,支持的就是Avro、Parquet、Lzop+index、SequenceFile,不支持的就是CSV、JSON記錄。大家可以想一下,我們在大數據平台裡面計算都是並行計算,它所有的數據都是分開來計算的,然後每一個分片對它進行計算,所以,第二個是可塊壓縮的。其實還有很多點,比如數據格式是不是支持眼鏡的,像Avro就支持,就是數據格式的老版本和新版本還是可以兼容的。包括像SequenceFile,可伸縮,可壓縮,但是它只在Hadoop這個生態系統,不像Avro和Parquet。我們7月28號在北京飯店有一個青雲自己的用戶大會,我們只負責服務,上面都是各個行業的精英講他們自己技術的干貨,產品的干貨,我們是這樣形式做的。
Ⅱ 大型網路的規劃,求拓撲圖
你是要做桌面雲還是私有雲呢?
這個拓撲無法提供,大體給你講一下
核心要使用兩台,交換機可以做堆疊或者主備
接存儲的接入交換機要數據中心級的交換機,能夠滿足大數據轉發和處理
還要從安全形度考慮,旁掛防火牆安全防護
旁掛VPN網關,便於異地、互聯網維護
網路中還應有網路管理、運維審計等軟體
當然這個骨幹建議全萬兆光纖,接入下行千兆(最好也是光纖)
Ⅲ 北訊集團推動大數據戰略會加速專網+的建設嗎
伴隨著網路強國、數字中國、智慧社會等國家發展目標的提出,將數字經濟發展引入快車道,共同促進世界各國互聯網和數字經濟發展,已經成為共識。發展大數據戰略是中國數字經濟發展的必經之路,是數字化時代中國特色的科技戰略重要組成部分。中國是數據最豐富市場,大數據戰略是中國特色戰略。
多家券商分析師預計,各省市政務大數據平台構建、數據共享和場景應用將加速,相關財政支持有望穩步增長,CAGR超過行業30%的平均水平,相關產業鏈--無線專網、數據整合、大數據應用、信息安全--價值量放大同時利好龍頭企業。
量子通信市場迎百億市場規模
根據中投顧問《2016-2020年中國量子通信行業深度調研及投資前景預測報告》測算,三至五年內,量子通信市場規模有望達到100-130億,到2025年將達到千億。清華大學、中科大等多個科研團隊在量子通信研究領域處於世界領先水平,因為具有絕對安全的理論特點,已提升至國家戰略高度。藉助量子通信的發展,金融、信息安全、大數據處理等領域的應用和推廣有望進一步提速。
招商證券策略分析師董理偉表示,短期看,政務、金融、國防量子通信專用網路建設是目前先行建設的領域,2-3年內政務板塊預測將有50億元以上的市場規模,長期將有數百億以上的市場。
龍躍集團和清華大學的拓撲量子信息技術研究中心成立,實現了產學研的無縫對接,在注重產業通信發展時,也為北訊集團的專網通信領域拓展開辟了一條新路。根據大通信戰略,北訊集團在龍躍集團協助下推動業務升級轉型。
Ⅳ 大數據架構流程圖
大數據管理數據處理過程圖
大數據(big data),指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察力。大數據處理的主要流程包括數據收集、數據存儲、數據處理、數據應用等主要環節。隨著業務的增長,大量和流程、規則相關的非結構化數據也爆發式增長。
平台數據架構流程圖
標准大數據平台架構,標准大數據平台架構,大數據平台架構,數據倉庫,數據集市,大數據平台層級結構,數據挖掘,舉報,包含該模版的分享。數據架構設計(數據架構組) 概述 總體描述 相對於業務架構和應用架構,數據架構在總體架構中處於基礎和核心地位。
產品體驗結構流程圖
產品的功能結構圖,產品功能結構圖,產品主要流程圖,產品的核心流程,我們繼續圍繞著得到app的核心流程探究。還原產品,產品結構、核心流程體驗、核心頁面體驗的情況,而不僅僅是界面表層;從產品視角、用戶視角來分析,而不是自我感覺,撰寫報告,推出報告。產品體驗從產品現狀、目標用戶及場景、關鍵功能體驗
程序流程圖
程序流程圖又稱程序框圖,是用統一規定的標准符號描述程序運行具體步驟的圖形表示。程序框圖的設計是在處理流程圖的基礎上,通過對輸入輸出數據和處理過程的詳細分析,將計算機的主要運行步驟和內容標識出來。
軟體開發周期
軟體生命周期(Software Life Cycle,SLC)是軟體的產生直到報廢或停止使用的生命周期。軟體生命周期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段一個軟體產品或軟體系統也要經歷孕育、誕生、成長、成熟、衰亡等階段
軟體測試流程魚骨圖
軟體測試流程: 需求分析,制訂測試計劃,設計測試用例與編寫,實施測試,提交缺陷報告,生成測試總結和報告。軟體測試按照研發階段一般分為5個部分:單元測試、集成測試、確認測試、系統測試、驗收測試。根據設計用例的方法不同,黑盒測試包括等價劃分法、邊界值分析法、錯誤推測法、因果圖法等。
雲平台整體架構圖
雲計算的體系結構由5部分組成,分別為應用層,平台層,資源層,用戶訪問層和管理層,雲計算的本質是通過網路提供服務,所以其體系結構以服務為核心。公認的雲架構是劃分為基礎設施層、平台層和軟體服務層三個層次的。
項目管理九大體系
項目管理思維導圖包括項目采購管理、項目成本核算、時間管理等關於項目管理的九大體系。項目管理十大領域:進度、成本、質量、范圍等4個核心領域,風險、溝通、采購、人力資源、干係人等5個輔助領域,1個整體領域。
產品經理項目管理思維導圖
思維導圖可以幫助產品經理梳理多而亂的產品思路,也可以幫助產品經理進行需求管理、產品分析等。產品經理會使用思維導圖來對產品的思路進行一個有效的分析,梳理產品邏輯,然後再畫原型圖。一個優秀的產品經理,不僅僅是會畫原型,寫需求文檔,更重要的是做出用戶滿意的產品。
項目規劃時間軸流程圖
項目規劃時間軸流程圖,對一個項目從開始到竣工的整個過程進行總結歸納。時間線圖,又叫時間軸圖,能以歷史進程為載體,將過往的重要事項或者里程碑,標注在軸線上,並加以說明。它的作用是能夠可視化內容,以圖文的形式呈現出來。時間軸是一種表達事物發展進程的可視化圖示,被許多商業管理人士所使用。
Ⅳ 深基坑安全監測系統的監測指標一般是哪些
深基坑安全監測系統的監測指標一般是基坑土體、支護結構、自然環境和周邊環境等,據我所知,「全球共德」在數字建築領域內評價挺不錯的,智慧工地管理系統深受好評。但我們公司還沒用過他們的深基坑檢測系統,你可以先問問他們的業務
深基坑安全監測系統的監測指標一般是基坑土體、支護結構、自然環境和周邊環境等。廣東地空智能 科技 有限漏笑螞公司開發的GSI-FM基坑安全監測平台支持電腦、手機、平板等多客戶端應用,實現在各種環境下便捷查看基坑情況及輔助辦公,提高工作效率。GSI-FM基坑安全監測平台是數智化理念在基坑工程監測領返埋域的行業具現,通過高精度北斗定位技術、智能感測技術、通訊技術融合物聯網、雲服務等多項前沿技術於一體獲取生產、施工過程中顯示與隱形信息,結合施工規范和技術標准,進行隱蔽工程或關鍵工序質量管控。利用GIS和BIM模型,通過前端檢測設備全天監測支撐軸力、錨桿拉力、立柱內力、孔隙水壓力、土壓力等基坑數值,實時傳輸至平台分析,及時發現危險預兆,採取補救措施,根據數據優化設計方案,預防工程安全事故發生。
一、平台優勢:
基坑監測一張圖 :BI大數據一張圖全方位數智化統計分析基坑工程情況
GIS+三維可視化 :高精度定位可全面檢測整個基坑區域,過程無縫監測
視頻+感測器融合 :邊施工邊檢測,實時視頻、圖像監測,可在線查看現場情況
報告生成 :基坑概況統計、感測器數據、預警列表均可通過手機端查看
輔助決策 :通過遠程實時監控系統等可以建立施工進度和質量管理系統
二、平台特色:
GSI-FM項目一覽
由手持端(M/S)和PC端(B/S)構成,使內外業務管理相結合,實現日常監測工作的科學化、規范化、數智化管理。基於大數據平台提煉基坑監測工程各專業指標,形成專題的數據大屏,將數據真實可靠的動態直觀展示在BI大屏幕上,用戶和決策層可以實時查看基坑工程建築的進度、重要區域的核心問題,結合智能模型的預測以及分析,輔助決策。
主要功能
①項目列表:可篩選項目測點,查閱水位、位移、壓力、沉降、巡檢記錄、數據時間關系曲線、告警記錄情況
②安全狀態:實行正常、控制、預警、報警四級預警機制,異常事件上報,快速流轉到後台進行統一處理
③地理位置:支持各類地圖服務的接入,包括谷歌地圖、網路地圖、騰訊地圖等,可快速定位到需要查找的地段
④完成程度:實行0%-20%、20%-50%、50%-80%、80%-100%四種梯度,可統計各地基坑工程整體完成進度
核心價值
集成展示,資源共享 宏觀運營,全知全能
基礎支撐,智能監控 實時感知,異常預警
科學評價,數智分析 精確定位,快速補救
GSI-FM項目管理
項目管理包括項目信息詳情、項目測點布置、監測情況統計、測斜監測情況統計、監測分區設置及分析、監測剖面設置及分析、項目通信節點管理、項目平面圖、項目巡檢。系統將基坑監測工程立項、實施、驗收等環節的信息及時上圖入庫,明確項目位置、規模、類型、內容及建設及進展與成效等。綜合運用遙感、大數據、物聯網、雲計算等技術手段進行比對核查,實現實時動態、可視化、可追蹤的全程全面監測監管。
主要功能
①項目信息詳情:直觀顯示開挖深度、基坑周長、開挖面積、支護形式、基坑升祥安全等級信息
②項目測點布置:可進行測點分組設置,識別測點名稱,分析監測項類型、解算方案、累計值報警、採集頻率情況
③監測情況統計:統計分析監測項目的測點從開始時間至結束時間產生的數據情況
④分區設置分析:可進入具體分區查詢分區項目進度、工況記錄,在詳情頁可了解測點布置及相應的數據分析情況
⑤剖面設計分析:分析剖面點使用的支護形式、開挖深度、安全等級、土層結構、工況記錄情況,可查看測點布置數據分析
⑥通信節點管理:使用組網結構,分析基坑項目使用的采儀器類型,進行節點管理
⑦項目平面巡檢:可視化巡檢支護結構、施工工況、周邊環境、測點情況,智能化監測異常狀態
核心價值
①對項目工程信息進行綜合管理和輔助決策,實現辦公自動化和現代化
②項目完成程度、安全狀態、測點情況實時掌控,輔助任務監管與考核
③基坑地圖可視化,實時獲取監測到的坐標信息,及時發現問題,保障基坑監測質量
④工程資料統一信息化,系統自動成圖,內外業務一體化,降低內業整理人工與時間成本
⑤項目資產精細化管理,規范並簡化任務處理流程,提高基坑監測入庫、異常事件流出效率
GSI-FM設備管理
設備管理包括常規監測儀器、自動化監測儀器和通信節點管理。通過大數據平台提供的基坑監測項目信息、感測器、採集儀器、現場監測數據,利用各業務系統通過人工解譯、深度學習自動化解譯等方式提取的各類監測指標信息進行綜合評價和分析。在工程實施范圍內,根據基坑監測目標和標准,建立三級監測評估內容和指標。
主要功能
①常規監測儀器管理:統一規范管理常規監測儀器,按名稱、編號、類型、廠商、型號、智能程度歸類劃分
②自動化監測儀器管理:按感測器、DTU&MCU、採集儀器三大類分區管理,按型號、地址、單元、狀態等進行劃分歸納
③通信節點管理:根據所屬部門、關聯項目、通信節點名稱、物聯卡號碼、網路類型進行設備管理,並賦予拓撲圖進行分析
核心價值
①整合硬體設備狀態、智能程度信息等,實現設備管理一張圖,宏觀把控設備運行狀況
②結合常規與自動化儀器設備,提取各類監測指標信息進行綜合分析與評估
③根據所屬部門、關聯項目進行設備管理,打通信息化孤島
④任務量化管理,人員工作科學評價
⑤維修現場實時反饋,設備 歷史 可查閱追溯
GSI-FM預警管理
通過PC端和移動端小程序,實現基坑工程監測預警管理自動化流轉與分派,對基坑開挖深度、安全等級、開挖面積、基坑周長、支護形式、項目安全狀態、項目完成度、測點安全狀態、項目地理位置和項目運行狀態進行實時監測,當監測值超過設定預警值時,系統及時反饋告警信息,自動啟動現場預警提醒,預防事故發生,減少人員和財產損失。
主要功能
①告警日誌:記錄整體各個區域基坑工程項目的測點、告警級別、告警詳情、發生時間信息
②異常上報:異常事件上報,快速流轉到後台進行統一處理
③任務監督:實時了解工作進度,對現有工作情況進行指導,支持日常報表的生成
④視頻監控:結合監控視頻實時查看施工現場發展狀態和工作人員操作情況
⑤輔助決策:可查看異常事件詳情、設備維護 歷史 、上報現場信息、申請支援等,輔助調度
核心價值
①現場異常及時上報,後台監管快速響應,降低影響
②任務進度實時掌控,統計報表一鍵生成
③為運維現場提供信息支持,快速查詢現場基坑周邊情況
④加強現場運維情況的動態監控力度
⑤科學管理應急事件,合理處置突發事件
Ⅵ 企業的大數據分析平台應該如何構建
①確認數據分析方向。比如是分析社交數據,還是電商數據,亦或者是視頻數據,或者搜索數據。
②確認數據來源。比如來自騰訊,來自網路,來自阿里巴巴,來自實體店。
③數據分析師,去分析你獲取的數據。
Ⅶ 如何架構大數據系統hadoop
大數據數量龐大,格式多樣化。
大量數據由家庭、製造工廠和辦公場所的各種設備、互聯網事務交易、社交網路的活動、自動化感測器、移動設備以及科研儀器等生成。
它的爆炸式增長已超出了傳統IT基礎架構的處理能力,給企業和社會帶來嚴峻的數據管理問題。
因此必須開發新的數據架構,圍繞「數據收集、數據管理、數據分析、知識形成、智慧行動」的全過程,開發使用這些數據,釋放出更多數據的隱藏價值。
一、大數據建設思路
1)數據的獲得
大數據產生的根本原因在於感知式系統的廣泛使用。
隨著技術的發展,人們已經有能力製造極其微小的帶有處理功能的感測器,並開始將這些設備廣泛的布置於社會的各個角落,通過這些設備來對整個社會的運轉進行監控。
這些設備會源源不斷的產生新數據,這種數據的產生方式是自動的。
因此在數據收集方面,要對來自網路包括物聯網、社交網路和機構信息系統的數據附上時空標志,去偽存真,盡可能收集異源甚至是異構的數據,必要時還可與歷史數據對照,多角度驗證數據的全面性和可信性。
2)數據的匯集和存儲
互聯網是個神奇的大網,大數據開發和軟體定製也是一種模式,這里提供最詳細的報價,如果你真的想做,可以來這里,這個手機的開始數字是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,我想說的是,除非你想做或者了解這方面的內容,如果只是湊熱鬧的話,就不要來了
數據只有不斷流動和充分共享,才有生命力。
應在各專用資料庫建設的基礎上,通過數據集成,實現各級各類信息系統的數據交換和數據共享。
數據存儲要達到低成本、低能耗、高可靠性目標,通常要用到冗餘配置、分布化和雲計算技術,在存儲時要按照一定規則對數據進行分類,通過過濾和去重,減少存儲量,同時加入便於日後檢索的標簽。
3)數據的管理
大數據管理的技術也層出不窮。
在眾多技術中,有6種數據管理技術普遍被關注,即分布式存儲與計算、內存資料庫技術、列式資料庫技術、雲資料庫、非關系型的資料庫、移動資料庫技術。
其中分布式存儲與計算受關注度最高。
上圖是一個圖書數據管理系統。
4)數據的分析
數據分析處理:有些行業的數據涉及上百個參數,其復雜性不僅體現在數據樣本本身,更體現在多源異構、多實體和多空間之間的交互動態性,難以用傳統的方法描述與度量,處理的復雜度很大,需要將高維圖像等多媒體數據降維後度量與處理,利用上下文關聯進行語義分析,從大量動態而且可能是模稜兩可的數據中綜合信息,並導出可理解的內容。
大數據的處理類型很多,主要的處理模式可以分為流處理和批處理兩種。
批處理是先存儲後處理,而流處理則是直接處理數據。
挖掘的任務主要是關聯分析、聚類分析、分類、預測、時序模式和偏差分析等。
5)大數據的價值:決策支持系統
大數據的神奇之處就是通過對過去和現在的數據進行分析,它能夠精確預測未來;通過對組織內部的和外部的數據整合,它能夠洞察事物之間的相關關系;通過對海量數據的挖掘,它能夠代替人腦,承擔起企業和社會管理的職責。
6)數據的使用
大數據有三層內涵:一是數據量巨大、來源多樣和類型多樣的數據集;二是新型的數據處理和分析技術;三是運用數據分析形成價值。
大數據對科學研究、經濟建設、社會發展和文化生活等各個領域正在產生革命性的影響。
大數據應用的關鍵,也是其必要條件,就在於"IT"與"經營"的融合,當然,這里的經營的內涵可以非常廣泛,小至一個零售門店的經營,大至一個城市的經營。
二、大數據基本架構
基於上述大數據的特徵,通過傳統IT技術存儲和處理大數據成本高昂。
一個企業要大力發展大數據應用首先需要解決兩個問題:一是低成本、快速地對海量、多類別的數據進行抽取和存儲;二是使用新的技術對數據進行分析和挖掘,為企業創造價值。
因此,大數據的存儲和處理與雲計算技術密不可分,在當前的技術條件下,基於廉價硬體的分布式系統(如Hadoop等)被認為是最適合處理大數據的技術平台。
Hadoop是一個分布式的基礎架構,能夠讓用戶方便高效地利用運算資源和處理海量數據,目前已在很多大型互聯網企業得到了廣泛應用,如亞馬遜、Facebook和Yahoo等。
其是一個開放式的架構,架構成員也在不斷擴充完善中,通常架構如圖2所示:
Hadoop體系架構
(1)Hadoop最底層是一個HDFS(Hadoop Distributed File System,分布式文件系統),存儲在HDFS中的文件先被分成塊,然後再將這些塊復制到多個主機中(DataNode,數據節點)。
(2)Hadoop的核心是MapRece(映射和化簡編程模型)引擎,Map意為將單個任務分解為多個,而Rece則意為將分解後的多任務結果匯總,該引擎由JobTrackers(工作追蹤,對應命名節點)和TaskTrackers(任務追蹤,對應數據節點)組成。
當處理大數據查詢時,MapRece會將任務分解在多個節點處理,從而提高了數據處理的效率,避免了單機性能瓶頸限制。
(3)Hive是Hadoop架構中的數據倉庫,主要用於靜態的結構以及需要經常分析的工作。
Hbase主要作為面向列的資料庫運行在HDFS上,可存儲PB級的數據。
Hbase利用MapRece來處理內部的海量數據,並能在海量數據中定位所需的數據且訪問它。
(4)Sqoop是為數據的互操作性而設計,可以從關系資料庫導入數據到Hadoop,並能直接導入到HDFS或Hive。
(5)Zookeeper在Hadoop架構中負責應用程序的協調工作,以保持Hadoop集群內的同步工作。
(6)Thrift是一個軟體框架,用來進行可擴展且跨語言的服務的開發,最初由Facebook開發,是構建在各種編程語言間無縫結合的、高效的服務。
Hadoop核心設計
Hbase——分布式數據存儲系統
Client:使用HBase RPC機制與HMaster和HRegionServer進行通信
Zookeeper:協同服務管理,HMaster通過Zookeepe可以隨時感知各個HRegionServer的健康狀況
HMaster: 管理用戶對表的增刪改查操作
HRegionServer:HBase中最核心的模塊,主要負責響應用戶I/O請求,向HDFS文件系統中讀寫數據
HRegion:Hbase中分布式存儲的最小單元,可以理解成一個Table
HStore:HBase存儲的核心。
由MemStore和StoreFile組成。
HLog:每次用戶操作寫入Memstore的同時,也會寫一份數據到HLog文件
結合上述Hadoop架構功能,大數據平台系統功能建議如圖所示:
應用系統:對於大多數企業而言,運營領域的應用是大數據最核心的應用,之前企業主要使用來自生產經營中的各種報表數據,但隨著大數據時代的到來,來自於互聯網、物聯網、各種感測器的海量數據撲面而至。
於是,一些企業開始挖掘和利用這些數據,來推動運營效率的提升。
數據平台:藉助大數據平台,未來的互聯網路將可以讓商家更了解消費者的使用**慣,從而改進使用體驗。
基於大數據基礎上的相應分析,能夠更有針對性的改進用戶體驗,同時挖掘新的商業機會。
數據源:數據源是指資料庫應用程序所使用的資料庫或者資料庫伺服器。
豐富的數據源是大數據產業發展的前提。
數據源在不斷拓展,越來越多樣化。
如:智能汽車可以把動態行駛過程變成數據,嵌入到生產設備里的物聯網可以把生產過程和設備動態狀況變成數據。
對數據源的不斷拓展不僅能帶來採集設備的發展,而且可以通過控制新的數據源更好地控制數據的價值。
然而我國數字化的數據資源總量遠遠低於美歐,就已有有限的數據資源來說,還存在標准化、准確性、完整性低,利用價值不高的情況,這**降低了數據的價值。
三、大數據的目標效果
通過大數據的引入和部署,可以達到如下效果:
1)數據整合
·統一數據模型:承載企業數據模型,促進企業各域數據邏輯模型的統一;
·統一數據標准:統一建立標準的數據編碼目錄,實現企業數據的標准化與統一存儲;
·統一數據視圖:實現統一數據視圖,使企業在客戶、產品和資源等視角獲取到一致的信息。
2)數據質量管控
·數據質量校驗:根據規則對所存儲的數據進行一致性、完整性和准確性的校驗,保證數據的一致性、完整性和准確性;
·數據質量管控:通過建立企業數據的質量標准、數據管控的組織、數據管控的流程,對數據質量進行統一管控,以達到數據質量逐步完善。
3)數據共享
·消除網狀介面,建立大數據共享中心,為各業務系統提供共享數據,降低介面復雜度,提高系統間介面效率與質量;
·以實時或准實時的方式將整合或計算好的數據向外系統提供。
4)數據應用
·查詢應用:平台實現條件不固定、不可預見、格式靈活的按需查詢功能;
·固定報表應用:視統計維度和指標固定的分析結果的展示,可根據業務系統的需求,分析產生各種業務報表數據等;
·動態分析應用:按關心的維度和指標對數據進行主題性的分析,動態分析應用中維度和指標不固定。
四、總結
基於分布式技術構建的大數據平台能夠有效降低數據存儲成本,提升數據分析處理效率,並具備海量數據、高並發場景的支撐能力,可大幅縮短數據查詢響應時間,滿足企業各上層應用的數據需求。
Ⅷ 五種大數據處理架構
五種大數據處理架構
大數據是收集、整理、處理大容量數據集,並從中獲得見解所需的非傳統戰略和技術的總稱。雖然處理數據所需的計算能力或存儲容量早已超過一台計算機的上限,但這種計算類型的普遍性、規模,以及價值在最近幾年才經歷了大規模擴展。
本文將介紹大數據系統一個最基本的組件:處理框架。處理框架負責對系統中的數據進行計算,例如處理從非易失存儲中讀取的數據,或處理剛剛攝入到系統中的數據。數據的計算則是指從大量單一數據點中提取信息和見解的過程。
下文將介紹這些框架:
· 僅批處理框架:
Apache Hadoop
· 僅流處理框架:
Apache Storm
Apache Samza
· 混合框架:
Apache Spark
Apache Flink
大數據處理框架是什麼?
處理框架和處理引擎負責對數據系統中的數據進行計算。雖然「引擎」和「框架」之間的區別沒有什麼權威的定義,但大部分時候可以將前者定義為實際負責處理數據操作的組件,後者則可定義為承擔類似作用的一系列組件。
例如Apache Hadoop可以看作一種以MapRece作為默認處理引擎的處理框架。引擎和框架通常可以相互替換或同時使用。例如另一個框架Apache Spark可以納入Hadoop並取代MapRece。組件之間的這種互操作性是大數據系統靈活性如此之高的原因之一。
雖然負責處理生命周期內這一階段數據的系統通常都很復雜,但從廣義層面來看它們的目標是非常一致的:通過對數據執行操作提高理解能力,揭示出數據蘊含的模式,並針對復雜互動獲得見解。
為了簡化這些組件的討論,我們會通過不同處理框架的設計意圖,按照所處理的數據狀態對其進行分類。一些系統可以用批處理方式處理數據,一些系統可以用流方式處理連續不斷流入系統的數據。此外還有一些系統可以同時處理這兩類數據。
在深入介紹不同實現的指標和結論之前,首先需要對不同處理類型的概念進行一個簡單的介紹。
批處理系統
批處理在大數據世界有著悠久的歷史。批處理主要操作大容量靜態數據集,並在計算過程完成後返回結果。
批處理模式中使用的數據集通常符合下列特徵…
· 有界:批處理數據集代表數據的有限集合
· 持久:數據通常始終存儲在某種類型的持久存儲位置中
· 大量:批處理操作通常是處理極為海量數據集的唯一方法
批處理非常適合需要訪問全套記錄才能完成的計算工作。例如在計算總數和平均數時,必須將數據集作為一個整體加以處理,而不能將其視作多條記錄的集合。這些操作要求在計算進行過程中數據維持自己的狀態。
需要處理大量數據的任務通常最適合用批處理操作進行處理。無論直接從持久存儲設備處理數據集,或首先將數據集載入內存,批處理系統在設計過程中就充分考慮了數據的量,可提供充足的處理資源。由於批處理在應對大量持久數據方面的表現極為出色,因此經常被用於對歷史數據進行分析。
大量數據的處理需要付出大量時間,因此批處理不適合對處理時間要求較高的場合。
Apache Hadoop
Apache Hadoop是一種專用於批處理的處理框架。Hadoop是首個在開源社區獲得極大關注的大數據框架。基於谷歌有關海量數據處理所發表的多篇論文與經驗的Hadoop重新實現了相關演算法和組件堆棧,讓大規模批處理技術變得更易用。
新版Hadoop包含多個組件,即多個層,通過配合使用可處理批數據:
· HDFS:HDFS是一種分布式文件系統層,可對集群節點間的存儲和復制進行協調。HDFS確保了無法避免的節點故障發生後數據依然可用,可將其用作數據來源,可用於存儲中間態的處理結果,並可存儲計算的最終結果。
· YARN:YARN是Yet Another Resource Negotiator(另一個資源管理器)的縮寫,可充當Hadoop堆棧的集群協調組件。該組件負責協調並管理底層資源和調度作業的運行。通過充當集群資源的介面,YARN使得用戶能在Hadoop集群中使用比以往的迭代方式運行更多類型的工作負載。
· MapRece:MapRece是Hadoop的原生批處理引擎。
批處理模式
Hadoop的處理功能來自MapRece引擎。MapRece的處理技術符合使用鍵值對的map、shuffle、rece演算法要求。基本處理過程包括:
· 從HDFS文件系統讀取數據集
· 將數據集拆分成小塊並分配給所有可用節點
· 針對每個節點上的數據子集進行計算(計算的中間態結果會重新寫入HDFS)
· 重新分配中間態結果並按照鍵進行分組
· 通過對每個節點計算的結果進行匯總和組合對每個鍵的值進行「Recing」
· 將計算而來的最終結果重新寫入 HDFS
優勢和局限
由於這種方法嚴重依賴持久存儲,每個任務需要多次執行讀取和寫入操作,因此速度相對較慢。但另一方面由於磁碟空間通常是伺服器上最豐富的資源,這意味著MapRece可以處理非常海量的數據集。同時也意味著相比其他類似技術,Hadoop的MapRece通常可以在廉價硬體上運行,因為該技術並不需要將一切都存儲在內存中。MapRece具備極高的縮放潛力,生產環境中曾經出現過包含數萬個節點的應用。
MapRece的學習曲線較為陡峭,雖然Hadoop生態系統的其他周邊技術可以大幅降低這一問題的影響,但通過Hadoop集群快速實現某些應用時依然需要注意這個問題。
圍繞Hadoop已經形成了遼闊的生態系統,Hadoop集群本身也經常被用作其他軟體的組成部件。很多其他處理框架和引擎通過與Hadoop集成也可以使用HDFS和YARN資源管理器。
總結
Apache Hadoop及其MapRece處理引擎提供了一套久經考驗的批處理模型,最適合處理對時間要求不高的非常大規模數據集。通過非常低成本的組件即可搭建完整功能的Hadoop集群,使得這一廉價且高效的處理技術可以靈活應用在很多案例中。與其他框架和引擎的兼容與集成能力使得Hadoop可以成為使用不同技術的多種工作負載處理平台的底層基礎。
流處理系統
流處理系統會對隨時進入系統的數據進行計算。相比批處理模式,這是一種截然不同的處理方式。流處理方式無需針對整個數據集執行操作,而是對通過系統傳輸的每個數據項執行操作。
· 流處理中的數據集是「無邊界」的,這就產生了幾個重要的影響:
· 完整數據集只能代表截至目前已經進入到系統中的數據總量。
· 工作數據集也許更相關,在特定時間只能代表某個單一數據項。
處理工作是基於事件的,除非明確停止否則沒有「盡頭」。處理結果立刻可用,並會隨著新數據的抵達繼續更新。
流處理系統可以處理幾乎無限量的數據,但同一時間只能處理一條(真正的流處理)或很少量(微批處理,Micro-batch Processing)數據,不同記錄間只維持最少量的狀態。雖然大部分系統提供了用於維持某些狀態的方法,但流處理主要針對副作用更少,更加功能性的處理(Functional processing)進行優化。
功能性操作主要側重於狀態或副作用有限的離散步驟。針對同一個數據執行同一個操作會或略其他因素產生相同的結果,此類處理非常適合流處理,因為不同項的狀態通常是某些困難、限制,以及某些情況下不需要的結果的結合體。因此雖然某些類型的狀態管理通常是可行的,但這些框架通常在不具備狀態管理機制時更簡單也更高效。
此類處理非常適合某些類型的工作負載。有近實時處理需求的任務很適合使用流處理模式。分析、伺服器或應用程序錯誤日誌,以及其他基於時間的衡量指標是最適合的類型,因為對這些領域的數據變化做出響應對於業務職能來說是極為關鍵的。流處理很適合用來處理必須對變動或峰值做出響應,並且關注一段時間內變化趨勢的數據。
Apache Storm
Apache Storm是一種側重於極低延遲的流處理框架,也許是要求近實時處理的工作負載的最佳選擇。該技術可處理非常大量的數據,通過比其他解決方案更低的延遲提供結果。
流處理模式
Storm的流處理可對框架中名為Topology(拓撲)的DAG(Directed Acyclic Graph,有向無環圖)進行編排。這些拓撲描述了當數據片段進入系統後,需要對每個傳入的片段執行的不同轉換或步驟。
拓撲包含:
· Stream:普通的數據流,這是一種會持續抵達系統的無邊界數據。
· Spout:位於拓撲邊緣的數據流來源,例如可以是API或查詢等,從這里可以產生待處理的數據。
· Bolt:Bolt代表需要消耗流數據,對其應用操作,並將結果以流的形式進行輸出的處理步驟。Bolt需要與每個Spout建立連接,隨後相互連接以組成所有必要的處理。在拓撲的尾部,可以使用最終的Bolt輸出作為相互連接的其他系統的輸入。
Storm背後的想法是使用上述組件定義大量小型的離散操作,隨後將多個組件組成所需拓撲。默認情況下Storm提供了「至少一次」的處理保證,這意味著可以確保每條消息至少可以被處理一次,但某些情況下如果遇到失敗可能會處理多次。Storm無法確保可以按照特定順序處理消息。
為了實現嚴格的一次處理,即有狀態處理,可以使用一種名為Trident的抽象。嚴格來說不使用Trident的Storm通常可稱之為Core Storm。Trident會對Storm的處理能力產生極大影響,會增加延遲,為處理提供狀態,使用微批模式代替逐項處理的純粹流處理模式。
為避免這些問題,通常建議Storm用戶盡可能使用Core Storm。然而也要注意,Trident對內容嚴格的一次處理保證在某些情況下也比較有用,例如系統無法智能地處理重復消息時。如果需要在項之間維持狀態,例如想要計算一個小時內有多少用戶點擊了某個鏈接,此時Trident將是你唯一的選擇。盡管不能充分發揮框架與生俱來的優勢,但Trident提高了Storm的靈活性。
Trident拓撲包含:
· 流批(Stream batch):這是指流數據的微批,可通過分塊提供批處理語義。
· 操作(Operation):是指可以對數據執行的批處理過程。
優勢和局限
目前來說Storm可能是近實時處理領域的最佳解決方案。該技術可以用極低延遲處理數據,可用於希望獲得最低延遲的工作負載。如果處理速度直接影響用戶體驗,例如需要將處理結果直接提供給訪客打開的網站頁面,此時Storm將會是一個很好的選擇。
Storm與Trident配合使得用戶可以用微批代替純粹的流處理。雖然藉此用戶可以獲得更大靈活性打造更符合要求的工具,但同時這種做法會削弱該技術相比其他解決方案最大的優勢。話雖如此,但多一種流處理方式總是好的。
Core Storm無法保證消息的處理順序。Core Storm為消息提供了「至少一次」的處理保證,這意味著可以保證每條消息都能被處理,但也可能發生重復。Trident提供了嚴格的一次處理保證,可以在不同批之間提供順序處理,但無法在一個批內部實現順序處理。
在互操作性方面,Storm可與Hadoop的YARN資源管理器進行集成,因此可以很方便地融入現有Hadoop部署。除了支持大部分處理框架,Storm還可支持多種語言,為用戶的拓撲定義提供了更多選擇。
總結
對於延遲需求很高的純粹的流處理工作負載,Storm可能是最適合的技術。該技術可以保證每條消息都被處理,可配合多種編程語言使用。由於Storm無法進行批處理,如果需要這些能力可能還需要使用其他軟體。如果對嚴格的一次處理保證有比較高的要求,此時可考慮使用Trident。不過這種情況下其他流處理框架也許更適合。
Apache Samza
Apache Samza是一種與Apache Kafka消息系統緊密綁定的流處理框架。雖然Kafka可用於很多流處理系統,但按照設計,Samza可以更好地發揮Kafka獨特的架構優勢和保障。該技術可通過Kafka提供容錯、緩沖,以及狀態存儲。
Samza可使用YARN作為資源管理器。這意味著默認情況下需要具備Hadoop集群(至少具備HDFS和YARN),但同時也意味著Samza可以直接使用YARN豐富的內建功能。
流處理模式
Samza依賴Kafka的語義定義流的處理方式。Kafka在處理數據時涉及下列概念:
· Topic(話題):進入Kafka系統的每個數據流可稱之為一個話題。話題基本上是一種可供消耗方訂閱的,由相關信息組成的數據流。
· Partition(分區):為了將一個話題分散至多個節點,Kafka會將傳入的消息劃分為多個分區。分區的劃分將基於鍵(Key)進行,這樣可以保證包含同一個鍵的每條消息可以劃分至同一個分區。分區的順序可獲得保證。
· Broker(代理):組成Kafka集群的每個節點也叫做代理。
· Procer(生成方):任何向Kafka話題寫入數據的組件可以叫做生成方。生成方可提供將話題劃分為分區所需的鍵。
· Consumer(消耗方):任何從Kafka讀取話題的組件可叫做消耗方。消耗方需要負責維持有關自己分支的信息,這樣即可在失敗後知道哪些記錄已經被處理過了。
由於Kafka相當於永恆不變的日誌,Samza也需要處理永恆不變的數據流。這意味著任何轉換創建的新數據流都可被其他組件所使用,而不會對最初的數據流產生影響。
優勢和局限
乍看之下,Samza對Kafka類查詢系統的依賴似乎是一種限制,然而這也可以為系統提供一些獨特的保證和功能,這些內容也是其他流處理系統不具備的。
例如Kafka已經提供了可以通過低延遲方式訪問的數據存儲副本,此外還可以為每個數據分區提供非常易用且低成本的多訂閱者模型。所有輸出內容,包括中間態的結果都可寫入到Kafka,並可被下游步驟獨立使用。
這種對Kafka的緊密依賴在很多方面類似於MapRece引擎對HDFS的依賴。雖然在批處理的每個計算之間對HDFS的依賴導致了一些嚴重的性能問題,但也避免了流處理遇到的很多其他問題。
Samza與Kafka之間緊密的關系使得處理步驟本身可以非常鬆散地耦合在一起。無需事先協調,即可在輸出的任何步驟中增加任意數量的訂閱者,對於有多個團隊需要訪問類似數據的組織,這一特性非常有用。多個團隊可以全部訂閱進入系統的數據話題,或任意訂閱其他團隊對數據進行過某些處理後創建的話題。這一切並不會對資料庫等負載密集型基礎架構造成額外的壓力。
直接寫入Kafka還可避免回壓(Backpressure)問題。回壓是指當負載峰值導致數據流入速度超過組件實時處理能力的情況,這種情況可能導致處理工作停頓並可能丟失數據。按照設計,Kafka可以將數據保存很長時間,這意味著組件可以在方便的時候繼續進行處理,並可直接重啟動而無需擔心造成任何後果。
Samza可以使用以本地鍵值存儲方式實現的容錯檢查點系統存儲數據。這樣Samza即可獲得「至少一次」的交付保障,但面對由於數據可能多次交付造成的失敗,該技術無法對匯總後狀態(例如計數)提供精確恢復。
Samza提供的高級抽象使其在很多方面比Storm等系統提供的基元(Primitive)更易於配合使用。目前Samza只支持JVM語言,這意味著它在語言支持方面不如Storm靈活。
總結
對於已經具備或易於實現Hadoop和Kafka的環境,Apache Samza是流處理工作負載一個很好的選擇。Samza本身很適合有多個團隊需要使用(但相互之間並不一定緊密協調)不同處理階段的多個數據流的組織。Samza可大幅簡化很多流處理工作,可實現低延遲的性能。如果部署需求與當前系統不兼容,也許並不適合使用,但如果需要極低延遲的處理,或對嚴格的一次處理語義有較高需求,此時依然適合考慮。
混合處理系統:批處理和流處理
一些處理框架可同時處理批處理和流處理工作負載。這些框架可以用相同或相關的組件和API處理兩種類型的數據,藉此讓不同的處理需求得以簡化。
如你所見,這一特性主要是由Spark和Flink實現的,下文將介紹這兩種框架。實現這樣的功能重點在於兩種不同處理模式如何進行統一,以及要對固定和不固定數據集之間的關系進行何種假設。
雖然側重於某一種處理類型的項目會更好地滿足具體用例的要求,但混合框架意在提供一種數據處理的通用解決方案。這種框架不僅可以提供處理數據所需的方法,而且提供了自己的集成項、庫、工具,可勝任圖形分析、機器學習、互動式查詢等多種任務。
Apache Spark
Apache Spark是一種包含流處理能力的下一代批處理框架。與Hadoop的MapRece引擎基於各種相同原則開發而來的Spark主要側重於通過完善的內存計算和處理優化機制加快批處理工作負載的運行速度。
Spark可作為獨立集群部署(需要相應存儲層的配合),或可與Hadoop集成並取代MapRece引擎。
批處理模式
與MapRece不同,Spark的數據處理工作全部在內存中進行,只在一開始將數據讀入內存,以及將最終結果持久存儲時需要與存儲層交互。所有中間態的處理結果均存儲在內存中。
雖然內存中處理方式可大幅改善性能,Spark在處理與磁碟有關的任務時速度也有很大提升,因為通過提前對整個任務集進行分析可以實現更完善的整體式優化。為此Spark可創建代表所需執行的全部操作,需要操作的數據,以及操作和數據之間關系的Directed Acyclic Graph(有向無環圖),即DAG,藉此處理器可以對任務進行更智能的協調。
為了實現內存中批計算,Spark會使用一種名為Resilient Distributed Dataset(彈性分布式數據集),即RDD的模型來處理數據。這是一種代表數據集,只位於內存中,永恆不變的結構。針對RDD執行的操作可生成新的RDD。每個RDD可通過世系(Lineage)回溯至父級RDD,並最終回溯至磁碟上的數據。Spark可通過RDD在無需將每個操作的結果寫回磁碟的前提下實現容錯。
流處理模式
流處理能力是由Spark Streaming實現的。Spark本身在設計上主要面向批處理工作負載,為了彌補引擎設計和流處理工作負載特徵方面的差異,Spark實現了一種叫做微批(Micro-batch)*的概念。在具體策略方面該技術可以將數據流視作一系列非常小的「批」,藉此即可通過批處理引擎的原生語義進行處理。
Spark Streaming會以亞秒級增量對流進行緩沖,隨後這些緩沖會作為小規模的固定數據集進行批處理。這種方式的實際效果非常好,但相比真正的流處理框架在性能方面依然存在不足。
優勢和局限
使用Spark而非Hadoop MapRece的主要原因是速度。在內存計算策略和先進的DAG調度等機制的幫助下,Spark可以用更快速度處理相同的數據集。
Spark的另一個重要優勢在於多樣性。該產品可作為獨立集群部署,或與現有Hadoop集群集成。該產品可運行批處理和流處理,運行一個集群即可處理不同類型的任務。
除了引擎自身的能力外,圍繞Spark還建立了包含各種庫的生態系統,可為機器學習、互動式查詢等任務提供更好的支持。相比MapRece,Spark任務更是「眾所周知」地易於編寫,因此可大幅提高生產力。
為流處理系統採用批處理的方法,需要對進入系統的數據進行緩沖。緩沖機制使得該技術可以處理非常大量的傳入數據,提高整體吞吐率,但等待緩沖區清空也會導致延遲增高。這意味著Spark Streaming可能不適合處理對延遲有較高要求的工作負載。
由於內存通常比磁碟空間更貴,因此相比基於磁碟的系統,Spark成本更高。然而處理速度的提升意味著可以更快速完成任務,在需要按照小時數為資源付費的環境中,這一特性通常可以抵消增加的成本。
Spark內存計算這一設計的另一個後果是,如果部署在共享的集群中可能會遇到資源不足的問題。相比HadoopMapRece,Spark的資源消耗更大,可能會對需要在同一時間使用集群的其他任務產生影響。從本質來看,Spark更不適合與Hadoop堆棧的其他組件共存一處。
總結
Spark是多樣化工作負載處理任務的最佳選擇。Spark批處理能力以更高內存佔用為代價提供了無與倫比的速度優勢。對於重視吞吐率而非延遲的工作負載,則比較適合使用Spark Streaming作為流處理解決方案。
Apache Flink
Apache Flink是一種可以處理批處理任務的流處理框架。該技術可將批處理數據視作具備有限邊界的數據流,藉此將批處理任務作為流處理的子集加以處理。為所有處理任務採取流處理為先的方法會產生一系列有趣的副作用。
這種流處理為先的方法也叫做Kappa架構,與之相對的是更加被廣為人知的Lambda架構(該架構中使用批處理作為主要處理方法,使用流作為補充並提供早期未經提煉的結果)。Kappa架構中會對一切進行流處理,藉此對模型進行簡化,而這一切是在最近流處理引擎逐漸成熟後才可行的。
流處理模型
Flink的流處理模型在處理傳入數據時會將每一項視作真正的數據流。Flink提供的DataStream API可用於處理無盡的數據流。Flink可配合使用的基本組件包括:
· Stream(流)是指在系統中流轉的,永恆不變的無邊界數據集
· Operator(操作方)是指針對數據流執行操作以產生其他數據流的功能
· Source(源)是指數據流進入系統的入口點
· Sink(槽)是指數據流離開Flink系統後進入到的位置,槽可以是資料庫或到其他系統的連接器
為了在計算過程中遇到問題後能夠恢復,流處理任務會在預定時間點創建快照。為了實現狀態存儲,Flink可配合多種狀態後端系統使用,具體取決於所需實現的復雜度和持久性級別。
此外Flink的流處理能力還可以理解「事件時間」這一概念,這是指事件實際發生的時間,此外該功能還可以處理會話。這意味著可以通過某種有趣的方式確保執行順序和分組。
批處理模型
Flink的批處理模型在很大程度上僅僅是對流處理模型的擴展。此時模型不再從持續流中讀取數據,而是從持久存儲中以流的形式讀取有邊界的數據集。Flink會對這些處理模型使用完全相同的運行時。
Flink可以對批處理工作負載實現一定的優化。例如由於批處理操作可通過持久存儲加以支持,Flink可以不對批處理工作負載創建快照。數據依然可以恢復,但常規處理操作可以執行得更快。
另一個優化是對批處理任務進行分解,這樣即可在需要的時候調用不同階段和組件。藉此Flink可以與集群的其他用戶更好地共存。對任務提前進行分析使得Flink可以查看需要執行的所有操作、數據集的大小,以及下游需要執行的操作步驟,藉此實現進一步的優化。
優勢和局限
Flink目前是處理框架領域一個獨特的技術。雖然Spark也可以執行批處理和流處理,但Spark的流處理採取的微批架構使其無法適用於很多用例。Flink流處理為先的方法可提供低延遲,高吞吐率,近乎逐項處理的能力。
Flink的很多組件是自行管理的。雖然這種做法較為罕見,但出於性能方面的原因,該技術可自行管理內存,無需依賴原生的Java垃圾回收機制。與Spark不同,待處理數據的特徵發生變化後Flink無需手工優化和調整,並且該技術也可以自行處理數據分區和自動緩存等操作。
Flink會通過多種方式對工作進行分許進而優化任務。這種分析在部分程度上類似於SQL查詢規劃器對關系型資料庫所做的優化,可針對特定任務確定最高效的實現方法。該技術還支持多階段並行執行,同時可將受阻任務的數據集合在一起。對於迭代式任務,出於性能方面的考慮,Flink會嘗試在存儲數據的節點上執行相應的計算任務。此外還可進行「增量迭代」,或僅對數據中有改動的部分進行迭代。
在用戶工具方面,Flink提供了基於Web的調度視圖,藉此可輕松管理任務並查看系統狀態。用戶也可以查看已提交任務的優化方案,藉此了解任務最終是如何在集群中實現的。對於分析類任務,Flink提供了類似SQL的查詢,圖形化處理,以及機器學習庫,此外還支持內存計算。
Flink能很好地與其他組件配合使用。如果配合Hadoop 堆棧使用,該技術可以很好地融入整個環境,在任何時候都只佔用必要的資源。該技術可輕松地與YARN、HDFS和Kafka 集成。在兼容包的幫助下,Flink還可以運行為其他處理框架,例如Hadoop和Storm編寫的任務。
目前Flink最大的局限之一在於這依然是一個非常「年幼」的項目。現實環境中該項目的大規模部署尚不如其他處理框架那麼常見,對於Flink在縮放能力方面的局限目前也沒有較為深入的研究。隨著快速開發周期的推進和兼容包等功能的完善,當越來越多的組織開始嘗試時,可能會出現越來越多的Flink部署
總結
Flink提供了低延遲流處理,同時可支持傳統的批處理任務。Flink也許最適合有極高流處理需求,並有少量批處理任務的組織。該技術可兼容原生Storm和Hadoop程序,可在YARN管理的集群上運行,因此可以很方便地進行評估。快速進展的開發工作使其值得被大家關注。
結論
大數據系統可使用多種處理技術。
對於僅需要批處理的工作負載,如果對時間不敏感,比其他解決方案實現成本更低的Hadoop將會是一個好選擇。
對於僅需要流處理的工作負載,Storm可支持更廣泛的語言並實現極低延遲的處理,但默認配置可能產生重復結果並且無法保證順序。Samza與YARN和Kafka緊密集成可提供更大靈活性,更易用的多團隊使用,以及更簡單的復制和狀態管理。
對於混合型工作負載,Spark可提供高速批處理和微批處理模式的流處理。該技術的支持更完善,具備各種集成庫和工具,可實現靈活的集成。Flink提供了真正的流處理並具備批處理能力,通過深度優化可運行針對其他平台編寫的任務,提供低延遲的處理,但實際應用方面還為時過早。
最適合的解決方案主要取決於待處理數據的狀態,對處理所需時間的需求,以及希望得到的結果。具體是使用全功能解決方案或主要側重於某種項目的解決方案,這個問題需要慎重權衡。隨著逐漸成熟並被廣泛接受,在評估任何新出現的創新型解決方案時都需要考慮類似的問題。
Ⅸ 如何搭建大數據分析平台
1、 搭建大數據分析平台的背景
在大數據之前,BI就已經存在很久了,簡單把大數據等同於BI,明顯是不恰當的。但兩者又是緊密關聯的,相輔相成的。BI是達成業務管理的應用工具,沒有BI,大數據就沒有了價值轉化的工具,就無法把數據的價值呈現給用戶,也就無法有效地支撐企業經營管理決策;大數據則是基礎,沒有大數據,BI就失去了存在的基礎,沒有辦法快速、實時、高效地處理數據,支撐應用。 所以,數據的價值發揮,大數據平台的建設,必然是囊括了大數據處理與BI應用分析建設的。
2、 大數據分析平台的特點
數據攝取、數據管理、ETL和數據倉庫:提供有效的數據入庫與管理數據用於管理作為一種寶貴的資源。
Hadoop系統功能:提供海量存儲的任何類型的數據,大量處理功率和處理能力幾乎是無限並行工作或任務
流計算在拉動特徵:用於流的數據、處理數據並將這些流作為單個流。
內容管理特徵:綜合生命周期管理和文檔內容。
數據治理綜合:安全、治理和合規解決方案來保護數據。
3、 怎樣去搭建大數據分析平台
大數據分析處理平台就是整合當前主流的各種具有不同側重點的大數據處理分析框架和工具,實現對數據的挖掘和分析,一個大數據分析平台涉及到的組件眾多,如何將其有機地結合起來,完成海量數據的挖掘是一項復雜的工作。我們可以利用億信一站式數據分析平台(ABI),可以快速構建大數據分析平台,該平台集合了從數據源接入到ETL和數據倉庫進行數據整合,再到數據分析,全部在一個平台上完成。
億信一站式數據分析平台(ABI)囊括了企業全部所需的大數據分析工具。ABI可以對各類業務進行前瞻性預測分析,並為企業各層次用戶提供統一的決策分析支持,提升數據共享與流轉能力。
Ⅹ 大數據平台由哪5個部分組成簡述各個部分內容的特點
一、數據採集
ETL工具負責將分布的、異構數據源中的數據如關系數據、平面數據文件等抽取到臨時中間層後進行清洗、轉換、集成,最後載入到數據倉庫或數據集市中,成為聯機分析處理、數據挖掘的基礎。
二、數據存取
關系資料庫、NOSQL、SQL等。
三、基礎架構
雲存儲、分布式文件存儲等。
四、數據處理
自然語言處理(NLP,Natural Language Processing)是研究人與計算機交互的語言問題的一門學科。處理自然語言的關鍵是要讓計算機"理解"自然語言,所以自然語言處理又叫做自然語言理解(NLU,Natural Language Understanding),也稱為計算語言學(Computational Linguistics。一方面它是語言信息處理的一個分支,另一方面它是人工智慧(AI, Artificial Intelligence)的核心課題之一。
五、統計分析
假設檢驗、顯著性檢驗、差異分析、相關分析、T檢驗、方差分析、卡方分析、偏相關分析、距離分析、回歸分析、簡單回歸分析、多元回歸分析、逐步回歸、回歸預測與殘差分析、嶺回歸、logistic回歸分析、曲線估計、因子分析、聚類分析、主成分分析、因子分析、快速聚類法與聚類法、判別分析、對應分析、多元對應分析(最優尺度分析)、bootstrap技術等等。
六、數據挖掘
分類 (Classification)、估計(Estimation)、預測(Prediction)、相關性分組或關聯規則(Affinity grouping or association rules)、聚類(Clustering)、描述和可視化、Description and Visualization)、復雜數據類型挖掘(Text, Web ,圖形圖像,視頻,音頻等)。
七、模型預測
預測模型、機器學習、建模模擬。
八、結果呈現
雲計算、標簽雲、關系圖等。