《數據科學與工程導論》課件-08 大數據系統_第1頁
《數據科學與工程導論》課件-08 大數據系統_第2頁
《數據科學與工程導論》課件-08 大數據系統_第3頁
《數據科學與工程導論》課件-08 大數據系統_第4頁
《數據科學與工程導論》課件-08 大數據系統_第5頁
已閱讀5頁,還剩62頁未讀 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數據科學與工程導論IntroductiontoDataScienceandEngineering開篇實例用公交卡追蹤小偷?Du,Bowen,etal."Catchmeifyoucan:Detectingpickpocketsuspectsfromlarge-scaletransitrecords."Proceedingsofthe22ndACMSIGKDDinternationalconferenceonknowledgediscoveryanddatamining.2016.大數據的基本概念Hadoop和Spark生態SQL與Hadoop的組合123第8章

大數據系統大數據系統的發展與未來48.1大數據的基本概念數字地球

8.1大數據的基本概念大數據背后的驅動力摩爾定律信息革命指數增長大爆炸奇點臨近技術將會逼近人類歷史上的某種本質的奇點在那之后全部人類行為都不可能以我們熟悉的面貌繼續存在。8.1大數據的基本概念大數據誕生的歷史2008BigData專刊IT企業研究報告科學研究“第四范式”2011-2015“十二五”規劃2012美國重大研究計劃2011DealingwithData專刊8.1大數據的基本概念大數據的不同定義多維度:特征維度多完備性:全面性,全局數據關聯性:數據間的關聯性不確定性:數據的真實性難以確定,含有噪音本質特征8.1大數據的基本概念大數據的其他特征體量大:4V中的Volume類型多:結構化、半結構化和非結構化來源廣:數據來源廣泛及時性:4V中的Velocity積累久:長期積累與存儲在線性:隨時能調用和計算價值密度低:大量的數據中真正有價值的少最終價值大:最終帶來的價值大8.1大數據的基本概念大數據的技術簡史Google大數據技術演化大數據的基本概念Hadoop和Spark生態SQL與Hadoop的組合123第8章

大數據系統大數據系統的發展與未來48.2Hadoop和Spark生態大數據是數據庫的自然延伸數據庫界從一開始就探索過大數據場景,但是過于保守忘不掉ACID,舍不得Relation,忽視實際應用沉浸在自己的世界里空值理論(NullValue),泛關系(UniversalRelation)數據庫設計的范式理論(FD,MVD,4NF,5NF,……)潛意識地奉行“一招鮮”(OneSizeFitsAll,OSFA)Hadoop+HDFS+HBase響亮一擊回到起點來考慮數據管理問題,豁然開朗8.2Hadoop和Spark生態大數據技術生態由于大數據要處理大量、非結構化的數據,所以在各處理環節中都可以采用并行處理。目前,Hadoop、MapReduce和Spark等分布式處理方式已經成為大數據處理各環節的通用處理方法。8.2Hadoop和Spark生態Hadoop生態系統存儲計算資源管理8.2Hadoop和Spark生態從數據存儲與管理角度看大數據系統分布式文件系統GFS,HDFSNoSQL數據庫鍵值(key-value)存儲數據庫:Dynamo列式存儲數據庫:BigTable、HBase文檔存儲數據庫:MongoDB8.2Hadoop和Spark生態分布式文件系統分布式文件系統(DistributedFileSystem)是指文件系統管理的物理存儲資源不一定直接連接在本地節點,而是通過計算機網絡與節點相連。Google為大型分布式數據密集型應用實現了一個可擴展的分布式文件系統GoogleFileSystem(GFS),運行在廉價的商用服務器上,為大量用戶提供容錯和高性能服務。HadoopDistributedFileSystem(HDFS)是GFS的開源版本。Microsoft開發了Cosmos支持其搜索和廣告業務。Facebook實現了Haystack存儲海量的小照片。淘寶設計了兩種小文件分布式文件系統:TFS和FastFS。8.2Hadoop和Spark生態GoogleFileSystemGFS是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。它運行于廉價的普通硬件上,將服務器故障視為正常現象,通過軟件的方式自動容錯,在保證系統可靠性和可用性的同時,大大減少了系統的成本。系統分為三類角色:Master(主服務器)ChunkServer(數據塊服務器)。Client(客戶端)8.2Hadoop和Spark生態Hadoop分布式文件系統Hadoop是一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序,充分利用集群的威力高速運算和存儲。Hadoop實現了一個分布式文件系統(HadoopDistributedFileSystem),簡稱HDFS。HDFS有著高容錯性的特點,并且設計用來部署在低廉的硬件上。HDFS集群包含:一個主節點(NameNode)多個從屬節點(DataNodes)多個客戶端訪問8.2Hadoop和Spark生態鍵值存儲數據庫鍵值存儲是一種簡單的數據存儲模型,數據以鍵值對的形式儲存,鍵是唯一的。典型實例:Amazon公司的Dynamo。在Dynamo中,數據被分割存Dynamo儲在不同的服務器集群中,并復制為多個副本。可擴展性和持久性(durability)依賴于以下兩個關鍵機制:分割和復制對象版本管理8.2Hadoop和Spark生態列式存儲數據庫列式存儲數據庫以列存儲架構進行存儲和處理數據,主要適合于批量數據處理和實時查詢。BigTable是Google公司設計的一種列式存儲系統,基本的數據結構是一個稀疏的、分布式的、持久化存儲的多維度排序映射(map),映射由行鍵、列鍵和時間戳構成。BigTable的設計目的是可靠地處理PB級別的數據,并且能夠部署到上千臺機器上。BigTable已經在超過60個Google的產品和項目上得到了應用,包括GoogleAnalytics、GoogleEarth等。8.2Hadoop和Spark生態HBaseHBase是GoogleBigTable的一種開源實現,它提供了稀疏、分布式、面向列的表存儲。在HBase中,每個值都按照三元組(行、列和時間戳)的形式進行索引。8.2Hadoop和Spark生態分布式文檔存儲數據庫:MongoDB文檔數據庫能夠支持比鍵值存儲復雜得多的數據結構。它們的數據模型和JSON對象類似,不同文檔存儲系統的區別在于數據復制和一致性機制方面。MongoDB由C++語言編寫,旨在為Web應用提供可擴展的高性能數據存儲解決方案。是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。8.2Hadoop和Spark生態MapReduce:產生背景MapReduce這種并行編程模式思想最早是在1995年提出的。與傳統的分布式程序設計相比,MapReduce封裝了并行處理、容錯處理、本地化計算、負載均衡等細節,還提供了一個簡單而強大的接口。MapReduce把對數據集的大規模操作,分發給一個主節點管理下的各分節點共同完成,通過這種方式實現任務的可靠執行與容錯機制。8.2Hadoop和Spark生態MapReduce:編程模型8.2Hadoop和Spark生態MapReduce:編程模型8.2Hadoop和Spark生態MapReduce:實現機制(1)MapReduce函數首先把輸入文件分成M塊(2)分派的執行程序中有一個主控程序Master(3)一個被分配了Map任務的Worker讀取并處理相關的輸入塊(4)這些緩沖到內存的中間結果將被定時寫到本地硬盤,這些數據通過分區函數分成R個區(5)當Master通知執行Reduce的Worker關于中間<key,value>對的位置時,它調用遠程過程,從MapWorker的本地硬盤上讀取緩沖的中間數據(6)ReduceWorker根據每一個唯一中間key來遍歷所有的排序后的中間數據,并且把key和相關的中間結果值集合傳遞給用戶定義的Reduce函數(7)當所有的Map任務和Reduce任務都完成的時候,Master激活用戶程序8.2Hadoop和Spark生態MapReduce:容錯機制8.2Hadoop和Spark生態Spark:簡介快速、分布式、可擴展、容錯的集群計算框架;Spark是基于內存計算的大數據分布式計算框架;低延遲的復雜分析;Spark是HadoopMapReduce的替代方案。MapReudce不適合迭代和交互式任務,Spark主要為交互式查詢和迭代算法設計,支持內存存儲和高效的容錯恢復。Spark擁有MapReduce具有的優點,但不同于MapReduce,Spark中間輸出結果可以保存在內存中,減少讀寫HDFS的次數。8.2Hadoop和Spark生態Spark:發展歷史8.2Hadoop和Spark生態Spark:UCBerkeleyAMPLab8.2Hadoop和Spark生態Spark:特點快速易用通用隨處一般情況下,對于迭代次數較多的應用程序,Spark程序在內存中的運行速度是HadoopMapReduce運行速度的100多倍,在磁盤上的運行速度是HadoopMapReduce運行速度的10多倍。8.2Hadoop和Spark生態Spark:特點快速易用通用隨處Spark支持使用Scala、Python、Java及R語言快速編寫應用。同時Spark提供超過80個高級運算符,使得編寫并行應用程序變得容易并且可以在Scala、Python或R的交互模式下使用Spark。8.2Hadoop和Spark生態Spark:特點快速易用通用隨處Spark可以與SQL、Streaming及復雜的分析良好結合。Spark還有一系列的高級工具,包括SparkSQL、MLlib(機器學習庫)、GraphX(圖計算)和SparkStreaming,并且支持在一個應用中同時使用這些組件。8.2Hadoop和Spark生態Spark:特點快速易用通用隨處用戶可以使用Spark的獨立集群模式運行Spark,也可以在EC2(亞馬遜彈性計算云)、HadoopYARN或者ApacheMesos上運行Spark。并且可以從HDFS、Cassandra、HBase、Hive、Tachyon和任何分布式文件系統讀取數據。8.2Hadoop和Spark生態Spark生態圈8.2Hadoop和Spark生態Spark生態圈:SparkSQL8.2Hadoop和Spark生態Spark生態圈:SparkSQL8.2Hadoop和Spark生態Spark生態圈:SparkStreaming輸入流式數據輸入小段數據處理后的小段數據SparkStreamingSparkEngine8.2Hadoop和Spark生態Spark生態圈:SparkStreaming8.2Hadoop和Spark生態Spark生態圈:MLlibMLlib

isApacheSpark'sscalablemachinelearninglibrary.8.2Hadoop和Spark生態Spark生態圈:GraphXGraphXisApacheSpark'sAPIforgraphsandgraph-parallelcomputation.8.2Hadoop和Spark生態Spark應用場景騰訊廣點通是最早使用Spark的應用之一。騰訊大數據精準推薦借助Spark快速迭代的優勢,圍繞“數據+算法+系統”這套技術方案,實現了在“數據實時采集、算法實時訓練、系統實時預測”的全流程實時并行高維算法,最終成功應用于廣點通pCTR投放系統上,支持每天上百億的請求量。YahooYahoo將Spark用在AudienceExpansion中。AudienceExpansion是廣告中尋找目標用戶的一種方法,首先廣告者提供一些觀看了廣告并且購買產品的樣本客戶,據此進行學習,尋找更多可能轉化的用戶,對他們定向廣告。Yahoo采用的算法是LogisticRegression。同時由于某些SQL負載需要更高的服務質量,又加入了專門跑Shark的大內存集群,用于取代商業BI/OLAP工具,承擔報表/儀表盤和交互式/即席查詢,同時與桌面BI工具對接。8.2Hadoop和Spark生態Spark應用場景淘寶淘寶技術團隊使用了Spark來解決多次迭代的機器學習算法、高計算復雜度的算法等,將Spark運用于淘寶的推薦相關算法上,同時還利用GraphX解決了許多生產問題,包括以下計算場景:基于度分布的中樞節點發現、基于最大連通圖的社區發現、基于三角形計數的關系衡量、基于隨機游走的用戶屬性傳播等。優酷土豆目前Spark已經廣泛使用在優酷土豆的視頻推薦,廣告業務等方面,相比Hadoop,Spark交互查詢響應快,性能比Hadoop提高若干倍。一方面,使用Spark模擬廣告投放的計算效率高、延遲小(同Hadoop比延遲至少降低一個數量級)。另一方面,優酷土豆的視頻推薦往往涉及機器學習及圖計算,而使用Spark解決機器學習、圖計算等迭代計算能夠大大減少網絡傳輸、數據落地等的次數,極大地提高了計算性能。8.2Hadoop和Spark生態Hadoop和Spark生態演化HadoopSparkHistoryEcosystem大數據的基本概念Hadoop和Spark生態SQL與Hadoop的組合123第8章

大數據系統大數據系統的發展與未來48.3SQL和Hadoop的組合WhySQLforBigData?8.3SQL和Hadoop的組合WhySQLforBigData?8.3SQL和Hadoop的組合Hadoop-SQLIntegration8.3SQL和Hadoop的組合HadoopVSSQL8.3SQL和Hadoop的組合Hive:簡介8.3SQL和Hadoop的組合Hive:基本框架Hive各種訪問接口BeeLineCL1HiveCL1JDBC客戶端ODBC客戶端Web接口Thrift服務器解釋器編譯器優化器執行器MapReduce數據倉庫HDFSHadoop無數據庫8.3SQL和Hadoop的組合Hive:基本框架用戶接口包括HiveShell、Thrift客戶端、Web接口Thrift服務器當Hive以服務器模式運行時,作為Thrift服務器,供客戶端連接元數據庫Hive元數據(如表信息)的集中存放地解析器將Hive語句翻譯成MapReduce操作Hadoop底層分布式存儲和計算引擎8.3SQL和Hadoop的組合Hive:語法Hive的SQL稱為HiveQL,它與大部分的SQL語法兼容,但是并不完全類似SQL數據類型基本類型:數值型、布爾型和字符串復雜類型:ARRAY、MAP和STRUCT操作類型HiveQL操作符類似于SQL操作符Hive提供了數理統計、字符串操作、條件操作等大量的內置函數用戶還可以自己編寫函數8.3SQL和Hadoop的組合Hive:語法示例hive>showtables;

#查看當前Hive倉庫中所有表(以確定當前無member表)hive>createtablemember(idint,namestring,gendertinyint,agetinyint,edustring,profstring,incomestring)rowformatdelimitedfieldsterminatedby'\t';#使用合適字段與類型,新建member表hive>showtables;#再次查看,將顯示member表hive>loaddatalocalinpath'/root/memberData'intotablemember;#將本地文件memberData載入HDFShive>select*frommember;#查看表中所有記錄hive>select*frommemberwheregender=1;#查看表中gender值為1的記錄hive>select*frommemberwheregender=1ANDage=23;#查看表中gender值為1且age為23的記錄hive>selectgender,count(*)fromm

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論