999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于云計算的分布式存儲技術

2013-03-18 03:00:42唐京偉
中國傳媒科技 2013年15期

文|唐京偉

自從亞馬孫推出Amazon Web Service (AWS)的IaaS服務以來,現在其Amazon EC2、Amazon AWS、Amazon S3、Amazon SQS等云計算平臺已經被上千家公司使用。Google公司在2008年提供了基于PaaS的Google App Engine。在Google的基礎架構上運行網絡應用程序,能讓開發人員在支持著自己的應用程序的可擴展系統上構建網絡應用程序。隨后,微軟公司也推出了Windows Azure操作系統,這個系統作為微軟云計算計劃的服務器端操作系統(Cloud OS)為廣大開發者提供服務。IBM在2007年提出了“藍云”計劃,推出共有云和私有云的概念。IBM提出私有云解決方案是為了減少諸如數據、信息安全等共有云現存的問題,從而搶占企業云計算市場。

在我國云計算產業的發展也得到了政府的高度重視,在2010年10月召開的十七屆五中全會的報告中,重點提到發展新一代信息技術,而云計算和三網融合、物聯網等一起被作為最重要的方向之一。從2008年開始,已經有多個地方政府在積極推進云計算產業和應用的發展,例如:無錫中國云計算中心、上海的“云海計劃”、北京的“祥云計劃”,等等,此外,成都、佛山、東莞、鄂爾多斯等城市也在紛紛跟進。可以預見,未來云計算將成為十二五期間,信息技術領域最重要的發展方向,無論是技術研發、產品推廣還是應用示范等方面,都將獲得政府在政策、資金、項目等方面的大力支持。

云計算的概念與特點

云計算是網格計算(Grid Computing)、分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)、網絡存儲(Network Storage Technologies)、虛擬化(Virtualization)、負載均衡(Load Balance)等傳統計算機和網絡技術發展融合的產物。廣義云計算指服務的交付和使用模式,指通過網絡以按需要、易擴展的方式獲得服務。這種服務可以是IT軟件和互聯網相關服務,也可以是其他服務。狹義云計算指IT基礎設施的交付和使用模式,指通過網絡以按需、易擴展的方式獲得所需資源。總體來說云計算具有以下幾個特點:

(1)超大規模:“云”具有相當的規模,Google云計算已經擁有100多萬臺服務器, Amazon、IBM、微軟、Yahoo等的“云”均擁有幾十萬臺服務器。企業私有云一般擁有數百上千臺服務器。“云”能賦予用戶前所未有的計算能力。

(2)虛擬化:云計算支持用戶在任意位置、使用各種終端獲取應用服務。所請求的資源來自“云”,而不是固定的有形的實體。應用在“云”中某處運行,但實際上用戶無需了解、也不用擔心應用運行的具體位置。只需要一臺筆記本或者一個手機,就可以通過網絡服務來實現我們需要的一切,甚至包括超級計算這樣的任務。

(3)高可靠性:“云”使用了數據多副本容錯、計算節點同構可互換等措施來保障服務的高可靠性,使用云計算比使用本地計算機可靠。

(4)通用性:云計算不針對特定的應用,在“云”的支撐下可以構造出千變萬化的應用,同一個“云”可以同時支撐不同的應用運行。

(5)高可擴展性:“云”的規模可以動態伸縮,滿足應用和用戶規模增長的需要。

(6)按需服務:“云”是一個龐大的資源池,你按需購買;云可以像自來水,電,煤氣那樣計費。

(7)廉價性:由于“云”的特殊容錯措施可以采用極其廉價的節點來構成云,“云”的自動化集中式管理使大量企業無需負擔日益高昂的數據中心管理成本,“云”的通用性使資源的利用率較之傳統系統大幅提升,因此用戶可以充分享受“云”的低成本優勢。

云計算是當今IT行業的熱門話題。但事實上,云計算的原型是由太陽公司在1983年提出的“網絡即電腦”(The Network is the Computer);2002年,亞馬孫推出Amazon Web Service,是第一個云計算服務平臺,2006年8月9日,Google首席執行官埃里克·施密特在搜索引擎大會(SES San Jose 2006)上首次提出云計算(Cloud Computing)這個概念。從此,云計算便成了IT業的焦點。

云計算與云存儲

云存儲是在云計算(cloud computing)概念上延伸和發展出來的一個新的概念,是指通過集群應用、網格技術或分布式文件系統等功能,將網絡中大量各種不同類型的存儲設備通過應用軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統。 當云計算系統運算和處理的核心是大量數據的存儲和管理時,云計算系統中就需要配置大量的存儲設備,那么云計算系統就轉變成為一個云存儲系統,所以云存儲是一個以數據存儲和管理為核心的云計算系統。簡單來說,云存儲就是將儲存資源放到網絡上供人存取的一種新興方案。使用者可以在任何時間、任何地方,透過任何可連網的裝置方便地存取數據。同時,在云數據中心所使用的存儲必須具有良好的兼容性。在云計算時代,計算資源都被收歸到數據中心之中,再連同配套的存儲空間一起分發給用戶,由于眾多的用戶帶來了各種各樣的需求,Windows、Linux、Unix、Mac OS,存儲需要面對各種不同的操作系統,如果給每種操作系統都配備專門的存儲的話,無疑與云計算的精神背道而馳,因此,云計算環境中,首先要解決的就是兼容性問題。其次是存儲容量的擴展能力。

Hadoop軟件平臺

Hadoop是根據Google公司公開的資料開發出來的類似于Google File System的Hadoop File System 以及相應的Map/Reduce編程規范。Hadoop是開放源代碼,開發人員可以使用它來開發云計算應用,尤其是云硬件平臺。

Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有著高容錯性的特點,并且用來設計部署在低廉的硬件上。它提供高吞吐量來訪問數據,適合那些有著大量數據的應用程序。HDFS可以以流的形式訪問文件系統中的數據。

Hadoop還實現了MapReduce分布式計算模型。MapReduce將應用程序的工作分解成很多小的工作塊。HDFS為了做到可靠性,創建了多份數據塊的復制(Replicas),并將它們放置在服務器群的計算節點中,MapReduce就可以在它們所在的節點上處理這些數據。Hadoop 是由HDFS、MapReduce、HBase、Hive和ZooKeeper等組成,其中,HDFS和MapReduce是兩個最基礎、最重要的成員,其他子項目提供配套服務。總體來說Hadoop具有以下幾個主要特點:1.擴展性強:能可靠地存儲和處理千兆字節(GB)數據。2.成本低:可以通過普通機器組成的服務器群來分發以及處理數據,服務器群總計可達數千個節點。3.高效率:通過分發數據,Hadoop可以在數據所在的節點上并行地處理它們,非常快速。4.可靠性好:Hadoop能自動地維護數據的多份復制,并且在任務失敗后能自動地重新部署計算任務。

1、Hadoop Map/Reduce編程模型

Hadoop Map/Reduce是一個軟件構架,基于它寫出來的應用程序能夠運行在由上千個機器組成的大型集群上,并以一種可靠容錯的方式并行處理上T級的數據集。一個Map/Reduce作業(job)通常會把輸入的數據集切分為若干獨立的數據塊,由map任務(task)以完全并行的方式處理它們。構架會對map的輸出先進行排序,然后把結果輸入給reduce任務。通常,作業的輸入和輸出都會被存儲在文件系統中。整個框架負責任務的調度和監控,以及重新執行已經失敗的任務。

Map/Reduce框架和分布式文件系統通常是運行在一組相同的節點上的,也就是說,計算節點和存儲節點通常在一起。這種配置允許框架在數據節點上高效地調度任務,可以非常高效地利用整個集群的網絡帶寬。Map/Reduce框架由一個單獨的主(master)JobTracker和每個集群節點一個次(slave)TaskTracker共同組成。Master負責調度構成一個作業的所有任務,這些任務分布在不同的slave上,master監控它們的執行,重新執行已經失敗的任務;而slave僅負責執行由master指派的任務。

應用程序至少應該指明輸入/輸出的位置,并通過實現合適的接口或抽象類提供map和reduce函數,再加上其他作業的參數,就構成了作業配置(job configuration)。然后,Hadoop的job client提交作業和配置信息給JobTracker,后者負責分發這些軟件和配置信息給slave,調度任務并監控它們的執行,同時提供狀態和診斷信息給job client。

MapReduce框架的核心步驟主要分成兩個部分:Map和Reduce。當向MapReduce框架提交一個計算作業時,它會首先把計算作業拆分成若干個Map任務,然后分配到不同的節點上去執行。每一個Map任務處理輸入數據中的一部分,當Map任務完成后,它會生成一些中間文件,這些中間文件將會作為Reduce任務的輸入數據。Reduce任務的主要目標就是把前面若干個Map的輸出匯總到一起并輸出。

MapReduce的工作過程分為兩個階段:map階段和reduce階段。每個階段都有鍵/值對作為輸入和輸出,并且它們的類型可由程序員選擇。程序員還具體定義了兩個函數:map函數和reduce函數。在處理大數據集的過程中,將大數據集分解為成千上萬個小數據集,每個(或若干個)數據集分別由集群中的一個結點進行處理并生成中間結果,這些中間結果又由大量的結點進行合并,形成最終結果。如圖1所示。

2、HDFS的分析

HDFS是Google GFS的開源版本,是一個高度容錯的分布式文件系統,它能夠提供高吞吐量的數據訪問,適合存儲PB級的大文件。HDFS采用Master/Slave結構;NameNode維護集群內的元數據,對外提供創建、打開、刪除和重命名文件或目錄的功能;DataNode存儲數據,并負責處理數據的讀寫請求。DataNode定期向NameNode上報心跳,NameNode通過響應心跳來控制DataNode。如圖2所示。

NameNode和DataNode被設計成可以在普通的機器上運行,這些機器一般運行著Linux操作系統。HDFS采用Java語言開發,因此任何支持Java的機器都可以部署NameNode或DataNode。由于采用了可移植性極強的Jave語言,使得HDFS可以部署到多種類型的機器上。一臺機器上只運行一個NameNode實例,而集群中的其它機器分別運行一個DataNode實例。集群中單一NameNode的結構大大簡化了系統的架構。NameNode是所有HDFS元數據的仲裁者和管理者,用戶數據不會流過NameNode。

(1)HDFS讀取數據過程

客戶端通過調用DistributedFileSystem對象的open()來打開文件。對于HDFS來說,這個對象是分布式文件系統的一個實例。分布式文件系統(DistributedFileSystem)通過使用RPC來調用名稱節點,以確定文件開頭部分的塊的位置。對于每一個塊,名稱節點返回具有該塊的數據節點地址。此外,這些數據節點根據它們與客戶端的距離來排序。如果該客戶端本身就是一個數據節點,便從本地數據節點中讀取。分布式文件系統返回一個FSDataInputStream對象給客戶端讀取數據。FSDataInputStream轉而包裝了一個DFSInputStream對象。接著,客戶端對這個輸入流調用read()操作。存儲著文件開頭部分的塊的數據節點地址的FSDataInputStream 隨即與這些塊最近的數據節點相連接。通過在數據流中重復調用read(), 數據會從數據節點返回客戶端。到達塊的末端時,DFSInputStream會關閉與數據節點間的聯系,然后為下一個塊找到最佳的數據節點。客戶端只需要讀取一個連續的流,這些對于客戶端來說都是透明的。客戶端從流中讀取數據時,塊是按照DFSInputStream打開與數據節點的新連接的順序讀取。它也會調用名稱節點來檢索下一組需要的塊的數據節點的位置。一旦客戶端完成讀取,就對文件系統數據輸入流調用close()操作。如圖3所示。

(2)HDFS寫入數據過程

客戶端通過在分布式文件系統(DistributedFileSystem)中調用create()來創建文件。分布式文件系統通過一個RPC去調用名稱節點,在文件系統的命名空間中創建一個新的文件,這時沒有塊與之相聯系。名稱節點執行各種不同的檢查以確保這個文件不存在,并且客戶端有可以創建文件的適當的許可。如果這些檢查通過,名稱節點就會生成一個新文件的記錄;否則,文件創建失敗并向客戶端拋出一個IOException異常。分布式文件系統返回一個文件系統數據輸出流,讓客戶端開始寫入數據。就像讀取一樣,文件系統數據輸出流控制一個DFSOutputStream,負責處理數據節點和名稱節點之間的通信。在客戶端寫入數據時,DFSOutputStream將它分成一個個的包,寫入內部的隊列,即數據隊列。數據隊列隨數據流流動,數據流的責任是根據適合的數據節點的列表來要求這些節點為副本分配新的塊。DFSOutputStream也有一個內部的包隊列來等待數據節點確認,稱為確認隊列。一個包只有在被管線中所有節點確認后才會被移出確認隊列。客戶端完成數據的寫入后,就會在流中調用close()操作。在向名稱節點發送完信息之前,此方法會將余下的所有包放入數據節點管線并等待確認。名稱節點已經知道文件由哪些塊組成,所以它只需在返回成功前等待塊進行最小量的復制。如圖4所示。

(3)HDFS負載均衡

HDFS集群會處于長時間運行狀態,尤其是大量的delete操作后,集群中各個DataNode上的空間使用率可能會存在比較大的差異。所以需要一種機制使各個DataNode保持平衡,防止少數DataNode存儲過多的文件。少數使用率過高的DataNode會導致對其的數據訪問效率變低,并且如果該DataNode停止服務,則需要更多的時間進行恢復,對集群也會造成更大的影響。

Hadoop中提供了balancer的機制。Hadoop balancerthreshold。通過此命令可以使Hadoop對各個DataNode空間使用率進行評估并使他們保持平衡。參數threshold表示平衡的閥值,取值范圍在0%到100%之間,該參數表示每個DataNode中空間使用率與HDFS集群總的空間使用率的差距百分比。假如當前集群總空間為20T,已經使用空間為10T,那么對于HDFS集群來說空間使用率為50%。如果當前集群有2臺Datanode,每臺有10T總空間。DataNode1已用空間為4T,那么DataNode的空間使用率為40%。DataNode2已用空間為6T,那么DataNode的空間使用率為60%。如果我們把balancer的閥值設為10%,那么此時兩臺Datanode的使用率與HDFS的總使用率的比值均超過閥值,此時需要執行balancer。如果balancer的閥值設為50%,那么此時兩臺DataNode的使用率與HDFS的總使用率的比值均未超過閥值,此時不需要執行balancer。

閥值設置的越小,HDFS各個DataNode的使用率越接近,整個集群也更加平衡,但會消耗更多的時間和資源來達到該平衡狀態。如果閥值設置的過小,對于操作非常頻繁的HDFS集群,有可能永遠也不會達到該閥值所指定的平衡狀態。閥值設置越大HDFS各個DataNode的使用率差距越大,但是會較容易達到平衡狀態。

在balancer的過程,Hadoop會遞歸的把block從使用率高的DataNode轉移到那些使用率低的DataNode上。在每次遞歸的過程中,單個DataNode轉移或者接受的block不得超過10G或者它的存儲能力的閥值(根據該Datanode的總空間決定)。并且每次遞歸過程的執行也不能超過20分鐘。在每次遞歸過后,會更新DataNode的最新狀態信息,決定下一次遞歸的執行。

整個balancer過程是比較復雜的,首先會計算集群總的使用率,然后分別計算各個正常運行的DataNode結點的使用率。根據balancer閥值對各個DataNode進行分類,找到那些使用率過高的和使用率過低的結點。

結語

云計算技術的興起正在顛覆傳統的分布式數據存儲架構,面對當前PB級的海量數據存儲需求,傳統的SAN、NAS或IP存儲的容量、可靠性和性能擴展等方面已不能滿足當前數據存儲和管理要求。如受到物理設備(異構的存儲機構、磁盤驅動器的數量、內存大小和控制器性能)的限制,會造成許多功能上的限制,如:支持文件系統的數量、快照或數據備份的數量等。系統一旦遇到瓶頸,就會不斷地要求用戶升級到更大的存儲系統或添加更多的存儲管理設備,從而增加了成本,而基于云計算架構的分布式存儲技術,能充分利用云計算新技術,結合其超大規模、高可擴展性、廉價性、高可靠性等特點來滿足當前PB級別的海量數據存儲管理要求。■

主站蜘蛛池模板: 久久国产黑丝袜视频| AV网站中文| 黄色网站不卡无码| 一级爆乳无码av| 欧美精品啪啪| 人妻丰满熟妇AV无码区| 欧美午夜精品| 青青久在线视频免费观看| 精品国产亚洲人成在线| 久久久久久久97| 精品国产福利在线| 亚洲美女一级毛片| 国产日韩AV高潮在线| 亚洲中文字幕无码爆乳| 亚洲bt欧美bt精品| www.亚洲国产| 天天干伊人| 久久伊人色| 亚洲AV电影不卡在线观看| 国产在线精品网址你懂的| 国产老女人精品免费视频| 一级全黄毛片| 亚洲中文字幕久久精品无码一区| 日本午夜视频在线观看| 国精品91人妻无码一区二区三区| 亚洲精品人成网线在线| 色欲国产一区二区日韩欧美| 国产亚洲欧美另类一区二区| 男女男精品视频| 久综合日韩| 午夜欧美理论2019理论| 日韩无码视频专区| 夜夜高潮夜夜爽国产伦精品| 亚洲人人视频| 国产激情国语对白普通话| 男女精品视频| AV熟女乱| 国产一级α片| 欧美国产日韩在线播放| 国产免费福利网站| 亚洲精品福利视频| 亚洲中文字幕无码mv| 视频二区欧美| 91www在线观看| 又猛又黄又爽无遮挡的视频网站 | 动漫精品中文字幕无码| 成人午夜网址| 好久久免费视频高清| 亚洲日韩图片专区第1页| 亚洲不卡影院| 亚洲综合欧美在线一区在线播放| 亚洲三级a| 日韩麻豆小视频| 亚洲成人免费在线| 国产精品浪潮Av| 久久午夜夜伦鲁鲁片无码免费| 一级毛片a女人刺激视频免费| 亚洲an第二区国产精品| 日韩视频免费| 婷婷在线网站| 五月天香蕉视频国产亚| 国产免费久久精品99re丫丫一| 热99精品视频| 国产尤物在线播放| 一级黄色网站在线免费看| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 亚洲免费播放| 日韩精品一区二区深田咏美 | 午夜无码一区二区三区在线app| 亚洲中文无码h在线观看| 国产精品免费电影| 久久久波多野结衣av一区二区| 99视频免费观看| 91精品伊人久久大香线蕉| 亚洲综合色在线| 欧日韩在线不卡视频| 99久久精品免费观看国产| 91麻豆精品国产高清在线| 91亚洲影院| 日韩精品欧美国产在线| 欧美在线三级| 成人免费一区二区三区|