大數據“復活”記
854
2025-04-02
前言
隨著大數據技術的飛速發展和大數據應用的不斷普及,大數據已經成為當今時代最熱門的話題之一。不過對于大數據的了解,很多人還只是停留在表面,提到大數據,很多人只是知道它是最新的科技,有很大的價值,對于它的主流技術和具體的解決方案可能沒有過多的認知,本次課程將指引大家學習大數據主流技術和企業級大數據解決方案。
目標
學完本章后,您將能夠:
了解大數據主流技術
了解大數據場景化解決方案
了解大數據應用開發
一、大數據主流技術
第三次信息化浪潮
根據IBM前首席執政官郭士納的觀點,IT領域每隔十五年就會迎來一次重大變革。
第一次信息化浪潮呢是在1980年前后,標志是個人計算機,當時解決的問題是信息處理,其實就類似于我們學數學一樣,對數據進行條件成熟或者其他相應運算。在當時的一些代表企業,包括英特爾、AMD、IBM(藍色巨人)、蘋果、微軟、聯想、戴爾、惠普等公司。
第二次大概是在1995年前后,它的一個標志是互聯網,解決的問題也是信息傳輸。比如說打游戲或者上網聊天,微博、微信、qq等等。代表企業包括雅虎、谷歌、阿里巴巴、百度、騰訊等等。
第三次信息化是在2010年前后,這時候就有了幾個概念,第一個叫物聯網,萬物互聯,第二個是云計算。第三個是大數據。解決的問題是什么呢?信息爆炸。
為什么是信息爆炸呢?首先在互聯網的時候,它就產生了很多的數據,比如在使用微博、微信在發朋友圈或者動態的時候,就會產生很多的數據。第二塊數據在物聯網,大家可能聽說過萬物互聯的這種概念,萬物互聯其實就是什么呢?在生活中的天氣預報,天氣預報會說某個地方溫度是多少,溫度它是一種實時變化的。實時變換的是什么呢?它里面可能是有一個溫度傳感器,一直在那里采集溫度。像這種傳感器它并不是某一行才有,它是很多行業里面都有各種各樣的傳感器,這個傳感器和我們人不一樣。人一天的信息數據有可能并不多,但是像傳感器是一天二十四小時不間斷的去產生數據,所以說這時候就產生一個衡量的數據。代表企業包括有亞馬遜、谷歌、IBM、Hortonworks、阿里云、華為等等。
科技助力大數據時代到來
大數據的迅速發展離不開存儲技術、CPU處理能力的提升,同時網絡帶寬不斷增加,移動通信寬帶網絡快速發展,各種終端設備可以隨時隨地快速傳輸數據。
第一個V是volume,數據的體量巨大。主要體現在從TB級別到PB級別,截至目前為止,人類生產的所有印刷材料的數據量是兩百個PB。那么當前典型的個人計算機硬盤的容量為TB量級,而一些大企業的數據量已經接近到EB級別.
第二個V指的是variety。多元化主要指大數據的異構和多樣性。
第三個V是value價值,主要體現在大量的不相關信息,價值密度低,需要通過深度復雜分析才可以對未來的趨勢和模式進行預測。
第四個V是velocity,高效主要體現在實時分析,實時呈現分析結果。
三駕馬車
大數據技術起源于Google在2004年前后發表的三篇論文,也就是我們經常聽到的“三駕馬車”。
分布式文件系統GFS
大數據分布式計算框架MapReduce
分布式數據庫系統BigTable
作為大數據時代開拓者的谷歌,它的“三駕馬車”遠遠早于2010年誕生:谷歌文件系統第一次公開發表的論文是在2003年,MapReduce公開發表的時間是2004年,而BigTable則公開發表于2006年。這“三駕馬車”,主要是為谷歌的核心搜索業務服務的。作為全球最大的搜索引擎,谷歌需要存儲整個互聯網的內容,并且要在這個內容的基礎上構建倒排索引,這些都是基于“三駕馬車”來實現的。
倒排索引是對互聯網內容的一種索引方法,是指從搜索詞到對應的互聯網文檔的索引方法。用戶可以通過搜索詞去搜索互聯網,返回的則是和搜索詞相關的文檔。之所以稱為倒排索引,是因為文檔到文檔里面的詞是順序的,而從文檔里面的詞到文檔是逆序的。
為了構建倒排索引,谷歌首先需要存儲整個互聯網的內容,并存儲構建倒排索引所需的空間。而在當時的技術條件下,世界上是沒有現成的產品可以實現這種倒排索引。所以,谷歌發明了谷歌文件系統,一個基于大量的廉價個人計算機的海量存儲系統,它可以輕松地存儲整個互聯網的內容。
MapReduce則是谷歌構建第一代倒排索引的基礎,它可以大規模并行地處理整個互聯網上的所有文檔。
BigTable是一個鍵值存儲系統。它可以存儲一個主鍵的不同時期的多個版本的值,是谷歌代號為“咖啡因”的最新一代倒排索引引擎的核心。
2003:谷歌發布The Google File System 論文
2004:谷歌發布Mapreduce 論文
2006:谷歌發布Big table論文,受谷歌論文啟發Doug Cutting開發相關項目,同年, Hadoop從Nutch中分離,為了便于MapReduce開發,Yahoo研發Pig。
2007:Hadoop成為Apache頂級項目;專門運營Hadoop的商業公司Cloudera成立
2008:Facebook將Hive貢獻到開源社區
2010:HBase獨立成為Apache頂級項目
2012:Yarn作為獨立項目,負責資源調度;Sqoop成為Apache頂級項目
2014:Spark成為Apache頂級項目,Storm成為Apache頂級項目,Flink成為Apache頂級項目
大數據主流技術
所謂大數據技術,是指伴隨大數據的采集、存儲、處理和分析的相關技術。大數據的關鍵技術可以分為大數據采集、大數據預處理、大數據存儲及管理、大數據處理、大數據分析及挖掘、大數據展示等幾方面
大數據主流技術–數據采集
上圖圖標一個木頭在水上進行相應的滑動。我們古時候中國的歷史源遠流長,很多時候在上游的某個河道里面去伐木,然后的就會把這個木頭給它拋到水里面去,然后讓這個木頭去順流而下。到另一個地方去把木頭去給它收集起來,這樣的話就省了很多人力。在大數據里,它就是把數據放到一個類似河道的地方,然后數據進行流動,并進行相應的采集。
使用Flume,可進行流式日志數據的收集。使用Sqoop可以交互關系型數據庫,進行導入導出數據。使用爬蟲技術,可在網上爬取海量網頁數據。
在互聯網行業技術快速發展的今天,數據采集廣泛應用于互聯網及分布式領域(常見的攝像頭、麥克風等都可以成為數據采集的工具),此外還集合了信號、傳感器、激勵器、信號調流、數據采集設備和軟件應用等。大數據采集技術通過RFID射頻數據、傳感器數據、社交網絡數據、移動互聯網數據等方式獲得各種類型的結構化、半結構化、非結構化的海量數據。
因此,大數據采集技術也面臨著諸多挑戰:
一方面數據源的種類多,數據的類型繁雜,數據量大,并且產生的速度快;另一方面需要保證數據采集的可靠性和高效性,同時還要避免重復數據。
大數據主流技術–數據存儲與管理
在大數據時代,由于從多渠道獲得的數據通常缺乏一致性,數據結構混雜,且數據不斷增長,更何況任何機器都會有物理上的限制:內存容量、硬盤容量、處理器速度等。為了有效應對現實世界中復雜多樣性的大數據處理需求,需要針對不同的大數據應用特征,從多個角度、多個層次對大數據進行存儲和管理。
目前,大數據主要來源于搜索引擎服務、電子商務、社交網絡、音視頻、在線服務、個人數據業務、地理信息數據、傳統企業、公共機構等領域。因此數據呈現方法眾多,可以是結構化、半結構化和非結構化的數據形態,不僅使原有的存儲模式無法滿足數據時代的需求,還導致存儲管理更加復雜。
大數據利用分布式文件系統HDFS、HBase、Hive,實現對結構化、半結構化和非結構化數據的存儲和管理。
大數據主流技術–數據處理與分析
Hadoop分布式文件系統,建立起可靠、高帶寬、低成本的數據存儲集群,便于跨機器的相關文件管理。Hadoop的MapReduce引擎,則是高性能的并行/分布式MapReduce算法數據的處理實現。Spark,是基于內存計算,大大提升數據處理效率。Flink流數據處理引擎是新一代流處理系統,具有高吞吐、低時延、高可靠等特性,它的性能可以達到毫秒水平,處理的可靠性可以達到SparkStreaming一樣的Exactly Once,同時支持多租戶資源隔離,更適合企業級流處理場景。
我們可以利用分布式并行編程模型和計算框架,結合機器學習和數據挖掘算法,實現對海量數據的處理和分析。
小結:
本節介紹了大數據的發展史,以及各種大數據技術,包括數據采集,數據存儲與管理,數據處理與分析。
1、ACD? ? ? 2、D? ? ? ?3、AB
二、大數據場景化解決方案
大數據已經融入到了社會、生產和生活這個方方面面,其巨大價值日益顯現。大數據最近比較火的是人工智能這塊,人工智能它分為初級和高級,目前主要是集中在初級的人工智能。但是大數據這塊不一樣,大數據應用是非常成熟的。
首先我們看一下它的應用領域,比如說金融、物流、醫療、互聯網、城市。金融有高頻交易、市場運行分析和現代風險分析等。主要都是實時的,因為涉及到金錢他需要得到快速的響應結果。第二是物流這塊,比如說智慧物流,如果說我需要送一個快遞,這個快遞運輸都是用貨車或者卡車,該走哪條線路都是從里程進行分析,進行成本控制和路況風險管理。醫療有流行病預測、智慧醫療,健康管理等。互聯網有用戶畫像,個性化推薦,廣告投放等。城市領域有智慧交通,城市規劃,智能安防等。
場景化解決方案的分類
在面對不同的場景時,會使用不同的大數據組件去解決處理,主要有如下大數據場景化解決方案。
離線批處理
實時檢索
實時流處理
融合數倉
離線批處理的概念
離線批處理,是指對海量歷史數據進處理和分析,生成結果數據,供下一步數據應用使用的過程。離線處理平臺主要用來進行數據處理和加工,將原始數據加工成明細數據。以及進行離線分析和碰撞分析產生分析結果數據,供上層應用調用。
離線批處理對數據處理的時延要求不高,但是處理的數據量較大,占用的計算存儲資源較多,通常通過MR作業、Spark作業或者HQL作業實現。
離線批處理的特點
處理時間要求不高
處理數據量巨大
處理數據格式多樣
占用計算存儲資源多
離線批處理分為三塊分別是數據源、離線處理平臺和業務應用,數據源主要處理流式數據、文件數據和數據庫里的數據。
流式數據:從某個地方源源不斷收集數據
文件數據:電影、音樂mp3等文件
數據庫:業務數據庫,網站注冊登錄時的個人信息
離線處理平臺分為三塊:數據采集、數據存儲和數據分析。實時采集系統有Flume/第三方采集等,批量采集系統有Flume/Sqoop/第三方ETL等進行導入導出
數據存放在HDFS分布式文件系統,數據處理分為兩種,一種是Hive以表的方式對數據進行管理,管理之后提取我們想要的數據,Hive底層是MapReduce計算機引擎,類似于一個皮包公司;Spark SQL是Spark組件之一,YARN是對海量數據進行分布式處理分配執行,類似于一個管家的身份。
業務應用可以在數據集市進行集市應用、數據倉庫的倉庫應用(交互式分析)、專題庫的專題應用。
實時檢索概念
實時檢索簡而言之就是對系統內的一些信息根據關鍵詞進行即時、快速搜索,實現即搜即得的效果。強調的是實時低延遲。
核心訴求
檢索性能要求高:基于主鍵的檢索需要在1秒內響應,基于非主鍵的檢索需要在3秒內響應,不承擔復雜查詢和統計類查詢
高并發查詢:·通常有大于100的并發查詢
數據量大:PB級數據量,集群規模在1000節點以上。對圖數據庫的場景,點個數在10億以上,邊個數在100億以上
支持結構化和非結構化:需要同時保存結構化數據和非結構化數據,經常用來對圖片等小文件進行檢索
高效的數據加載:數據加載要求高,每小時可以加載TB級數據
支持圖檢索:支持檢索圖數據,支持圖標準查詢接口
源數據分為三塊,文件數據、流式數據和圖數據;文件數據;實時檢索平臺中數據采集分為批量加載(Loader/Flume/Spark/第三方加載)、實時加載(Spark Streaming/第三方采集)和GraphBase導入工具;實時檢索引擎有HBase\ElasticSearch,GraphBase(可選)。業務應用上的實時檢索業務分為軌跡查詢、日志查詢和話費查詢。
實時流處理概念
實時流處理,通常是指對實時數據源進行快速分析,迅速觸發下一步動作的場景。實時數據對分析處理速度要求極高,數據處理規模巨大,對CPU和內存要求很高,但是通常數據不落地,對存儲量要求不高。實時處理,通常通過StructuredStreaming或者Flink任務實現。
實時數據處理系統的訴求
處理速度快:端到端處理需要達到秒級,流處理平臺負責的數據采集和數據處理要在1秒內完成。如風控項目要求單條數據處理時間達到秒級,單節點TPS大于2000。
吞吐量高:需在短時內接收并處理大量數據記錄,吞吐量需要達到數十兆/秒/節點。
抗震性強:為應對數據源端業務數據產生速度會突然出現峰值的情形,需提供數據緩存機制。
可靠性高:網絡、軟件等故障發生時,需保證每條數據不丟失,數據處理不遺漏、不重復。
水平擴展:當系統處理能力出現瓶頸后,可通過節點的水平擴展提升處理性能。
多數據源支持:支持網絡流、文件、數據庫表、IOT等格式的數據源。對于文件數據源,可以處理增量數據的加載。
數據權限和資源隔離:消息處理、流處理需要有數據權限控制,不同的作業、用戶可以訪問、處理不同的消息和數據。多種流處理應用之間要進行資源控制和隔離,防止發生資源爭搶。
第三方工具對接:支持與第三方規則引擎、決策系統、實時推薦系統等對接。
實時流處理數據流圖中數據源分為三塊,數據庫、實時數據流和實時文件,實時處理評語有數據采集工具Flume等,第三方采集工具有Oracle等,分布式消息系統是指采用分布式軟件系統(Distributed Software Systems)構建的支持分布式處理的信息系統,是在由通信網絡互聯的多處理機體系結構上執行任務的系統。Flink和StructuredStreaming進行微批處理;再把數據放入Redis中進行快速的響應。實時應用有公安監控業務:實戰指揮、區域監控、人員布控;金融反欺詐業務:交易攔截、實時凍結和其它實時業務等。
融合數倉
在數據慢慢呈現數據處理量大、數據處理時延低、數據處理格式多樣的要求下,基于模塊化存儲的數據倉庫重要性日益增加,但同時也帶來了新的問題。
隨著精準營銷、客戶畫像、互聯網平臺等業務的上線,需要引入非結構化數據,以及提升對實時數據的計算處理能力,需要建立大數據平臺滿足上述業務需求。
金融領域隨著數據與日俱增(如國內某大行,平均3億筆業務/天,峰值6億/天);業務驅動下的數據分析靈活性要求越來越高,不同業務的數據分系統構建,導致冗余嚴重,缺乏高效、統一的融合數倉,阻礙企業快速轉型。如何對浪涌式的數據進行整合分析,發揮最大價值,金融機構對數據的處理提出了相應訴求具體表現如下:
第一,數據統一存儲:為了節約成本,企業希望一份數據支持多種使用場景;減少數據孤島和冗余,通過數據共享產生更大價值。
第二,高效:金融業務數據分析要求越來越高效、實時。
第三,易集成:提供標準接口,新的大數據方案與企業已采購的工具和IT系統要能無縫集成,支撐老業務快速遷移。
第四,大集群:區別于以往的單機系統,企業客戶希望新的大數據方案能應對日益增多的數據,隨時可以通過增加資源的方式橫向擴展,無極擴容。
第五,開放生態:通過開源開放,讓更多的客戶和合作伙伴的數據連接在一起,發揮更大的價值。
數據中臺,其本質就是讓數據更加靈活、敏捷地服務前端業務。沒有數據中臺,前端業務與后端之間的聯系與溝通通常是低效率的情況。現實情況往往又是,前端業務部門一般都是以自身業務為中心,希望后端能夠給與前端足夠的配合和個性化支持。這種“矛盾”在數字化時代就促使了數據中臺的出現。
數據中臺可以提供強大的數據獲取和存儲能力,并且基于多元化、多渠道、多種類數據來快速高效提供數據服務,大幅提升業務響應速度和創新能力。為構建起強大的數據中臺,通過華為GaussDB +FusionInsight融合型數據倉庫解決方案可以實現了強大的數據中臺基礎。
以CarbonData為融合數倉的大數據方案為金融轉型打造新一代數倉引擎
1)XX銀行針對交易流水記錄做審計業務,針對140億的大數據量,老的方案經過多次優化查詢仍需700多秒且系統不穩定,采用了CarbonData方案后平均性能提升10+倍,分行的明細查詢平均在10秒內。
2)XX銀行的行長手機項目(億級數據),行長可通過手機終端隨時查詢各分行利潤、營收報表等,客戶原有系統查詢需要等待10秒以上,采用了CarbonData方案后,平均性能提升了4-10倍,且支持數據線性增加,查詢性能保持在小于3秒。
華為將依托社區開發模式,通過開放、共贏的方式,推動大數據技術生態持續發展,為金融業務轉型,打造高性能多業務融合部署的新一代數倉引擎,為客戶快速創造價值。
小結
本節介紹了大數據在實際應用場景中的解決方案,包括離線批處理,實時檢索,實時流處理和融合數倉。并講解了它們的特點及架構流程。
1、對? ?2、對? 3、錯
三、大數據應用開發
怎么樣才能做好大數據應用開發?
編程基礎:1.具備JAVA/Scala編程能力 ? ? 2.熟悉SQL ? ? 3.熟悉Linux常規操作
熟悉業務開發:1.理解研發開發流程 ? ? ? ?⒉.理解本應用業務背景
大數據應用開發流程
1. 提出需求:多部門協商:項目的可行性分析
2. 需求分析:需求調研、市場調研
3.技術選型:數據流圖和技術方案
4.可行性分析:搭建技術平臺,測試可行性
5. 指標分析:需求和指標之間轉換
6. 數據對接:數據采集,清洗,源數據存儲,中間件
7. 數據分析:代碼實現
8.結果存儲:存到數據庫或其它位置
9.結果展示:運營部門
小結
本節介紹了大數據開發需要的基礎技能和大致開發步驟,以及需要考慮到的細節。
1、對? ? ?2、錯? ? 3、對
總結:
本章介紹了大數據的主流技術,以及大數據技術的演變過程,然后總體介紹了三個解決方案的概念、特點和流程圖,最后介紹了大數據開發過程中應該注意的細節。
本文整理自華為云社區【內容共創系列】活動,
查看活動詳情:https://bbs.huaweicloud.com/blogs/314887
相關任務詳情:大數據應用開發總指導
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。