大數據存儲技術docx_第1頁
大數據存儲技術docx_第2頁
大數據存儲技術docx_第3頁
大數據存儲技術docx_第4頁
大數據存儲技術docx_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、大數據存儲技術劉雷1,杜鵬程2,賀俊銘3,孔慶春4,張莉莉51,2,3,4,5(清華大學 計算機科學與技術系,北京 100084)Abstract:Big data analysis compared with the traditional data warehouse applications, with a large amount of data and complex query analysis, etc. Big data storage because of its itself exists 4 v characteristics, the traditional stora

2、ge technology can not meet the needs of large data storage, data resources through the ETL technology was extracted from the source system, and is converted into a standard format, then using NoSQL database for database access management, make full use of the network cloud storage technology enterpr

3、ise storage cost saving, efficiency advantage, through a distributed network file system to store data information in the Internet network resources, using visual operating interface to satisfy the users data processing requirements at any time.Key words: Data acquisition (ETL), data access (NoSQL),

4、 cloud storage, distributed file systems, visualization摘 要: 大數據分析相比于傳統的數據倉庫應用,具有數據量大、查詢分析復雜等特點。大數據存儲由于其本身存在的4V特征,傳統的存儲技術不能滿足大數據存儲的需要,通過ETL技術數據資源被從源系統中提取,并被轉換為一個標準的格式,再使用NoSQL數據庫進行數據庫存取管理,充分利用網絡云存儲技術節約企業存儲成本,提高效率的優勢,通過分布式網絡文件系統將數據信息存儲在整個互聯網絡資源中,并用可視化的操作界面隨時滿足用戶的數據處理需求。關鍵詞: 數據采集(ETL)、數據存取(NoSQL)、云存儲、分

5、布式文件系統、可視化1 引言在學術界,Nature早在2008年就推出了Big Data專刊1。計算社區聯盟(Computing Community Consortium)在2008年發表了報告Big9Data Computing: Creating revolutionary breakthroughs in commerce, science, and society 2,闡述了在數據驅動的研究背景下,解決大數據問題所需的技術以及面臨的一些挑戰。Science 在2011年2月推出專刊Dealing with Data3,主要圍繞著科學研究中大數據的問題展開討論,說明大數據對于科學研究的重

6、要性。美國一些知名的數據管理領域的專家學者則從專業的研究角度出發,聯合發布了一份白皮書Challenges and Opportunities with Big Data4。該白皮書從學術的角度出發,介紹了大數據的產生,分析了大數據的處理流程,并提出大數據所面臨的若干挑戰。 業界通常用Volume、Variety、Value和Velocity(簡稱為“4V”,即數據體量巨大、數據類型繁多、價值密度低和處理速度快)四個特征來顯著區分大數據與傳統數據。大數據技術是一個整體,沒有統一的解決方案,本文從大數據生命周期過程的角度討論了ETL技術、NoSQL、云存儲、分布式系統、數據可視化等5個部分。2

7、ETL技術 隨著信息化進程的推進,人們對數據資源整合的需求越來越明顯。但面對分散在不同地區、種類繁多的異構數據庫進行數據整合并非易事,要解決冗余、歧義等臟數據的清洗問題,僅靠手工進行不但費時費力,質量也難以保證;另外,數據的定期更新也存在困難。如何實現業務系統數據整合,是擺在大數據面前的難題。ETL數據轉換系統為數據整合提供了可靠的解決方案。 ETL是Extraction-Transformation-Loading的縮寫,中文名稱為數據提取、轉換和加載。ETL負責將分布的、異構數據源中的數據如關系數據、平面數據文件等抽取到臨時中間層后進行清洗、轉換、集成,最后加載到數據倉庫或數據集市中,成為

8、聯機分析處理、數據挖掘的基礎。它可以批量完成數據抽取、清洗、轉換、裝載等任務,不但滿足了人們對種類繁多的異構數據庫進行整合的需求,同時可以通過增量方式進行數據的后期更新。 ETL體系結構體現了主流ETL產品的主要組成部分5,其體系結構如圖1:圖1 ETL體系結構 ETL過程中的主要環節就是數據抽取、數據轉換和加工、數據裝載6。為了實現這些功能,各個ETL工具一般會進行一些功能上的擴充,例如工作流、調度引擎、規則引擎、腳本支持、統計信息等。2.1 數據抽取 數據抽取是從數據源中抽取數據的過程7。實際應用中,不管數據源采用的是傳統關系數據庫還是新興的NoSQL數據庫,數據抽取一般有以下幾種方式:

9、2.1.1 全量抽取 全量抽取指的是ETL在集成端進行數據的初始化時,首先由業務人員或相關的操作人員定義抽取策略,選定抽取字段和定義規則后,由設計人員進行程序設計;將數據進行處理后,直接讀取整個工作表中的數據作為抽取的內容,類似于數據遷移,是ETL過程中最簡單的步驟,其簡單性主要適用于處理一些對用戶非常重要的數據表。2.1.2 增量抽取 增量抽取主要發生在全量抽取之后。全量抽取之后,對上次抽取過的數據源表中新增的或被修改的數據進行抽取,稱之為增量抽取。增量抽取可以減少對抽取過程中的數據量,提高抽取速度和效率,減少網絡流量,同時,增量抽取的實現,對異構數據源和數據庫中數據的變化有個準確的把握。信

10、息抽取不是僅僅從大量的文獻集或數據集中找出適合用戶需要的那篇文獻或部分內容,而是抽取出真正適合用戶需要的相關信息片段,提供給用戶,并找出這些信息與原文獻直接的參考對照。2.2 數據轉換和加工 從數據源中抽取的數據不一定完全滿足目的庫的要求,例如數據格式的不一致、數據輸入錯誤、數據不完整等等,還要對抽取出的數據進行數據轉換和加工。 數據轉換是真正將源數據庫中的數據轉換為目標數據的關鍵步驟,在這個過程中通過對數據的合并匯總過濾以及重新格式化和再計算等,從而將操作型數據庫中的異構數據轉換成用戶所需要的形式8。數據的轉換和加工可以在ETL引擎中進行,也可以在數據抽取過程中利用數據庫的特性同時進行。(1

11、)ETL引擎中的數據轉換和加工9 ETL引擎中一般以組件化的方式實現數據轉換。常用的數據轉換組件有字段映射、數據過濾、數據清洗、數據替換、數據計算、數據驗證、數據加解密、數據合并、數據拆分等。這些組件如同一條流水線上的一道道工序,它們是可插拔的,且可以任意組裝,各組件之間通過數據總線共享數據。有些ETL工具還提供了腳本支持,使得用戶可以以一種編程的方式定制數據的轉換和加工行為。 (2)在數據庫中進行數據加工 關系數據庫本身已經提供了強大的SQL、函數來支持數據的加工,如在SQL查詢語句中添加where條件進行過濾,查詢中重命名字段名與目的表進行映射,substr函數,case條件判斷等等。相比

12、在ETL引擎中進行數據轉換和加工,直接在SQL語句中進行轉換和加工更加簡單清晰,性能更高。對于SQL語句無法處理的可以交由ETL引擎處理。 2.3 數據裝載 將轉換和加工后的數據裝載到目的庫中通常是ETL過程的最后步驟。裝載數據的最佳方法取決于所執行操作的類型以及需要裝入多少數據。當目的庫是關系數據庫時,一般來說有兩種裝載方式。 (1) SQL裝載直接SQL語句進行insert、update、delete操作。 (2)采用批量裝載方法如bcp、bulk、關系數據庫特有的批量裝載工具或API。 大多數情況下會使用第一種方法,因為它們進行了日志記錄并且是可恢復的。但是,批量裝載操作易于使用,并且在

13、裝入大量數據時效率較高。使用哪種數據裝載方法取決于業務系統的需要。3 NoSQL技術10在大數據時代,web2.0網站要根據用戶個性化信息來實時生成動態頁面和提供動態信息,所以基本上無法使用動態頁面靜態化技術,因此數據庫并發負載非常高,往往要達到每秒上萬次讀寫請求。關系數據庫應付上萬次SQL查詢還勉強頂得住,但是應付上萬次SQL寫數據請求,硬盤IO就已經無法承受了。對于大型的SNS網站,每天用戶產生海量的用戶動態,對于關系數據庫來說,在龐大的表里面進行SQL查詢,效率是極其低下乃至不可忍受的。此外,在基于web的架構當中,數據庫是最難進行橫向擴展的,當一個應用系統的用戶量和訪問量與日俱增的時候

14、,你的數據庫卻沒有辦法像web server和app server那樣簡單的通過添加更多的硬件和服務節點來擴展性能和負載能力。對于很多需要提供24小時不間斷服務的網站來說,對數據庫系統進行升級和擴展是非常痛苦的事情,往往需要停機維護和數據遷移,為什么數據庫不能通過不斷的添加服務器節點來實現擴展呢?所以上面提到的這些問題和挑戰都在催生一種新型數據庫技術的誕生,這就是NoSQL技術。3.1 NoSQL與關系型數據庫設計理念比較關系型數據庫中的表都是存儲一些格式化的數據結構,每個元組字段的組成都一樣,即使不是每個元組都需要所有的字段,但數據庫會為每個元組分配所有的字段,這樣的結構可以便于表與表之間進

15、行連接等操作,但從另一個角度來說它也是關系型數據庫性能瓶頸的一個因素。而非關系型數據庫以鍵值對存儲,它的結構不固定,每一個元組可以有不一樣的字段,每個元組可以根據需要增加一些自己的鍵值對,這樣就不會局限于固定的結構,可以減少一些時間和空間的開銷。3.2 NoSQL技術特點易擴展性:NoSQL數據庫種類繁多,但是一個共同的特點都是去掉關系數據庫的關系型特性。數據之間無關系,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。大數據量,高性能:NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優秀。這得益于它的無關系性,數據庫的結構簡單。一般MySQL使用 Query

16、 Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的 Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。靈活的數據模型:NoSQL無需事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。而在關系數據庫里,增刪字段是一件非常麻煩的事情。如果是非常大數據量的表,增加字段簡直就是一個噩夢。這點在大數據量的web2.0時代尤其明顯。高可用:NoSQL在不太影響性能的情況,就可以方便的實現高可用的架構。比如Cassandra,HBase模型,通過復制模型也能實現高可

17、用 。3.3 CAP原理分布式數據系統的三要素:一致性(Consistency) ,可用性(Availability)、分區容忍性(Partition tolerance)。CAP原理:在分布式系統中,這三個要素最多只能同時實現兩點,不可能三者兼顧。對于分布式數據系統,分區容忍性是基本要求。對于大多數web應用,犧牲一致性而換取高可用性,是目前多數分布式數據庫產品的方向。3.4 幾種主流NoSQL數據庫而互聯網龐大的數據量和極高的峰值訪問壓力使得以增加內存、CPU等節點性能的垂直伸縮方案(Scale-UP)走入死胡同,使用大量廉價的機器組建水平可擴展集群(Scale Out)成為絕大多數互聯網

18、公司的必然選擇;廉價的機器失效是正常的,大規模的集群,節點之間的網絡臨時阻斷也是常見的,因此在衡量一致性、可用性和分區容忍性時,往往傾向先滿足后兩者,再用其他方法滿足最終的一致性。在衡量CAP時,Bigtable選擇了CA,用GFS來彌補P,Dynamo選擇了AP,C弱化為最終一致性(通過Quorum或者read-your-write機制)。3.4.1 BigTable11(1) BigTable簡介Bigtable是一個分布式的結構化數據存儲系統,它被設計用來處理海量數據:通常是分布在數千臺普通服務器上的PB級的數據。Google的很多項目使用Bigtable存儲數據,包括Web索引、Goo

19、gle Earth、Google Finance等。(2) 數據模型Bigtable是一個稀疏的、分布式的、持久化存儲的多維度排序Map。Map的索引是行關鍵字、列關鍵字以及時間戳;Map中的每個value都是一個未經解析的byte數組。(row:string, column:string,time:int64)-string 。一個存儲Web網頁的例子的表的片斷:l 行名:”n.www”l contents列族:存放的是網頁的內容l anchor列族:存放引用該網頁的錨鏈接文本。l “anchor:”列表示被引用l “anchhor:my.look.ca”列表示被my.look.ca引用l

20、(”n.www”,” anchor: my.look.ca”,t8)-”CNN.com”(3) 技術要點l 基礎:GFS, Chubby, SSTable。BigTable使用Google的分布式文件系統(GFS)存儲日志文件和數據文件Chubby是一個高可用的、序列化的分布式鎖服務組件BigTable內部存儲數據的文件是Google SSTable格式的。l 元數據組織:chubby-metadata-tablet。元數據與數據都保存在 Google FS 中,客戶端通過 Chubby 服務獲得表格元數據的位置l 數據維護與訪問:master server 將每個 tablet 的管理責任分

21、配給各個 tablet server,tablet 的分布信息都保存在元數據中,所以客戶端無須通過 master 來訪問數據,只需要直接跟 tablet server 通信。l Log-structured 數據組織:寫操作不直接修改原有的數據,而只是將一條記錄添加到 commit log 的末尾,讀操作需要從 log中 merge 出當前的數據版本。具體實現:SSTable, Memtable。(Memtable即內存表:將新數據或常用數據保存在內存表,可以減少磁盤IO訪問)(4) 特點l 適合大規模海量數據,PB級數據;l 分布式、并發數據處理,效率極高;l 易于擴展,支持動態伸縮,適用于

22、廉價設備;l 適合于讀操作,不適合寫操作;l 不適用于傳統關系數據庫。3.4.2 Dynamo12(1) Dynamo簡介Dynamo 最初是 Amazon 所使用的一個私有的分布式存儲系統。(2) 設計要點P2P 的架構:這區別于 Google FS 的 Single Master 架構,無須一個中心服務器來記錄系統的元數據。 Performance(性能), Availability(可用性), Durability(數據持久性) 三者的折衷,可以根據應用的需求自由調整三者比例(3) 技術要點將所有主鍵的哈希數值空間組成一個首位相接的環狀序列,對于每臺機器,隨機賦予一個哈希值,不同的機器就

23、會組成一個環狀序列中的不同節點,而該機器就負責存儲落在一段哈希空間內的數據。數據定位使用一致性哈希;對于一個數據,首先計算其的哈希值,根據其所落在的某個區段,順時鐘進行查找,找到第一臺機,該機器就負責存儲在數據的,對應的存取操作及冗余備份等操作也有其負責,以此來實現數據在不同機器之間的動態分配。對于一個環狀節點比如M個節點,比如一份數據需要保持N個備份,則該數據落在某個哈希區間內發現的第一個節點負責后續對應的N-1個節點的數據備份(注意M=N), Vector lock,允許數據的多個備份存在多個版本,提高寫操作的可用性(用弱一致性來換取高的可用性)分布式存儲系統對于某個數據保存多個備份,數據

24、寫入要盡量保證備份數據同時獲得更新Dynamo采取數據最終一致性,在一定的時間窗口中,對數據的更新會傳播到所有備份中,但是在時間窗口內,如果有客戶讀取到舊的數據,通過向量時鐘(Vector Clock)。 容錯:Sloppy Quorum, hinted handoff, Merkle tree ,Sloppy Quorum馬虎仲裁,并非采用嚴格的數據一致性檢查,用于實現最終一致性。hinted handoff,節點故障會恢復時,可動態維護系統可用性,使系統的寫入成功大大提升。使用Merkle tree為數據建立索引,只要任意數據有變動,都將快速反饋出來。網絡互聯: Gossip-based

25、membership protocol ,一種通訊協議,目標是讓節點與節點之間通信,實現去中心化。(4) 特點高可用:設計上天然沒有單點,每個實例由一組節點組成,從應用的角度看,實例提供IO能力。一個實例上的節點可能位于不同的數據中心內, 這樣一個數據中心出問題也不會導致數據丟失。總是可寫:hinted handoff確保在系統節點出現故障或節點恢復時,能靈活處理可根據應用類型優化可用性、容錯性和高效性配置去中心化,人工管理工作少可擴展性較差:由于增加機器需要給機器分配DHT(分布式hash table)算法所需的編號,操作復雜度較高,且每臺機器存儲了整個集群的機器信息及數據文件的Merkle

26、 Tree信息,機器最大規模只能到幾千臺。4 大數據基礎設施-分布式文件系統分布式文件系統(DFS,Distributed File System)使用戶更加容易訪問和管理物理上跨網絡分布的文件。DFS為文件系統提供了單個訪問點和一個邏輯樹結構,通過DFS,用戶在訪問文件時不需要知道它們的實際物理位置,即分布在多個服務器上的文件在用戶面前就如同在網絡的同一個位置。4.1 成熟架構早期比較成熟的網絡存儲結構大致分為三種:直連式存儲(DAS:Direct Attached Storage)、網絡連接式存儲(NAS:Network Attached Storage)和存儲網絡(SAN:Storage

27、 Area Network)。l 在直連式存儲DAS中,主機與主機之間、主機與磁盤之間采用SCSI總線通道或FC通道、IDE接口實現互連,將數據存儲擴展到了多臺主機,多個磁盤。隨著存儲容量的增加,SCSI通道將會成為IO瓶頸。l 網絡連接式存儲NAS一種連接到局域網的基于IP的文件系統共享設備。NAS系統擁有一個專用的服務器,安裝優化的文件系統和瘦操作系統,該OS專門服務于文件請求。一個NAS設備是專用、高性能、高速、單純用途的文件服務和存儲系統。l 存儲網絡SAN 是指存儲設備相互連接且與一臺服務器或一個服務器群相連的網絡。一個SAN網絡由負責網絡連接的通信結構、負責組織連接的管理層、存儲部

28、件以及計算機系統構成。與NAS偏重文件共享不同,SAN主要是提供高速信息存儲。網絡存儲通信中使用到的相關技術和協議包括SCSI、RAID、iSCSI以及光纖信道。隨著全球非結構化數據快速增長,針對結構化數據設計的這些傳統存儲結構在性能、可擴展性等方面都難以滿足要求,進而出現了集群存儲、集群并行存儲、P2P存儲、面向對象存儲等多種存儲結構。l 集群存儲,簡而言之就是將若干個普通性能的存儲系統聯合起來來組成“存儲的集群”。集群存儲采用開放式的架構,具有很高擴展性,一般包括存儲節點、前端網絡、后端網絡三個構成元素,每個元素都可以非常容易地進行擴展和升級而不用改變集群存儲的架構。集群存儲通過分布式操作

29、系統的作用,會在前端和后端都實現負載均衡。l 集群并行存儲采用了分布式文件系統混合并行文件系統。并行存儲容許客戶端和存儲直接打交道,這樣可以極大地提高性能。集群并行存儲提高了并行或分區I/O的整體性能,特別是讀取操作密集型以及大型文件的訪問。獲取更大的命名空間或可編址的陣列。通過在相互獨立的存儲設備上復制數據來提高可用性。通過廉價的集群存儲系統來大幅降低成本,并解決擴展性方面的難題。集群存儲多在大型數據中心或高性能計算中心使用。l P2P存儲用P2P的方式在廣域網中構建大規模分布式存儲系統。從體系結構來看,系統采用無中心結構,結點之間對等,通過互相合作來完成用戶任務。用戶通過該平臺自主尋找其它

30、結點進行數據備份和存儲空間交換,為用戶構建了大規模存儲交換的系統平臺。P2P存儲用于構建更大規模的分布式存儲系統,可以跨多個大型數據中心或高性能計算中心使用。l 面向對象存儲是SAN和NAS的有機結合,是一種存儲系統的發展趨勢。在面向對象存儲中,文件系統中的用戶組件部分基本與傳統文件系統相同,而將文件系統中的存儲組件部分下移到智能存儲設備上,于是用戶對于存儲設備的訪問接口由傳統的塊接口變為對象接口。4.2 典型系統基于多種分布式文件系統的研究成果,人們對體系結構的認識不斷深入,分布式文件系統在體系結構、系統規模、性能、可擴展性、可用性等方面經歷了較大的變化。下面按時間順序介紹幾個分布式文件系統

31、的典型應用。1985年出現的NFS受到了廣泛的關注和認可,被移植到了幾乎所有主流的操作系統,成為分布式文件系統事實上的標準。NFS利用Unix系統中的虛擬文件系統(VFS-Virtual File System)機制,將客戶機對文件系統的請求,通過規范的文件訪問協議和遠程過程調用,轉發到服務器端進行處理;服務器端在VFS之上,通過本地文件系統完成文件的處理,實現了全局的分布式文件系統。Sun公司公開了NFS的實施規范,互聯網工程任務組(The Internet Engineering Task Force,IETF)將其列為征求意見稿(RFC-Request for Comments),這很大

32、程度上促使NFS的很多設計實現方法成為標準,也促進了NFS的流行。General Parallel File System(GPFS)13是目前應用范圍較廣的一個系統,在系統設計中采用了多項當時較為先進的技術。GPFS的磁盤數據結構可以支持大容量的文件系統和大文件,通過采用分片存儲、較大的文件系統塊、數據預讀等方法獲得了較高的數據吞吐率;采用擴展哈希(extensible hashing)技術來支持含有大量文件和子目錄的大目錄,提高文件的查找和檢索效率。GPFS采用不同粒度的分布式鎖解決系統中的并發訪問和數據同步問題:字節范圍的鎖用于用戶數據的同步,動態選擇元數據節點(metanode)進行元

33、數據的集中管理;具有集中式線索的分布式鎖管理整個系統中空間分配等。GPFS采用日志技術對系統進行在線災難恢復。每個節點都有各自獨立的日志,且單個節點失效時,系統中的其他節點可以代替失效節點檢查文件系統日志,進行元數據恢復操作。GPFS還有效地克服了系統中任意單個節點的失效、網絡通信故障、磁盤失效等異常事件。此外,GPFS支持在線動態添加、減少存儲設備,然后在線重新平衡系統中的數據。這些特性在需要連續作業的高端應用中尤為重要。IBM公司在GPFS的基礎之上發展進化來的Storage Tank14以及基于Storage Tank的TotalStorage SAN File System15又將分布

34、式文件系統的設計理念和系統架構向前推進了一步。它們除了具有一般的分布式文件系統的特性之外,采用SAN作為整個文件系統的數據存儲和傳輸路徑。它們采用帶外(out-of-band)結構,將文件系統元數據在高速以太網上傳輸,由專門的元數據服務器來處理和存儲。文件系統元數據和文件數據的分離管理和存儲,可以更好地利用各自存儲設備和傳輸網絡的特性,提高系統的性能,有效降低系統的成本。Storage Tank采用積極的緩存策略,盡量在客戶端緩存文件元數據和數據。即使打開的文件被關閉,都可以在下次使用時利用已經緩存的文件信息,整個文件系統由管理員按照目錄結構劃分成多個文件集(fileset)。每一個文件集都是

35、一個相對獨立的整體,可以進行獨立的元數據處理和進行文件系統備份等。不同的文件集可以分配到不同的元數據服務器處理,形成元數據服務器機群,提供系統的擴展性、性能、可用性等。在TotalStorage中,塊虛擬層將整個SAN的存儲進行統一的虛擬管理,為文件系統提供統一的存儲空間。這樣的分層結構有利于簡化文件系統的設計和實現。同時,它們的客戶端支持多種操作系統,是一個支持異構環境的分布式文件系統。在SAN File System,采用了基于策略的文件數據位置選擇方法,能有效地利用系統的資源、提高性能、降低成本。GFS(Google File System)系統集群由一個master節點和大量的chun

36、kserver結點構成,并被許多客戶(Client)訪問。GFS把文件分成64MB的塊,減少了元數據的大小,使Master節點能夠非常方便地將元數據放置在內存中以提升訪問效率。數據塊分布在集群的機器上,使用Linux的文件系統存放,同時每塊文件至少有3份以上的冗余。考慮到文件很少被刪減或者覆蓋,文件操作以添加為主,充分考慮了硬盤線性吞吐量大和隨機讀點慢的特點。中心是一個Master節點,根據文件索引,找尋文件塊。系統保證每個Master都會有相應的復制品,以便于在Master節點出現問題時進行切換。在Chunk層,GFS將節點失敗視為常態,能夠非常好地處理Chunk節點失效的問題。對于那些稍舊

37、的文件,可以通過對它進行壓縮,來節省硬盤空間,且壓縮率驚人,有時甚至可以接近90%。為了保證大規模數據的高速并行處理,引入了MapReduce16編程模型,同時,由于MapReduce將很多繁瑣的細節隱藏起來,也極大地簡化了程序員的開發工作。Yahoo也推出了基于MapReduce的開源版本Hadoop,目前Hadoop在業界已經被大規模使用。HDFS(Hadoop Distributed File System)有著高容錯性的特點,并且設計用來部署在低廉的硬件上,實現了異構軟硬件平臺間的可移植性。為了盡量減小全局的帶寬消耗讀延遲,HDFS嘗試返回給一個讀操作離它最近的副本。硬件故障是常態,而

38、不是異常,自動地維護數據的多份復制,并且在任務失敗后能自動地重新部署計算任務,實現了故障的檢測和自動快速恢復。HDFS放寬了可移植操作系統接口(POSIX:Portable Operating System Interface)的要求,這樣可以流的形式訪問文件系統中的數據,實現了以流的形式訪問寫入的大型文件的目的,重點是在數據吞吐量,而不是數據訪問的反應時間。HDFS提供了接口,來讓程序將自己移動到離數據存儲更近的位置,消除了網絡的擁堵,提高了系統的整體吞吐量。HDFS的命名空間是由名字節點來存儲的。名字節點使用叫做EditLog的事務日志來持久記錄每一個對文件系統元數據的改變。名字節點在本地

39、文件系統中用一個文件來存儲這個EditLog。整個文件系統命名空間,包括文件塊的映射表和文件系統的配置都存在一個叫FsImage的文件中,FsImage也存放在名字節點的本地文件系統中。FsImage和Editlog是HDFS的核心數據結構。5 大數據基礎設施-云存儲面對大數據的海量異構數據,傳統存儲技術面臨建設成本高、運維復雜、擴展性有限等問題,成本低廉、提供高可擴展性的云存儲技術日益得到關注。5.1 定義 由于業內沒有統一的標準,各廠商的技術發展路線也不盡相同,因此相對于云計算,云存儲概念存在更多的多義和模糊現象17。結合云存儲技術發展背景及主流廠商的技術方向,可以得出如下定義:云存儲是通

40、過集群應用、網格技術或分布式文件系統等,將網絡中大量各種不同的存儲設備通過應用軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統18。5.2 云存儲架構云存儲是由一個網絡設備、存儲設備、服務器、應用軟件、公用訪問接口、接入網和客戶端程序等組成的復雜系統。以存儲設備為核心,通過應用軟件來對外提供數據存儲和業務訪問服務。云存儲的架構如圖2所示:圖2 云存儲架構l 存儲層:存儲設備數量龐大且分布在不同地域,彼此通過廣域網、互聯網或光纖通道網絡連接在一起。在存儲設備之上是一個統一存儲設備管理系統, 實現存儲設備的邏輯虛擬化管理、多鏈路冗余管理,以及硬件設備的狀態監控和故障維護。l 基礎

41、管理層:通過集群、分布式文件系統和網格計算等技術,實現云存儲設備之間的協同工作,使多個的存儲設備可以對外提供同一種服務, 并提供更大更強更好的數據訪問性能。數據加密技術保證云存儲中的數據不會被未授權的用戶訪問, 數據備份和容災技術可以保證云存儲中的數據不會丟失, 保證云存儲自身的安全和穩定。l 應用接口層:不同的云存儲運營商根據業務類型,開發不同的服務接口,提供不同的服務。例如視頻監控、視頻點播應用平臺、網絡硬盤,遠程數據備份應用等。l 訪問層: 授權用戶可以通過標準的公用應用接口來登錄云存儲系統,享受云存儲服務19。5.3 云存儲中的數據縮減技術大數據時代云存儲技術的關鍵技術主要有云存儲中的

42、存儲虛擬化、分布式存儲技術、數據備份、數據縮減技術、內容分發網絡技術、數據遷移、數據容錯技術等技術20,而其中云存儲的數據縮減技術,能夠滿足海量信息爆炸式增長趨勢,在一定程度上節約企業存儲成本,提高效率,從而成為人們關注的重點。5.3.1 自動精簡配置傳統配置技術為了避免重新配置可能造成的業務中斷,常常會過度配置容量。在這種情況下,一旦存儲分配給某個應用,就不可能重新分配給另一個應用,由此造成了已分配的容量沒有得到充分利用,造成資源極大浪費。 自動精簡配置技術利用虛擬化方法減少物理存儲空間的分配,最大限度提升存儲空間利用率,其核心原理是“欺騙”操作系統,讓操作系統認為存儲設備中有很大的存儲空間

43、,而實際的物理存儲空間則沒有那么大。自動精簡配置技術的應用會減少已分配但未使用的存儲容量的浪費,在分配存儲空間時,需要多少存儲空間系統則按需分配。隨著數據存儲的信息量越來越多,實際存儲空間也可以及時擴展,無需用戶手動處理21。5.3.2 自動存儲分層自動存儲分層(AST)技術是存儲上減少數據的另外一種機制,主要用來幫助數據中心最大程度地降低成本和復雜性。在過去,進行數據移動主要依靠手工操作,由管理員來判斷這個卷的數據訪問壓力或大或小,遷移的時候也只能一個整卷一起遷移。自動存儲分層技術的特點則是其分層的自動化和智能化。利用自動存儲分層技術一個磁盤陣列能夠把活動數據保留在快速、昂貴的存儲上,把不活

44、躍的數據遷移到廉價的低速層上,使用戶數據保留在合適的存儲層級,減少了存儲需求的總量,降低了成本,提升了性能。隨著固態存儲在當前磁盤陣列中的采用以及云存儲的來臨,自動存儲分層已經成為大數據時代補充內部部署的存儲的主要方式。5.3.3 重復數據刪除 物理存儲設備在使用一段時間后必然會出現大量重復的數據。“重復刪除”技術(De-duplication)作為一種數據縮減技術可對存儲容量進行優化。它通過刪除數據集中重復的數據,只保留其中一份,從而消除冗余數據。使用De-dupe技術可以將數據縮減到原來的1/20-1/50。由于大幅度減少了對物理存儲空間的信息量,從而達到減少傳輸過程中的網絡帶寬、節約設備

45、成本、降低能耗的目的。重復數據刪除技術原理De-dupe按照消重的粒度可以分為文件級和數據塊級。可以同時使用種以上的hash算法計算數據指紋,以獲得非常小的數據碰撞發生概率。具有相同指紋的數據塊即可認為是相同的數據塊,存儲系統中僅需要保留一份。這樣,一個物理文件在存儲系統中就只對應一個邏輯表示。5.3.4 數據壓縮數據壓縮技術是提高數據存儲效率最古老最有效的方法之一,可以顯著降低待處理和存儲的數據量,一般情況下可實現2:13:1的壓縮,對于隨機數據效果更好,像數據庫。其原理就是將收到的數據通過存儲算法存儲到更小的空間中去。在線壓縮(RACE)是最新研發的數據壓縮技術,與傳統壓縮技術不同。對RA

46、CE技術來說,不僅能在數據首次寫入時進行壓縮,以幫助系統控制大量數據在主存中雜亂無章地存儲的情形。還可以在數據寫入到存儲系統前壓縮數據,進一步提高存儲系統中的磁盤和緩存的性能和效率。數據壓縮中使用的LZS算法基于LZ77實現,主要由部分構成,滑窗(Sliding Window)和自適應編碼(Adaptive Coding)。壓縮處理時,在滑窗中查找與待處理數據相同的塊,并用該塊在滑窗中的偏移值及塊長度替代待處理數據,從而實現壓縮編碼。如果滑窗中沒有與待處理數據塊相同的字段,或偏移值及長度數據超過被替代數據塊的長度,則不進行替代處理。LZS算法的實現非常簡潔,處理比較簡單,能夠適應各種高速應用。

47、圖3 LZ777算法示意圖6 數據可視化圖靈獎得主 Jim Gray 在 2007 年提出了 “以數據為基礎的科學研究第四范式” 的概念22, 研究方法已經從 “我應該設計個什么樣的實驗來驗證這個假設?” 逐漸發展為 “從這些已知的數據中我能夠看到什么相關性?” 數據可視化是獲取大數據Value的有效手段。6.1 定義與目的數據可視化為人們提供了從閱讀局部信息到縱觀全局信息、從表面到本質和從內容到結構的有力工具。其演化過程是從文本到樹和圖, 再到多媒體, 以便最大限度地利用人們的多通道和分布式認知功能以及形象思維功能, 達到意會23。數據可視化致力于通過交互可視界面來進行分析、推理和決策。人們

48、通過使用可視分析技術和工具,從海量、動態、不確定甚至包含相互沖突的數據中整合信息,獲取對復雜情景的更深層的理解。可視分析技術允許人們對已有預測進行檢驗,對未知信息進行探索,提供快速、可檢驗和易理解的評估24,以及提供更有效的交流手段。數據可視化的開發和大部分項目開發一樣,也是根據需求來根據數據維度或屬性進行篩選,根據目的和用戶群選用表現方式25。同一份數據可以可視化成多種看起來截然不同的形式。l 有的可視化目標是為了觀測、跟蹤數據,所以就要強調實時性、變化、運算能力,可能就會生成一份不停變化、可讀性強的圖表。l 有的為了分析數據,所以要強調數據的呈現度、可能會生成一份可以檢索、交互式的圖表l

49、有的為了發現數據之間的潛在關聯,可能會生成分布式的多維的圖表。l 有的為了幫助普通用戶或商業用戶快速理解數據的含義或變化,會利用漂亮的顏色、動畫創建生動、明了,具有吸引力的圖表。l 還有的圖表可以被用于教育、宣傳或政治,被制作成海報、課件,出現在街頭、廣告手持、雜志和集會上。這類圖表擁有強大的說服力,使用強烈的對比、置換等手段,可以創造出極具沖擊力自指人心的圖像。在國外許多媒體會根據新聞主題或數據,雇用設計師來創建可視化圖表對新聞主題進行輔助。6.2 數據分類及可視化方法要可視化的數據大致可分一下幾類26:6.2.1 一系列對象,之間相互關聯這種情況下因為要展示數據之間相互關系,所以實質上是一

50、個網絡圖,不過通過一些技巧可以把簡單網絡圖變成更好的形式。例如,轉換成流圖27,或圈形的網絡圖28,圈形可以使得連線集中在圈內部,而且可以減少交叉。6.2.2 層級數據數據之間可分成幾個層級關系,就是層級圖29。使用散點,使用散點的大小或者顏色等屬性來表示數據的大小30。標簽云也是屬于這類,我們可以通過每個 tag 的大小顏色等等來標示數據的大小。上面的兩種方法都可以歸納到內隱關系呈現層次化數據31。內隱式層次數據可視化方法使用包含、遮擋、相鄰等空間關系表示數據中的邏輯關系,更高效地表現復雜海量的層次數據,提供快速對數據全貌的理解。相比于傳統的節點鏈接表示,內隱式表示方法能夠最大限度地利用所有

51、顯示空間,提供更好的數據呈現效果和交互體驗。6.2.3 多維數據如何將超過人類理解能力的三維以上的數據,轉化為人類能視覺直觀理解的可視化結果,是多維數據可視化所研究的課題。多維數據有多種傳統的可視化方法、包括平行坐標、散點圖矩陣32和維度降維法。6.2.4 將時間和空間可視化通過時間的維度來查看指標值的變化情況,一般通過增加時間軸的形式33,也就是常見的趨勢圖。當圖表存在地域信息并且需要突出表現的時候,可用地圖將空間可視化,地圖作為主背景呈現所有信息點34。6.2.5 讓圖表“動”起來數據圖形化完成后,可結合實際情況,將其變為動態化和可操控性的圖表,用戶在操控過程中能更好地感知數據的變化過程,

52、提升體驗35。實現動態化通常以下兩種方式: 交互和動畫。6.2.6 多種可視化方法結合單一的可視化方法已不能滿足需要。越來越多的可視化系統通過結合不同的科學和數據可視化方法,提供一致的多視角和連貫的交互手段,使可視化系統能夠提供日益復雜的數據所需的分析能力36。6.3 可視化原則準確性:當在擴展數據、圖表和圖形,使用不同尺寸和形狀的數據可視化時,不能過度。最好使用數學公式,有依據的數字,然后在圖形中使用相同的比例。而不是隨手繪制形狀。創新性:創造力是從簡單的圖表中體現出來的。不要害怕使用排版,插圖,圖標或其他設計元素。簡潔的:簡潔其實就是需要把一些繁瑣復雜很難以理解的數據轉化成一些簡單易懂的數

53、據表現形式。當創建一個信息圖表的主要目標是回答一個具體的問題的時候,圖表數據要覆蓋圖形,并開始通過它簡潔地回答問題。當這樣做的同時,可以添加額外的事實或資料,使您的圖形更廣泛。簡潔的回答話題,也將有助于創建一個更有效的可視化圖形。6.4 大可視化的幾個挑戰6.4.1 現場可視化37,38傳統的先把數據存儲在磁盤上再分析的方法,在超大規模數據時已不再可行。替代它的是,當數據還在內存中時就進行現場可視化。該方法可極大的減少I/O開銷。但是該方法帶來了一系列設計和實現上的挑戰,包括交互分析、算法、內存、工作流和線程。這些技術挑戰中,有些理論上當前已能夠解決,但需要在高性能計算、策略規則和商業硬件系統

54、上進行較大的改變。6.4.2 不確定性海量的數據難免摻雜噪聲,加之數據的持續增加,人類處理整個數據集的能力嚴重受限。在很多任務中不得不對數據集進行多次抽樣,這樣就帶來了更大的不確定性。所以,必須設計出能夠處理不完整數據的可視化分析技術,能給用戶直觀的視角,幫助用戶降低決策風險。6.4.3 用戶界面和交互數據量日益增加,而人類的認知能力由于客觀的生物性限制難以快速提高。在大數據可視化中,需對用戶界面和交互進行深度的研究,以平衡大數據所含信息與人類認知能力之間逐漸擴大的鴻溝。6.4.4 超視野顯示對數據進行更多的數據映射和降維,同時就意味著需要更多的抽象表示,理解這些抽象的表示需要人具備額外的洞察

55、力和解釋能力。雖然可以制造尺寸和分辨率都很大的顯示器,但人類的視敏度是有限的。由于同時牽涉了人和機器的限制,不是一蹴而就能解決的。7 總結本文探討了大數據完整生命周期相關的5個部分,分析了各部分的研究現狀,以及其中的難點和技術挑戰。對于大數據的研究仍處于一個非常初步的階段,還有很多基礎性的問題有待解決。大數據相關的概念和技術會繼續更廣泛地沖擊技術人員的眼球,我們需要做的是抓住問題的本質,盡可能理性地分析自己對數據的核心需求是什么、用它來解決什么問題。References: 1 Nature. Big DataEB/OL. 2012910902. 2 Randal E. Bryant, Rand

56、y H. Katz, Edward D. Lazowska. Big9Data Computing: Creating revolutionary breakthroughs in commerce, science, and society R. 3 Science. Special Online Collection: Dealing with Data EB/OL. 2012910902./site/special/data/. 4 D. Agrawal, P. Bernstein, E. Bertino, et al. Challenge

57、s and Opportunities with Big Data A community white paper developed by leading researchers across the United StatesR. 11 Bigtable: A Distributed Storage System for Structured Data, Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber ,In OSDI,2006.to appear12 Dynamo: Amazons Highly Available Key-value Store,Giuseppe DeCandia, D

溫馨提示

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

評論

0/150

提交評論