版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、YOUR SITE HERE,大數(shù)據(jù)技術(shù)交流,2013.02,YOUR SITE HERE,目錄,1.大數(shù)據(jù)技術(shù)介紹2.Hadoop(HDFS,MapReduce)介紹3.Hadoop的最新發(fā)展4.流計算技術(shù)5.內(nèi)存數(shù)據(jù)庫6.列式數(shù)據(jù)庫7.各技術(shù)適用的場合8.討論,YOUR SITE HERE,什么是大數(shù)據(jù)?,大數(shù)據(jù) 指的是海量無法通過傳統(tǒng)方式管理的數(shù)據(jù)。,Big Data作為一個專有名詞成為熱點,主要應(yīng)歸功于近年來互聯(lián)網(wǎng)
2、、云計算、移動和物聯(lián)網(wǎng)的迅猛發(fā)展。無所不在的移動設(shè)備、RFID、無線傳感器每分每秒都在產(chǎn)生數(shù)據(jù),數(shù)以億計用戶的互聯(lián)網(wǎng)服務(wù)時時刻刻在產(chǎn)生巨量的交互……要處理的數(shù)據(jù)量實在是太大、增長太快了,而業(yè)務(wù)需求和競爭壓力對數(shù)據(jù)處理的實時性、有效性又提出了更高要求,傳統(tǒng)的常規(guī)技術(shù)手段根本無法應(yīng)付。,YOUR SITE HERE,大數(shù)據(jù)的4V特性,體量Volume,多樣性Variety,價值密度Value,速度Velocity,非結(jié)構(gòu)化數(shù)據(jù)的超大規(guī)模和增
3、長總數(shù)據(jù)量的80~90%比結(jié)構(gòu)化數(shù)據(jù)增長快10倍到50倍是傳統(tǒng)數(shù)據(jù)倉庫的10倍到50倍,大數(shù)據(jù)的異構(gòu)和多樣性很多不同形式(文本、圖像、視頻、機器數(shù)據(jù))無模式或者模式不明顯不連貫的語法或句義,大量的不相關(guān)信息對未來趨勢與模式的可預(yù)測分析深度復(fù)雜分析(機器學(xué)習(xí)、人工智能Vs傳統(tǒng)商務(wù)智能(咨詢、報告等),實時分析而非批量式分析數(shù)據(jù)輸入、處理與丟棄立竿見影而非事后見效,YOUR SITE HERE,大數(shù)據(jù)技術(shù),分布式緩存、基
4、于MPP的分布式數(shù)據(jù)庫、分布式文件系統(tǒng)、各種NoSQL分布式存儲方案,內(nèi)存數(shù)據(jù)庫等。,存儲,處理,應(yīng)用,Map Reduce,流計算,HIVE,pig,R,mahout等查詢統(tǒng)計,數(shù)據(jù)挖掘技術(shù),YOUR SITE HERE,大數(shù)據(jù)的存儲,采用了一批新技術(shù),主要包括分布式緩存、基于MPP的分布式數(shù)據(jù)庫、分布式文件系統(tǒng)、各種NoSQL分布式存儲方案等。,YOUR SITE HERE,分布式數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫對比,YOUR SITE H
5、ERE,大規(guī)模并行處理MPP (Massively Parallel Processing),YOUR SITE HERE,,YOUR SITE HERE,硬件,一些領(lǐng)先的存儲廠商都在建立專門針對Hadoop和大數(shù)據(jù)分析的存儲設(shè)備。這些供應(yīng)商包括EMC,目前提 供Hadoop解決方案,例如Greenplum HD Data Computing Appliance。甲骨文正在考慮進一步深化Exadata系列設(shè)備,提供計算能力以及高速存儲
6、?! ∽詈笠粋€存儲選擇是云形式的存儲,Cloudera、微軟、Amazon和很多其他供應(yīng)商都在提供基于云的大數(shù)據(jù)解決方案,這些解決方案能夠提供處理能力、存儲和支持。,橫向可擴展存儲,開放性,YOUR SITE HERE,所需的硬件和成本,那么,我們又需要多少的硬件呢? 估計Hadoop所需的硬件有點不一樣,這取決于你是在問哪家廠商。Cloudera的清單詳細地列出了Hadoop的典型從屬節(jié)點應(yīng)該有怎樣的硬件配置:?中檔處理
7、器?4GB至32 GB內(nèi)存?每個節(jié)點連接至千兆以太網(wǎng),并配備一只萬兆以太網(wǎng)架頂式交換機?專用的交換基礎(chǔ)設(shè)施,以避免Hadoop擁塞網(wǎng)絡(luò)?每個機器4至12個驅(qū)動器,非RAID配置方式,YOUR SITE HERE,Hadoop方案(例:intel),YOUR SITE HERE,YOUR SITE HERE,YOUR SITE HERE,HP Vertica 的數(shù)據(jù)倉庫系統(tǒng)解決方案,基于列存儲和MPP等先進技術(shù)平均性能提高50x
8、-1000x倍高可擴展性(TBs ~ PBs)節(jié)省高至90%的存儲空間快速集成ETL/BI解決方案高性能運行于電信級硬件快速和靈活部署,YOUR SITE HERE,,Cloudera CDH4,YOUR SITE HERE,Hadoop,一個分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoo
9、p Distributed File System),簡稱HDFS。HDFS有著高容錯性的特點,并且設(shè)計用來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。,YOUR SITE HERE,Hadoop相關(guān)子項目,,YOUR SITE HERE,目 錄,1.大數(shù)據(jù)技術(shù)介紹2.Hadoop(HDFS,MapR
10、educe)介紹3.Hadoop的最新發(fā)展4.流計算技術(shù)5.內(nèi)存數(shù)據(jù)庫6.列式數(shù)據(jù)庫7.各技術(shù)適用的場合8.討論,YOUR SITE HERE,Hadoop簡介,Hadoop 一個分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲 。 Hadoop是項目的總稱,主要是由分布式存儲(HDFS)、分布式計算(MapReduce)組成 。
11、 Hadoop程序目前只能運行在Linux系統(tǒng)上,window上運行需要安裝其他插件,安裝過程見《hadoop安裝說明.docx》 。,YOUR SITE HERE,Hadoop優(yōu)點,可擴展:不論是存儲的可擴展還是計算的可擴展都是Hadoop的設(shè)計根本。經(jīng)濟:框架可以運行在任何普通的PC上。可靠:分布式文件系統(tǒng)的備份恢復(fù)機制以及MapReduce的任務(wù)監(jiān)控保證了分布式處理的可靠性。(元數(shù)據(jù)磁盤錯誤,心跳測試,副本數(shù),快照(目前還沒實
12、現(xiàn)))高效:分布式文件系統(tǒng)的高效數(shù)據(jù)交互實現(xiàn)以及MapReduce結(jié)合Local Data處理的模式,為高效處理海量的信息作了基礎(chǔ)準備。,YOUR SITE HERE,Hadoop生態(tài)系統(tǒng),YOUR SITE HERE,HDFS適應(yīng)條件,超大文件 指的是幾百MB,幾百GB,幾百TB,甚至幾百PB流式數(shù)據(jù)訪問 HDFS建立的思想是:一次寫入、多次讀取模式是最高 效的。商用硬件 hadoo
13、p不需要運行在昂貴并且高可靠的硬件上。,HDFS:為以流式數(shù)據(jù)訪問模式存儲超大文件而設(shè)計的文件系統(tǒng)。,YOUR SITE HERE,HDFS不適應(yīng)條件,低延遲數(shù)據(jù)訪問 HDFS是為了達到高數(shù)據(jù)吞吐量而優(yōu)化的,這是以延遲為代價的,對于低延遲訪問,可以用Hbase(hadoop的子項目)。大量的小文件多用戶寫入,任意修改,YOUR SITE HERE,Hdfs集群框架圖,YOUR SITE HERE,NameNode記錄著
14、每個文件的元數(shù)據(jù)。每個文件在那個塊中,每個數(shù)據(jù)節(jié)點包含哪些塊。(不儲存原始文件)DataNode是文件的工作者,它們存儲文件并提供定位塊的服務(wù),并且定時向名稱節(jié)點發(fā)送它們的存儲塊的列表。 (儲存原始文件)重要參數(shù) dfs.replication.min參數(shù)。最小為1,表示每個塊在HDFS中的副本個數(shù)。,Hdfs集群框架,YOUR SITE HERE,Hdfs集群框架,文件寫入:Client向NameN
15、ode發(fā)起文件寫入的請求。 NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。 Client將文件劃分為多個Block,根據(jù)DataNode的地址信息,按順序?qū)懭氲矫恳粋€DataNode塊中。文件讀?。?Client向NameNode發(fā)起文件讀取的請求。 NameNode返回文件存儲的DataNode的信息。 Client讀取文件信息。,YOUR SITE HERE,H
16、dfs文件寫入圖,YOUR SITE HERE,Hdfs文件讀取圖,YOUR SITE HERE,HDFS的幾個設(shè)計特點,Block的放置:默認不配置。一個Block會有三份備份,一份放在NameNode指定的DataNode,另一份放在與指定DataNode非同一Rack上的DataNode,最后一份放在與指定DataNode同一Rack上的DataNode上。備份無非就是為了數(shù)據(jù)安全,考慮同一Rack的失敗情況以及不同Rack之間數(shù)
17、據(jù)拷貝性能問題就采用這種配置方式。心跳檢測DataNode的健康狀況,如果發(fā)現(xiàn)問題就采取數(shù)據(jù)備份的方式來保證數(shù)據(jù)的安全性。數(shù)據(jù)復(fù)制(場景為DataNode失敗、需要平衡DataNode的存儲利用率和需要平衡DataNode數(shù)據(jù)交互壓力等情況):這里先說一下,使用HDFS的balancer命令,可以配置一個Threshold來平衡每一個DataNode磁盤利用率。例如設(shè)置了Threshold為10%,那么執(zhí)行balancer命令的時候
18、,首先統(tǒng)計所有DataNode的磁盤利用率的均值,然后判斷如果某一個DataNode的磁盤利用率超過這個均值Threshold以上,那么將會把這個DataNode的block轉(zhuǎn)移到磁盤利用率低的DataNode,這對于新節(jié)點的加入來說十分有用。,YOUR SITE HERE,I/O操作,Writable接口序列化:指的是將結(jié)構(gòu)化對象轉(zhuǎn)換為字節(jié)流以便網(wǎng)絡(luò)進行傳輸 或者寫入存儲的過程。 反序列化:指的是將
19、字節(jié)流轉(zhuǎn)為一系列結(jié)構(gòu)化對象的過程。 (java定義的序列化和反序列化工具不夠緊湊,高效)在hadoop中,常規(guī)JAVA數(shù)據(jù)類型是不能表示Hdfs的數(shù)據(jù)類型的, 例如hdfs中的字符串不是string類表示,而是Text類,這些 數(shù)據(jù)類型都必須實現(xiàn)一個writable接口 。Writable是Hadoop的核心(MapReduce程序使用他來序列化 鍵/值對):
20、 void write(DataOutput out) throws IOException; void readFields(DataInput in) throws IOException; 分別實現(xiàn)對數(shù)據(jù)的序列化和反序列化。,YOUR SITE HERE,Writable接口的子類,YOUR SITE HERE,Writable接口的子類,1.對Java中的int型進行封裝那么就是hadoop中的In
21、tWritable類在寫程序時可以把IntWritable可以看著是int 類型,它實現(xiàn)了WritableComparable接口。 WritableComparable又是 Writable、 java.lang.comparable接口的子接口。2.Writable類對所有的Java基本類型進行封裝:如:boolean -> BooleanWritable ; Byte -> ByteWritab
22、le3.我們可以自已實現(xiàn)Writable接口,編寫更復(fù)雜的結(jié)構(gòu)的類。 核心:hadoop有自己一套的I/O機制。I/O類都必須實現(xiàn)Writable接口。,YOUR SITE HERE,Map Reduce,Map/Reduce是一個編程模型(programming model),是一個用于處理和生成大規(guī)模數(shù)據(jù)集(processing and generating large data sets)的相關(guān)的實現(xiàn)。用戶定義一個ma
23、p函數(shù)來處理一個key/value對以生成一批中間的key/value對,再定義一個reduce函數(shù)將所有這些中間的有著相同key的values合并起來。很多現(xiàn)實世界中的任務(wù)都可用這個模型來表達。,YOUR SITE HERE,MapReduce程序,,1:run job,JobClient,客戶端JVM,JobTracker,TaskTracker,Child,MapTask或者ReduceTask,Jobtracker節(jié)點,子J
24、VM,Tasktracker 節(jié)點,HDFS,,,,,,,,,,,,,,,,,,2:get new job ID,,3:copy Jobrescouce,,4:submit job,,,,,5:initialize job,,6:retrieve Input splits,,7:returns task,,8:retrieve jobresources,,,10:run,9:launch,客戶端: 提交MapReduce
25、作業(yè), 即一個job。jobTracker: 協(xié)調(diào)作業(yè)的運行。taskTracker:作業(yè)劃分后的任務(wù) (一個job對應(yīng)多個task, 一個task對應(yīng)一個 或者多個MapReduce線程)。,MapReduce數(shù)據(jù)流MapReduce的工作原理,YOUR SITE HERE,MapReduce數(shù)據(jù)流,,YOUR SITE HE
26、RE,MapReduce數(shù)據(jù)流,1 根據(jù)輸入數(shù)據(jù)的大小和參數(shù)的設(shè)置把數(shù)據(jù)分成splits, 每個split對于一個map線程。2 Split中的數(shù)據(jù)作為Map的輸入, Map的輸出一定在Map端。3 Map的輸出到Reduce的輸入的過程(shuffle過程): 第一階段:在map端完成 內(nèi)存->排序->寫入磁盤->復(fù)制 分區(qū)->排序->分區(qū)合并->合并后分區(qū)->
27、;復(fù)制 第二階段:在reduce端完成 映射到reduce端分區(qū)->合并->排序4 Reduce的輸入到Reduce的輸出 最后排好序的key/value作為Reduce的輸入,輸出不一定 是在reduce端。,YOUR SITE HERE,MapReduce數(shù)據(jù)流,MapReduce是 Hadoop程序的體現(xiàn)。框架極其簡單:首先是對MapReduce程序運行前的參數(shù)配置,然后編寫Map類
28、(實現(xiàn)Map方法),最后是Reduce類(實現(xiàn)Reduce方法)。MapReduce程序的每個細節(jié)都與設(shè)置的參數(shù)有很大的關(guān)系,參數(shù)設(shè)置的好,程序的效率肯定得到提高。Map方法:Map(k1,v1) ->list(k2,v2) ,并行應(yīng)用于每一個輸入的數(shù)據(jù)集,每一次調(diào)用都會產(chǎn)生一個(k2,v2)的隊列 。Reduce方法:Reduce(k2,list(v2)) -> list(k3,v
29、3)。收集map端輸出隊列l(wèi)ist(k2,v2)中有相同key的數(shù)據(jù)對,把它們聚集在一起,輸出時形成目的數(shù)據(jù) list(k3,v3)。,YOUR SITE HERE,Hadoop應(yīng)用案例,誰在用hadoopYahooFacebookAmazonEbayHuluIBMLinkedInLast.fmAlibabaBaidu中國移動研究院……,YOUR SITE HERE,目錄,1.大數(shù)據(jù)技術(shù)介紹2.Ha
30、doop(HDFS,MapReduce)介紹3.Hadoop的最新發(fā)展4.流計算技術(shù)5.內(nèi)存數(shù)據(jù)庫6.列式數(shù)據(jù)庫7.各技術(shù)適用的場合8.討論,YOUR SITE HERE,Hadoop已經(jīng)過時了嗎?,Google后Hadoop時代的新“三駕馬車”——Caffeine、Pregel、Dremel 在2010年,Google搜索引擎發(fā)生了重大變革。Google將其搜索遷移到新的軟件平臺,他們稱之為“Caffeine”(bigt
31、able)。Pregel主要繪制大量網(wǎng)上信息之間關(guān)系的“圖形數(shù)據(jù)庫” Dremel可以在極快的速度處理網(wǎng)絡(luò)規(guī)模的海量數(shù)據(jù)。據(jù)Google提交的文件顯示你可以在幾秒的時間處理PB級的數(shù)據(jù)查詢。,YOUR SITE HERE,Dremel做到了“不可能完成的任務(wù)”,Dremel設(shè)法將海量的數(shù)據(jù)分析于對數(shù)據(jù)的深入挖掘進行有機的結(jié)合。Dremel所處理的數(shù)據(jù)規(guī)模的速度實在令人印象深刻,你可以舒適的探索數(shù)據(jù)。在Dremel出現(xiàn)之前還沒有類似的
32、系統(tǒng)可以做的像Dremel這樣出色。,Dremel,YOUR SITE HERE,Drill項目Cloudera 公司的兩個新項目:Impala 和 Trevni,將有助在 2013 年實現(xiàn) Hadoop 實時查詢。 Impala 是開源版的 Dremel (Dremel 是 Google 大數(shù)據(jù)查詢解決方案),預(yù)計明年第一季度發(fā)布 Impala 的首個 beta 版。Impala 允許你在 Hadoop 的 HDFS、 Hbas
33、e 和 Hive 之上運行實時查詢。不必遷移。,YOUR SITE HERE,更多Hadoop子項目,YOUR SITE HERE,HBase,HBase是Apache Hadoop中的一個子項目,Hbase依托于Hadoop的HDFS作為最基本存儲基礎(chǔ)單元,通過使用hadoop的DFS工具就可以看到這些這些數(shù)據(jù)存儲文件夾的結(jié)構(gòu),還可以通過Map/Reduce的框架(算法)對HBase進行操作。,HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一
34、個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。所謂非結(jié)構(gòu)化數(shù)據(jù)存儲就是說HBase是基于列的而不是基于行的模式,這樣方面讀寫你的大數(shù)據(jù)內(nèi)容。HBase是介于MapEntry(key&value)和DBRow之間的一種數(shù)據(jù)存儲方式。就點有點類似于現(xiàn)在流行的Memcache,但不僅僅是簡單的一個key對應(yīng)一個value,你很可能需要存儲很可能需要存儲多個屬性的數(shù)據(jù)結(jié)構(gòu),但沒有傳統(tǒng)數(shù)據(jù)庫表中那么多的關(guān)聯(lián)關(guān)系,這就是所謂的松散數(shù)據(jù)。,YOUR S
35、ITE HERE,Hive,Hive 是建立在 Hadoop 上的數(shù)據(jù)倉庫基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來進行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規(guī)模數(shù)據(jù)的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 QL,它允許熟悉 SQL 的用戶查詢數(shù)據(jù)。同時,這個語言也允許熟悉 MapReduce 開發(fā)者的開發(fā)自定義的 mapper 和 reducer 來處理內(nèi)建的 mapper
36、和 reducer 無法完成的復(fù)雜的分析工作。,YOUR SITE HERE,,YOUR SITE HERE,Hive 和數(shù)據(jù)庫的比較,YOUR SITE HERE,Mahout介紹,Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一個開源項目,提供一些可擴展的機器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序,并且,在 Mahout 的最近版本中還加入了對A
37、pache Hadoop 的支持,使這些算法可以更高效的運行在云計算環(huán)境中,YOUR SITE HERE,,YOUR SITE HERE,YOUR SITE HERE,pig,pig是在HDFS和MapReduce之上的數(shù)據(jù)流處理語言,它將數(shù)據(jù)流處理翻譯成多個map和reduce函數(shù),提供更高層次的抽象將程序員從具體的編程中解放出來。,Pig不適合所有的數(shù)據(jù)處理任務(wù),和MapReduce一樣,它是為數(shù)據(jù)批處理而設(shè)計的。如果只想查詢大數(shù)據(jù)
38、集中的一小部分數(shù)據(jù),pig的表現(xiàn)不會很好,因為它要掃描整個數(shù)據(jù)集或絕大部分。,YOUR SITE HERE,pig,Pig包括兩部分:用于描述數(shù)據(jù)流的語言,稱為Pig Latin;和用于運行Pig Latin程序的執(zhí)行環(huán)境。Pig Latin程序有一系列的operation和transformation組成。每個操作或變換對輸入進行數(shù)據(jù)處理,然后產(chǎn)生輸出結(jié)果。這些操作整體上描述了一個數(shù)據(jù)流。Pig內(nèi)部,這些變換操作被轉(zhuǎn)換成一系列的M
39、apReduce作業(yè)。,YOUR SITE HERE,Pig和數(shù)據(jù)庫的比較:,1)Pig是數(shù)據(jù)流編程語言,而SQL是一種描述型編程語言。Pig是相對于輸入的一步步操作,其中每一步都是對數(shù)據(jù)的一個簡單的變換; 而SQL語句是一個約束的集合,這些約束結(jié)合在一起定義了輸出。Pig更像RDBMS中的查詢規(guī)劃器。2)RDBMS把數(shù)據(jù)存儲在嚴格定義了模式的表內(nèi),但pig對數(shù)據(jù)的要求更寬松,可以在運行時定義模式,而且是可選的。3)
40、pig對復(fù)雜、嵌套數(shù)據(jù)結(jié)構(gòu)的支持更強;4)Pig不支持事務(wù)和索引,也不支持隨機讀和幾十毫秒級別的查詢,它是針對數(shù)據(jù)批量處理的。5)Hive是介于Pig和RDBMS之間的系統(tǒng)。Hive以HDFS為存儲,但是查詢語言是基于SQL的,而且Hive要求所有數(shù)據(jù)必須存儲在表中, 表必須有模式,而模式由Hive管理。但Hive允許為預(yù)先存在HDFS中的數(shù)據(jù)關(guān)聯(lián)一個模式,因此數(shù)據(jù)加載步驟是可選的。,YOUR SITE HERE,Hado
41、op適用場景,適合Hadoop的應(yīng)用場景: 【1】日志分析 【2】排序 【3】搜索引擎,搜索關(guān)鍵字進行內(nèi)容分類,創(chuàng)建索引 【4】廣告計算,廣告優(yōu)化、分析,點擊流分析,鏈接分析 【5】大規(guī)模圖像轉(zhuǎn)換 【6】搜索引擎,創(chuàng)建索引 【7】數(shù)據(jù)分析,數(shù)據(jù)統(tǒng)計,過濾,查詢 【8】機器學(xué)習(xí),數(shù)據(jù)挖掘, 適合于海量數(shù)據(jù)文件的批處理任務(wù)。 不適合實時性
42、要求高的場景,不適合用戶操作,修改數(shù)據(jù)頻繁的場景。,YOUR SITE HERE,目錄,1.大數(shù)據(jù)技術(shù)介紹2.Hadoop(HDFS,MapReduce)介紹3.Hadoop的最新發(fā)展4.流計算技術(shù)5.內(nèi)存數(shù)據(jù)庫6.列式數(shù)據(jù)庫7.各技術(shù)適用的場合8.討論,YOUR SITE HERE,MapReduce Hold不住?,對于實時性要求很高的應(yīng)用,盡管MapReduce作了實時性改進,但仍很難穩(wěn)定地滿足應(yīng)用需求。因為Had
43、oop為批處理作了高度優(yōu)化,MapReduce系統(tǒng)典型地通過調(diào)度批量任務(wù)來操作靜態(tài)數(shù)據(jù);而流式計算的典型范式之一是不確定數(shù)據(jù)速率的事件流流入系統(tǒng),系統(tǒng)處理能力必須與事件流量匹配,或者通過近似算法等方法優(yōu)雅降級,通常稱為負載分流(load-shedding)。當然,除了負載分流,流式計算的容錯處理等機制也和批處理計算不盡相同。,YOUR SITE HERE,流計算(Stream Computing),Hadoop(大數(shù)據(jù)分析領(lǐng)域無可爭辯的
44、王者)專注于批處理。這種模型對許多情形(比如為網(wǎng)頁建立索引)已經(jīng)足夠,但還存在其他一些使用模型,它們需要來自高度動態(tài)的來源的實時信息。為了解決這個問題,就得借助 Nathan Marz 推出的 Storm(現(xiàn)在在 Twitter 中稱為 BackType)。Storm 不處理靜態(tài)數(shù)據(jù),但它處理預(yù)計會連續(xù)的流數(shù)據(jù)。考慮到 Twitter 用戶每天生成 1.4 億條推文 (tweet),那么就很容易看到此技術(shù)的巨大用途。,YOUR SIT
45、E HERE,,YOUR SITE HERE,Storm 與Hadoop,Storm 與其他大數(shù)據(jù)解決方案的不同之處在于它的處理方式:Hadoop 在本質(zhì)上是一個批處理系統(tǒng)。數(shù)據(jù)被引入 Hadoop 文件系統(tǒng) (HDFS) 并分發(fā)到各個節(jié)點進行處理。當處理完成時,結(jié)果數(shù)據(jù)返回到 HDFS 供始發(fā)者使用。Storm 支持創(chuàng)建拓撲結(jié)構(gòu)來轉(zhuǎn)換沒有終點的數(shù)據(jù)流。不同于 Hadoop 作業(yè),這些轉(zhuǎn)換從不停止,它們會持續(xù)處理到達的數(shù)據(jù)。,YOU
46、R SITE HERE,Storm 模型,Storm 實現(xiàn)了一種數(shù)據(jù)流模型,其中數(shù)據(jù)持續(xù)地流經(jīng)一個轉(zhuǎn)換實體網(wǎng)絡(luò)。一個數(shù)據(jù)流的抽象稱為一個流,這是一個無限的元組序列。元組就像一種使用一些附加的序列化代碼來表示標準數(shù)據(jù)類型(比如整數(shù)、浮點和字節(jié)數(shù)組)或用戶定義類型的結(jié)構(gòu)。每個流由一個惟一 ID 定義,這個 ID 可用于構(gòu)建數(shù)據(jù)源和接收器 (sink) 的拓撲結(jié)構(gòu)。流起源于噴嘴,噴嘴將數(shù)據(jù)從外部來源流入 Storm 拓撲結(jié)構(gòu)中。,YOUR S
47、ITE HERE,Storm 實現(xiàn)了一種數(shù)據(jù)流模型,其中數(shù)據(jù)持續(xù)地流經(jīng)一個轉(zhuǎn)換實體網(wǎng)絡(luò)一個數(shù)據(jù)流的抽象稱為一個流,這是一個無限的元組序列。元組就像一種使用一些附加的序列化代碼來表示標準數(shù)據(jù)類型(比如整數(shù)、浮點和字節(jié)數(shù)組)或用戶定義類型的結(jié)構(gòu)。流起源于噴嘴,噴嘴將數(shù)據(jù)從外部來源流入 Storm 拓撲結(jié)構(gòu)中。接收器(或提供轉(zhuǎn)換的實體)稱為螺栓,,YOUR SITE HERE,使用 Storm 為詞頻輕松地實現(xiàn) MapReduce 功能。如圖
48、中所示,噴嘴生成文本數(shù)據(jù)流,螺栓實現(xiàn) Map 功能(令牌化一個流的各個單詞)。來自 “map” 螺栓的流然后流入一個實現(xiàn) Reduce 功能的螺栓中(以將單詞聚合到總數(shù)中)。,YOUR SITE HERE,流計算產(chǎn)品:,1.Yahoo的S4: S4是一個通用的、分布式的、可擴展的、分區(qū)容錯的、可插拔的流式系統(tǒng),Yahoo!開發(fā)S4系統(tǒng),主要是為了解決:搜索廣告的展現(xiàn)、處理用戶的點擊反饋。 2. Twitter的storm
49、 Twitter的storm:Storm是一個分布式的、容錯的實時計算系統(tǒng)Storm用途:可用于處理消息和更新數(shù)據(jù)庫(流處理),在數(shù)據(jù)流上進行持續(xù)查詢,并以流的形式返回結(jié)果到客戶端(持續(xù)計算),并行化一個類似實時查詢的熱點查詢(分布式的RPC)。3.streamBase,YOUR SITE HERE,,YOUR SITE HERE,,目錄,1.大數(shù)據(jù)技術(shù)介紹2.Hadoop(HDFS,MapReduce)介紹3.Hadoop的
50、最新發(fā)展4.流計算技術(shù)5.內(nèi)存數(shù)據(jù)庫6.列式數(shù)據(jù)庫7.各技術(shù)適用的場合8.討論,YOUR SITE HERE,內(nèi)存數(shù)據(jù)庫:大數(shù)據(jù)時代數(shù)據(jù)管理新寵,內(nèi)存數(shù)據(jù)庫,顧名思義就是將數(shù)據(jù)放在內(nèi)存中直接操作的數(shù)據(jù)庫。相對于磁盤,內(nèi)存的數(shù)據(jù)讀寫速度要高出幾個數(shù)量級,將數(shù)據(jù)保存在內(nèi)存中相比從磁盤上訪問能夠極大地提高應(yīng)用的性能。同時,內(nèi)存數(shù)據(jù)庫拋棄了磁盤數(shù)據(jù)管理的傳統(tǒng)方式,基于全部數(shù)據(jù)都在內(nèi)存中重新設(shè)計了體系結(jié)構(gòu),并且在數(shù)據(jù)緩存、快速算法、并行
51、操作方面也進行了相應(yīng)的改進,所以數(shù)據(jù)處理速度比傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)處理速度要快很多,一般都在10倍以上。內(nèi)存數(shù)據(jù)庫的最大特點是其“主拷貝”或“工作版本”常駐內(nèi)存,即活動事務(wù)只與實時內(nèi)存數(shù)據(jù)庫的內(nèi)存拷貝打交道。,YOUR SITE HERE,主流內(nèi)存數(shù)據(jù)庫產(chǎn)品1,·Oracle TimesTen Oracle TimesTen是Oracle從TimesTen公司收購的一個內(nèi)存優(yōu)化的關(guān)系數(shù)據(jù)庫,它為應(yīng)用程序提供了實時企業(yè)和行業(yè)(例
52、如電信、資本市場和國防)所需的即時響應(yīng)性和非常高的吞吐量。Oracle TimesTen可作為高速緩存或嵌入式數(shù)據(jù)庫被部署在應(yīng)用程序?qū)又校脴藴实?SQL 接口對完全位于物理內(nèi)存中的數(shù)據(jù)存儲區(qū)進行操作?! ?#183;IBM SolidDB IBM SolidDB是一款數(shù)據(jù)管理平臺,該平臺將基于內(nèi)存和磁盤的全事務(wù)處理數(shù)據(jù)庫引擎、載體級高,可用性及強大的數(shù)據(jù)復(fù)制功能緊密地融為一體。SolidDB集基于內(nèi)存和磁盤的多線程數(shù)據(jù)庫引擎
53、于一身,以提高事務(wù)處理速度并在同一數(shù)據(jù)庫內(nèi)最有效地利用系統(tǒng)資源。SolidDB管理平臺的設(shè)計可以無縫融合到需要高速、靈活以及需要不間斷訪問的數(shù)據(jù)管理技術(shù)解決方案中。用戶既可以把表建在內(nèi)存內(nèi),也可以象普通數(shù)據(jù)庫一樣建在磁盤上,使用非常靈活,而且具備完善的數(shù)據(jù)保護機制。,YOUR SITE HERE,主流內(nèi)存數(shù)據(jù)庫產(chǎn)品2,·eXtremeDB eXtremeDB實時數(shù)據(jù)庫是McObject公司的一款特別為實時與嵌入式系統(tǒng)數(shù)據(jù)管
54、理而設(shè)計的數(shù)據(jù)庫,只有 50K到130K的開銷,速度達到微秒級。eXtremeDB完全駐留在主內(nèi)存中,不使用文件系統(tǒng)(包括內(nèi)存盤)。eXtremeDB采用了新的磁盤融合技術(shù),將內(nèi)存拓展到磁盤,將磁盤當做虛擬內(nèi)存來用,實時性能保持微秒級的同時,數(shù)據(jù)管理量在32BIT下能達到20G?! ?#183;Altibase Altibase是一個在事務(wù)優(yōu)先的環(huán)境中提供高性能和高可用性的軟件解決方案。它提供高性能、容錯能力和事務(wù)管理能力,特別
55、適合通信、網(wǎng)上銀行、證券交易、實時應(yīng)用和嵌入式系統(tǒng)領(lǐng)域。Altibase能夠最大限度地發(fā)揮數(shù)據(jù)庫服務(wù)系統(tǒng)的潛力,增強數(shù)據(jù)服務(wù)器的處理能力。Altibase支持客戶端/服務(wù)器架構(gòu)或嵌入式架構(gòu)。其中客戶端/服務(wù)器架構(gòu)非常適合一般的應(yīng)用。而嵌入式架構(gòu)將應(yīng)用程序嵌入到數(shù)據(jù)庫服務(wù)器,適合于有高時效要求的實時系統(tǒng)。,YOUR SITE HERE,主流內(nèi)存數(shù)據(jù)庫產(chǎn)品3,·SQLite SQLite是一款輕型的數(shù)據(jù)庫,它占用資源非常的低,
56、同時能夠跟很多程序語言相結(jié)合,但是支持的SQL語句不會遜色于其他開源數(shù)據(jù)庫。它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如Tcl、PHP、Java 等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處
57、理速度比他們都快。 ·Redis Redis是一款開源的、高性能的鍵-值存儲(key-value store)。它常被稱作是一款數(shù)據(jù)結(jié)構(gòu)服務(wù)器(data structure server)。Redis的鍵值可以包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等數(shù)據(jù)類型。 對于這些數(shù)據(jù)類型,你可以執(zhí)行原子操作。例如:對字符串進行附加操作(app
58、end);遞增哈希中的值;向列表中增加元素;計算集合的交集、并集與差集等?! ?#183;SAP HANA SAP HANA 是一款面向數(shù)據(jù)源的、靈活、多用途的內(nèi)存應(yīng)用設(shè)備,整合了基于硬件優(yōu)化的SAP軟件模塊,通過SAP主要硬件合作伙伴提供給客戶。SAP HANA提供靈活、節(jié)約、高效、實時的方法管理海量數(shù)據(jù)。利用HANA,企業(yè)可以不必運行多個數(shù)據(jù)倉庫、運營和分析系統(tǒng),從而削減相關(guān)的硬件和維護成本。SAPHANA將在內(nèi)存技術(shù)基礎(chǔ)上,
59、為新的創(chuàng)新應(yīng)用程序奠定技術(shù)基礎(chǔ),支持更高效的業(yè)務(wù)應(yīng)用程序,如:計劃、預(yù)測、運營績效和模擬解決方案。,YOUR SITE HERE,目錄,1.大數(shù)據(jù)技術(shù)介紹2.Hadoop(HDFS,MapReduce)介紹3.Hadoop的最新發(fā)展4.流計算技術(shù)5.內(nèi)存數(shù)據(jù)庫6.列式數(shù)據(jù)庫7.各技術(shù)適用的場合8.討論,YOUR SITE HERE,列式數(shù)據(jù)庫,列式數(shù)據(jù)庫是以列相關(guān)存儲架構(gòu)進行數(shù)據(jù)存儲的數(shù)據(jù)庫,主要適合與批量數(shù)據(jù)處理和即席查
60、詢。相對應(yīng)的是行式數(shù)據(jù)庫,數(shù)據(jù)以行相關(guān)的存儲體系架構(gòu)進行空間分配,主要適合與小批量的數(shù)據(jù)處理,常用于聯(lián)機事務(wù)型數(shù)據(jù)處理。,YOUR SITE HERE,列式數(shù)據(jù)庫的優(yōu)勢,不讀取無效數(shù)據(jù):降低 I/O 開銷,同時提高每次 I/O 的效率,從而大大提高查詢性能。查詢語句只從磁盤上讀取所需要的列,其他列的數(shù)據(jù)是不需要讀取的。例如,有兩張表,每張表100GB 且有100 列,大多數(shù)查詢只關(guān)注幾個列,采用列存儲,不需要像行存數(shù)據(jù)庫一樣,將整行數(shù)據(jù)
61、取出,只取出需要的列。磁盤 I/0 是行存儲的 1/10或更少,查詢響應(yīng)時間提高 10 倍以上。 高壓縮比:壓縮比可以達到 5 ~ 20 倍以上,數(shù)據(jù)占有空間降低到傳統(tǒng)數(shù)據(jù)庫的1/10 ,節(jié)省了存儲設(shè)備的開銷。,YOUR SITE HERE,列式數(shù)據(jù)庫,列式數(shù)據(jù)庫的代表包括:Sybase IQ,infobright、infiniDB、GBase 8a,ParAccel, Sand/DNA Analytics和 Vertica。,Y
62、OUR SITE HERE,目錄,1.大數(shù)據(jù)技術(shù)介紹2.Hadoop(HDFS,MapReduce)介紹3.Hadoop的最新發(fā)展4.流計算技術(shù)5.內(nèi)存數(shù)據(jù)庫6.列式數(shù)據(jù)庫7.各技術(shù)適用的場合8.討論,YOUR SITE HERE,各技術(shù)適用的場合,Hadoop :大數(shù)據(jù)的存儲與處理Hbase :高并發(fā)OLTP系統(tǒng)內(nèi)存數(shù)據(jù)庫:高并發(fā)OLTP系統(tǒng),以及快速查詢系統(tǒng)列式數(shù)據(jù)庫:OLAP系統(tǒng)流計算:海量數(shù)據(jù)實時處理,(如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無線技術(shù)交流
- 河南油田技術(shù)交流
- fpga技術(shù)交流群
- 地鐵afc技術(shù)交流
- it技術(shù)交流會
- 結(jié)構(gòu)技術(shù)交流材料
- 分時技術(shù)交流續(xù)篇之
- 中頻爐熔煉技術(shù)交流
- 電氣自控技術(shù)交流試題
- 2技術(shù)交流備用資料
- 華潤桌面云技術(shù)交流
- 多層板層壓技術(shù)交流
- 宏杉科技存儲技術(shù)交流
- 如何做設(shè)備技術(shù)交流
- 水平井鉆井技術(shù)交流
- 水下采油樹技術(shù)交流培訓(xùn)
- 日光溫室大棚育苗技術(shù)交流
- 技術(shù)交流城域網(wǎng)規(guī)劃思路
- 農(nóng)殘檢測技術(shù)交流-天津農(nóng)藥
- 技術(shù)交流會領(lǐng)導(dǎo)致辭
評論
0/150
提交評論