畢 業(yè) 設 計 論 文
題目: 基于HDFS的云災備存儲系統(tǒng)——可靠存儲及負載均衡方法研究
院(系) 計算機科學與技術(shù)
專 業(yè) 網(wǎng)絡工程
屆 別 2012
摘 要
隨著計算機技術(shù)及因特網(wǎng)技術(shù)的發(fā)展,數(shù)據(jù)信息已成為現(xiàn)代企業(yè)以及每個人的重要資源,數(shù)據(jù)的丟失或被竊取將帶來重大的損失,數(shù)據(jù)的安全存儲及備份顯得尤為重要。本文設計一個基于Hadoop的云災備存儲系統(tǒng)來存儲數(shù)據(jù)。
論文采用在Linu*虛擬機上創(chuàng)建hadoop分布式文件系統(tǒng),由分布式系統(tǒng)管理并備份用戶的數(shù)據(jù)。分布式系統(tǒng)由一個名字節(jié)點和多個數(shù)據(jù)節(jié)點構(gòu)成,名字節(jié)點對數(shù)據(jù)的存儲進行管理,而數(shù)據(jù)節(jié)點則負責數(shù)據(jù)的物理存儲。為了防止名字節(jié)點的故障導致系統(tǒng)的崩潰,必須配置一個第二名字節(jié)點來作為冗余并定時處理保存名字節(jié)點的系統(tǒng)日志。為了數(shù)據(jù)的安全備份,必須把數(shù)據(jù)復制為多個副本存儲在多個數(shù)據(jù)節(jié)點上。系統(tǒng)不僅要實現(xiàn)海量數(shù)據(jù)的存儲,同時也要實現(xiàn)海量用戶的的管理。為了防止某個數(shù)據(jù)節(jié)點的負載過重,導致用戶的操作延遲太大,還必須處理好系統(tǒng)數(shù)據(jù)節(jié)點的負載均衡,使海量用戶能夠同時流暢的訪問hdfs系統(tǒng)。
本文,通過配置多臺數(shù)據(jù)節(jié)點,并在名字節(jié)點上設置一個文件要保存的副本數(shù),來實現(xiàn)數(shù)據(jù)的安全備份,用戶數(shù)據(jù)分為多份存儲在不同的服務器上。名字節(jié)點則通過一張排序表來控制用戶訪問數(shù)據(jù)時是由哪個數(shù)據(jù)節(jié)點負責響應,排序表實現(xiàn)了負載低的數(shù)據(jù)節(jié)點首先響應用戶的訪問,從而達到各數(shù)據(jù)節(jié)點的負載均衡。
關鍵詞:Hadoop;云災備;可靠存儲;負載均衡
ABSTRACT
With the development of computer technology and Internet technology, information has become a modern enterprise as well as important resources for everyone.So data’s lost or stolen will bring a significant loss. Secure storage and backup of data is particularly important. This paper designed a cloud disaster recovery storage system witch based on Hadoop to store data.
Paper using the Linu* virtual machine to create a hadoop distributed file system, distributed systems management and backup the user’s data. The distributed system consists of a namenode and multiple datanodes, the namenode manage the data’s storage.And the datanode is responsible for the physical storage of data. In order to prevent the namenode’failured led to the collapse of the system, we should configure a secondary namenode as the namenode’s redundancy and regularly deal with save system log. For the security of data backup, data replication for the storage of multiple copies of multiple datanodes. The system must not only mass data storage, but also mass user’s management. In order to prevent the overloading of a datanode, which lead to the delay become too large for users operation, we must deal with the datanodes’ load balancing, so that the mass users’ access will be simultaneously smooth.
The article, by configuring multiple datanodes and set the number of copiesf to save for each file on the namenode to achieve the security of data backup, user data is divided into pay would be stored on different servers. The namenode control witch datanode for user’s access through a sorting table .This sorting table is used to achieve the low-loaded datanode first to respond to user access, so as to achieve load balancing of all datanodes .
Key words
……(新文秘網(wǎng)http://jey722.cn省略3883字,正式會員可完整閱讀)……
失。
第五章:實現(xiàn)HDFS的負載均衡。本章主要介紹當今應用較廣泛的負載均衡技術(shù),以及負載均衡的重要性,最后介紹本文是通過何種方法來實現(xiàn)HDFS的負載均衡的。
第六章:系統(tǒng)的測試和評估。本章主要對系統(tǒng)實現(xiàn)的各個功能進行測試,檢查是否達到設計的需求。最后還將對測試結(jié)果進行詳細的分析,指出系統(tǒng)存在的優(yōu)缺點。
第七章:
總結(jié)。本章對全文的工作進行總結(jié),并談談自己在工作中的諸多
心得體會,最后還將提出所研發(fā)系統(tǒng)以后的改進計劃。
2 Hadoop的相關知識
2.1 數(shù)據(jù)的存儲和分析
現(xiàn)在,不管是企業(yè),行政部門等各個組織還是個人,都離不開數(shù)據(jù),數(shù)據(jù)的處理和安全越顯重要,并且各種數(shù)據(jù)的產(chǎn)生量都在急劇增長,面對如此快速增長的海量數(shù)據(jù),我們必須尋求一個便捷的手段和方法來存儲和分析這些數(shù)據(jù)。
硬盤的容量逐年快速增長,然而,硬盤的訪問速度卻未能與時俱進。數(shù)據(jù)的讀寫速度仍不夠快。從一個驅(qū)動器上讀取所有的數(shù)據(jù)需要相當長的時間,當然寫更慢。一個簡單的提高讀寫速度的辦法是從多個硬盤上并行讀寫數(shù)據(jù)。但是這又出現(xiàn)了新的問題。因為一份數(shù)據(jù)分散的存儲在多個不同的硬盤上,如果有一個硬盤故障,便會導致整份數(shù)據(jù)的無法還原。一旦開始使用多個硬件設備,其中某個硬盤出現(xiàn)故障的概率是非常高的。為了避免單個硬件故障而導致數(shù)據(jù)丟失,常見的做法是冗余備份;通過系統(tǒng)保存的冗余副本,在故障發(fā)生時,就可以使用此副本來確保數(shù)據(jù)的完整。這就是冗余磁盤陣列的工作方式。Hadoop分布式文件系統(tǒng)也是這種工作方式,可以在名字節(jié)點上設置文件需要保存的副本數(shù),然后存儲到多個數(shù)據(jù)節(jié)點上以保證存儲的安全可靠。
還有個問題是在讀取數(shù)據(jù)時,如何保證數(shù)據(jù)的正確性,即讀取的數(shù)據(jù)和保存時的數(shù)據(jù)是完全一樣的。因為數(shù)據(jù)保存在多個硬盤上,要讀取一個數(shù)據(jù),必須從多個硬盤上分別讀取出屬于的數(shù)據(jù)塊,然后再合并成完整的數(shù)據(jù)。在這個問題上,HDFS客戶端軟件實現(xiàn)了對HDFS文件內(nèi)容的校驗和檢查。當客戶端創(chuàng)建一個新的HDFS文件,會計算這個文件每個數(shù)據(jù)塊的校驗和,并將校驗和作為一個單獨的隱藏文件保存在同一個HDFS名字空間下。當客戶端獲取文件內(nèi)容后,它會檢驗從名字節(jié)點獲取的數(shù)據(jù)跟相應的校驗和文件中的檢驗和是否匹配,如果不匹配,客戶端可以選擇從其他的數(shù)據(jù)節(jié)點上獲取該數(shù)據(jù)的副本塊。
總而言之,hadoop提供了一個穩(wěn)定的共享存儲和分析系統(tǒng)。
2.2 Hadoop的發(fā)展和現(xiàn)狀
Hadoop是Apache Lucene創(chuàng)始人Doug Cutting創(chuàng)建的,Lucene是一個廣泛使用的文本搜索系統(tǒng)庫。Hadoop起源于Apache Nutch,一個開源的網(wǎng)絡搜索引擎, 它本身也是Lucene項目的一部分。
Nutch項目始于2002年,一個可以運行的網(wǎng)頁爬取工具和搜索引擎系統(tǒng)很快"浮出水面"。但后來,開發(fā)者認為這一架構(gòu)可擴展度不夠,不能解決數(shù)十億網(wǎng)頁的搜索問題。2003年發(fā)表的一篇論文為此提供了幫助,文中描述的是谷歌產(chǎn)品架構(gòu),該架構(gòu)稱為谷歌分布式文件系統(tǒng),簡稱GFS。 GFS或類似的架構(gòu),可以解決他們在網(wǎng)頁爬取和索引過程中產(chǎn)生的超大文件的存儲需求。特別關鍵的是,GFS能夠節(jié)省系統(tǒng)管理(如管理存儲節(jié)點)所花的大量時間。在2004年,他們開始著手實現(xiàn)一個開源的實現(xiàn),即Nutch的分布式文件系統(tǒng)(NDFS)。
2004年,谷歌發(fā)表論文向全世界介紹他們的MapReduce系統(tǒng)。 2005年初,Nutch的開發(fā)人員在Nutch上實現(xiàn)了一個MapReduce系統(tǒng),到年中,Nutch的所有主要算法均完成移植,用MapReduce和NDFS來運行。
Nutch的NDFS和MapReduce實現(xiàn)不只是適用于搜索領域。在2006年2月, 開發(fā)人員將NDFS和MapReduce移出Nutch形成Lucene的一個子項目,稱為 Hadoop。大約在同一時間, Doug Cutting加入雅虎,雅虎為此組織了一個專門的團隊和資源,將Hadoop發(fā)展成一個能夠處理Web數(shù)據(jù)的系統(tǒng)。在2008年2月,Yahoo!宣布其搜索引擎使用的索引是在一個擁有1萬個內(nèi)核的Hadoop 集群上構(gòu)建的。
2008年1月,Hadoop已成為Apache的頂級項目,證明了它的成功、多樣化、活躍性。到目前為止,除Yahoo!之外,還有很多公司使用了Hadoop,例如Last.fm、 Facebook和《紐約時報》等[7]。
2008年4月,Hadoop打破世界紀錄,成為最快的TB級數(shù)據(jù)排序系統(tǒng)。通過一個910節(jié)點的群集,Hadoop在209 秒內(nèi)完成了對1 TB數(shù)據(jù)的排序,擊敗了前一年的297秒冠軍。同年11月,谷歌在報告中聲稱,它的MapReduce對1 TB數(shù)據(jù)排序只用了68秒。
以下是Hadoop大事記[7]:
2004年--由Doug Cutting 和Mike Cafarella實現(xiàn)了現(xiàn)在HDFS和MapReduce的最初版本。
2005年12月--Nutch移植到新框架,Hadoop在20 個節(jié)點上穩(wěn)定運行。
2006年1月--Doug Cutting加入Yahoo!。
2006年2月--Apache Hadoop項目正式啟動以支持MapReduce和HDFS的獨立發(fā)展。
2006年2月--Yahoo!的網(wǎng)格計算團隊采用Hadoop。
2006年4月--在188個節(jié)點上(每個節(jié)點10 GB)運行排序測試集需要47.9個小時。
2006年5月--Yahoo!建立了一個300個節(jié)點的Hadoop研究集群。
2006年5月--在500個節(jié)點上運行排序測試集需要42個小時(硬件配置比4月的更好)。
2006年11月--研究集群增加到600個節(jié)點。
2006年12月--排序測試集在20個節(jié)點上運行1.8個小時,100個節(jié)點上運行3.3小時,500個節(jié)點上運行5.2小時,900個節(jié)點上運行7.8個小時。
2007年1月--研究集群增加到900個節(jié)點。
2007年4月--研究集群增加到兩個1000個節(jié)點的集群。
2008年4月--在900個節(jié)點上運行1 TB排序測試集僅需209秒,成為世界最快。
2008年10月--研究集群每天裝載10 TB的數(shù)據(jù)。
2009年3月--17個集群總共24 000臺機器。
2009年4月--贏得每分鐘排序,59 秒內(nèi)排序500 GB(在1400個節(jié)點上)和173分鐘內(nèi)排序100 TB 數(shù)據(jù)(在3400個節(jié)點上)。
可見,hadoop自發(fā)展以為以極快的速度在系統(tǒng)冗余節(jié)點數(shù)上,在海量數(shù)據(jù)的存儲量上以及數(shù)據(jù)的存取速度上都有了急速的增長。越發(fā)體現(xiàn)出hadoop分布式文件系統(tǒng)的優(yōu)越性和潛在性能。
2.3 Hadoop在數(shù)據(jù)容災的優(yōu)越性
Hadoop 是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架,它在數(shù)據(jù)容災方面的優(yōu)越性主要體現(xiàn)在Hadoop 它是以一種可靠、高效、可伸縮的方式進行處理的。
1) Hadoop是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數(shù)據(jù)副本,確保能夠針對失敗的節(jié)點重新分布處理。而且副本數(shù)可以通過配置來自己改變,這樣對于集中存儲具有高度重要性的文件系統(tǒng),可以配置更多的副本數(shù)以確保更大的安全性。
2) Hadoop 是高效的,因為它以并行的方式工作,通過并行處理加快處理速度。運行在HDFS上的應用和普通的應用不同,需要流式訪問它們的數(shù)據(jù)集。HDFS的設計中更多的考慮了數(shù)據(jù)批處理,而不是用戶交互處理。比數(shù)據(jù)訪問的低延遲問題,更關鍵的在于數(shù)據(jù)訪問的高吞吐量。而且HDFS為應用數(shù)據(jù)的計算提供了將它們自己移動到數(shù)據(jù)附近的接口。一個應用請求的計算,離它的數(shù)據(jù)越近就越高效,在海量數(shù)據(jù)的處理面前更是如此,把計算移到數(shù)據(jù)附近,再把計算結(jié)果返回給用戶,相對與傳輸用戶需要的大量數(shù)據(jù)給用戶再進行運算,要高效非常多。這樣就能降低網(wǎng)絡阻塞的影響,提高系統(tǒng)數(shù)據(jù)的高吞吐量。
3) Hadoop 還是可伸縮的,能夠處理 PB 級數(shù)據(jù)。HDFS上的一個典型文件大小一般都在G字節(jié)至T字節(jié)。因此,HDFS被調(diào)節(jié)以支持大文件存儲。它應該能提供整體上高的數(shù)據(jù)傳輸帶寬,能在一個集群里擴展到數(shù)百個節(jié)點。
4) Hadoop 依賴于社區(qū)服務器,因此它的成本比較低,任何人都可以使用。而且HDFS被設計成具有平臺的可移植性。這種特性方便了HDFS作為大規(guī)模數(shù)據(jù)應用平臺的推廣。
2.4 Hadoop分布式文件系統(tǒng)
2.4.1 HDFS的設計
HDFS是以流式數(shù)據(jù)訪問模式存儲超大文件而設計的文件系統(tǒng),在廉價的商用硬件集群上運行。超大文件是指幾百MB,幾百GB或者幾百TB大小的文件。HDFS的流式數(shù)據(jù)訪問模式旨在一次寫入,多次訪問,一個數(shù)據(jù)集通常由數(shù)據(jù)源生成或復制,接著在此基礎上進行各種各樣的分析,每個分析至少都會涉及數(shù)據(jù)集中的大部分數(shù)據(jù),因此讀取整個數(shù)據(jù)集的時間比讀取第一條記錄的延遲更為重要。Hadoop不需要運行在昂貴并且高可靠性的硬件上。它被設計成運行在低廉的商用硬件集群上,它以眾多的數(shù)據(jù)節(jié)點來實現(xiàn)可靠性,因此允許集群中多個節(jié)點的故障,但仍能保證系統(tǒng)的正常運行。HDFS是針對海量數(shù)據(jù)的處理的,因此需要達到高的數(shù)據(jù)吞吐量,雖然這可能會一提高數(shù)據(jù)的傳輸延遲為代價,但還是值得的。
2.4.2 數(shù)據(jù)塊
HDFS將每個文件存儲成一系列的數(shù)據(jù)塊,除了最后一個,所有的數(shù)據(jù)塊都是同樣大小的,默認每個塊的大小是64MB,每個分塊作為單獨的單元進行存儲。使用塊為單元的好處在于,第一,hadoop是處理海量數(shù)據(jù)的,可能存在超大文件使得集群中單個磁盤裝不下的,這樣通過分塊,便能夠把此超大文件分塊存儲在多個磁盤上,而且它們能夠利用集群上任意一個磁盤。第二,數(shù)據(jù)塊很適合于為提供容錯和實用性而做的的復制操作。為了應對損壞的塊以及磁盤或機器的故障,每個塊都在少數(shù)其他分散的機器進行復制。如果一個塊損壞了,系統(tǒng)會在其他地方讀取另一個副本,而這個過程對用戶是透明的。一個因損壞或機器故障而丟失的塊會從其他的候選地點復制到正常運行的機器上,以保證副本的數(shù)量回到正常水平 。
2.4.3 名稱節(jié)點和數(shù)據(jù)節(jié)點
HDFS采用的是Master/Slave結(jié)構(gòu)。集群中存在兩種節(jié)點,NameNode名字節(jié)點和DataNode數(shù)據(jù)節(jié)點。名字節(jié)點只有一個,它是一個中心服務器,負責管理文件系統(tǒng)的名字空間以及客戶端對文件的訪問,它維護集群內(nèi)的元數(shù)據(jù),維護著整個文件系統(tǒng)樹以及在這個樹內(nèi)多有的文件和索引目錄。對外提供創(chuàng)建,打開,刪除和重命名文件或目錄的功能。它也負責確定數(shù)據(jù)塊到具體數(shù)據(jù)節(jié)點的映射。名子節(jié)點是非常重要的,如果沒有名字節(jié)點,文件系統(tǒng)將無法使用。為了提高系統(tǒng)的可靠性,使得再名字節(jié)點出現(xiàn)故障時,仍能保證系統(tǒng)快速恢復和數(shù)據(jù)的安全,這里可以采用運行一個二級名字節(jié)點。
數(shù)據(jù)節(jié)點存儲數(shù)據(jù),并負責處理數(shù)據(jù)的讀寫請求。在名字節(jié)點的統(tǒng)一調(diào)度下進行數(shù)據(jù)塊的創(chuàng)建,刪除和復制。數(shù)據(jù)節(jié)點定期向名字節(jié)點上報心跳,名字節(jié)點通過響應心跳來控制數(shù)據(jù)節(jié)點。數(shù)據(jù)節(jié)點有多個進行冗余備份,因此允許某個數(shù)據(jù)節(jié)點的故障,保證系統(tǒng)的正常運行。
2.5命令行接口
我們可以通過很多接口來與HDFS進行交互,而其中最簡單的便是通過命令行接口。直接在終端下通過命令來進行文件的操作。首先需要先進入hadoop安裝目錄的bin目錄下,個文件或目錄的操作命令如下:
Hadoop dfs -mkdir /newdir ;在hdfs中建立一個名為newdir的目錄;
Hadoop dfs –ls /newdir 查看一個目錄下的文件列表,通過這個命令我們可以看到該目錄下所有的文件,及其各文件的狀態(tài)信息,如文件格式,讀寫權(quán)限,所設置的副本數(shù),屬于那個用戶或組別,文件大小及文件的最近更新日期等;
Hadoopd fs –put 本地文件路徑 目標路徑。指定路徑將指定本地文件拷貝到hdfs中,當執(zhí)行一個"put"操作時,它的結(jié)果是要么全做,要么全不做。上傳文件的時候,文件首先被拷貝到DataNode節(jié)點上。當所有的 DataNode都接收完數(shù)據(jù)的時候,文件句柄被關閉,這個文件才真正的上傳完。根據(jù)"put"命令的返回值,我們可以知道這個操作是成功了,還是完全失敗了。文件不可能會只被上傳一半。如果文件上傳到一半時,上傳操作被中斷了,那么hdfs就會當作什么事情也沒有發(fā)生一樣。
Hadoop dfs –cat 文件路徑。從hdfs系統(tǒng)中導出指定文件的數(shù)據(jù),將一個文件的內(nèi)容輸出到標準輸出上。
Hadoop dfs –get hdfs路徑 本地路徑。Get命令和Put命令的功能是相反的。將指定hdfs系統(tǒng)上的文件下載到指定本地路徑上。
Hadoop dfs的命令行接口還有很多,以上只先介紹寫常用的基本命令操作,這些可以讓我們開始使用HDFS了,后面還將介紹更多的接口應用。如果想了解更多的命令,可以通過執(zhí)行不帶任何參數(shù)的hadoop dfs命令,它會列出所有的hdfs命令。同時如果你不明白某些命令是怎么用的,你還可以輸入hadoop dfs –help 命令名字,它會幫你指出該命令的具體用法指南。
2.6 Hadoop文件系統(tǒng)
名字節(jié)點存儲HDFS的元數(shù)據(jù)。對于任何對文件元數(shù)據(jù)產(chǎn)生修改的操作,名字節(jié)點都使用一個稱為Editlog的事務日志記錄下來。例如,在HDFS中創(chuàng)建一個文件,名字節(jié)點就會在Editlog中插入一條記錄來表示;同樣,修改文件的replication因子也將往 Editlog插入一條記錄。名字節(jié)點在本地OS的文件系統(tǒng)中存儲這個Editlog。整個文件系統(tǒng)的名字空間,包括數(shù)據(jù)塊到文件的映射、文件的屬性,都存儲在稱為FsImage的文件中,這個文件也是放在名字節(jié)點所在系統(tǒng)的文件系統(tǒng)上。
名字節(jié)點在內(nèi)存中保存著整個文件系統(tǒng)名字空間和文件塊的映像。這個關鍵的元數(shù)據(jù)設計得很緊湊,因而一個帶有4G內(nèi)存的 名字節(jié)點足夠支撐海量的文件和目錄。當名字節(jié)點啟動時,它從硬盤中讀取Editlog和FsImage,將所有Editlog中的事務作用(apply)在內(nèi)存中的FsImage ,并將這個新版本的FsImage從內(nèi)存中flush到硬盤上,然后再truncate這個舊的Editlog,因為這個舊的Editlog的事務都已經(jīng)作用在FsImage上了。這個過程稱為檢查點。在當前實現(xiàn)中,檢查點只發(fā)生在名字節(jié)點啟動時,在不久的將來我們將實現(xiàn)支持周期性的檢查點。
數(shù)據(jù)節(jié)點節(jié)點并不知道關于文件的任何東西,除了將文件中的數(shù)據(jù)保存在本地的文件系統(tǒng)上。它把每個HDFS數(shù)據(jù)塊存儲在本地文件系統(tǒng)上隔離的文件中。 數(shù)據(jù)節(jié)點節(jié)點并不在同一個目錄創(chuàng)建所有的文件,相反,它用啟發(fā)式地方法來確定每個目錄的最佳文件數(shù)目,并且在適當?shù)臅r候創(chuàng)建子目錄。在同一個目錄創(chuàng)建所有的文件不是最優(yōu)的選擇,因為本地文件系統(tǒng)可能無法高效地在單一目錄中支持大量的文件。當一個數(shù)據(jù)節(jié)點節(jié)點啟動時,它掃描本地文件系統(tǒng),對這些本地文件產(chǎn)生相應的一個所有HDFS數(shù)據(jù)塊的列表,然后發(fā)送報告到名字節(jié)點,這個報告就是塊狀態(tài)報告。
Hadoop的整體架構(gòu)圖如下:
圖2.1 HDFS架構(gòu)
3 構(gòu)建Hadoop集群
3.1 集群說明
Hadoop集群,可分為兩大類角色Master和Slave,前者主要配置名字節(jié)點和JobTracker的角色,負責總管分布式數(shù)據(jù)和分解任務的執(zhí)行,后者配置數(shù)據(jù)節(jié)點和TaskTracker的角色,負責分布式數(shù)據(jù)存儲以及任務的執(zhí)行[6]。
因為hadoop是要在Linu*環(huán)境下配置的,這里我選擇了ubuntu系統(tǒng),通過vmware創(chuàng)建3臺虛擬機,一臺作為名字節(jié)點服務器,兩臺作為數(shù)據(jù)節(jié)點服務器。在3臺虛擬機上都安裝好ubuntu系統(tǒng),考慮到宿主電腦要同時運行三臺虛擬機,這里對虛擬機的內(nèi)存設置為:作為名字節(jié)點的虛擬機分配了800MB的內(nèi)存空間,而兩臺數(shù)據(jù)節(jié)點都分配400M的空間。
3.2 Linu*上集群的建立和安裝
3.2.1 Linu*系統(tǒng)的安裝
首先在三臺虛擬機上安裝好ubuntu系統(tǒng),配置名字節(jié)點有800M內(nèi)存,兩臺數(shù)據(jù)節(jié)點有400M內(nèi)存。上網(wǎng)方式選擇NAT,IP地址參照宿主本地主機的IP網(wǎng)段設置為同一網(wǎng)段的,并且設置相同的網(wǎng)關和域名服務地址。這樣就能保證虛擬機也能正常上網(wǎng)。因為后續(xù)的一些服務的安裝需要通過命令行接口實現(xiàn)在線的下載與安裝,所以必須保證虛擬機可以正常上網(wǎng)。在這里我配置的IP地址如下:
名字節(jié)點:10.5.40.10/24
數(shù)據(jù)節(jié)點1:10.5.40.11/24
數(shù)據(jù)節(jié)點2:10.5.40.12/24
在配置虛擬機的上網(wǎng)方式時,曾出現(xiàn)一點錯誤讓我無法正常上網(wǎng)。這里提下vmware虛擬網(wǎng)卡的基礎知識:vmware默認有3個虛擬網(wǎng)卡:VMnet0,它是負責橋接的,把虛擬機網(wǎng)卡通過vmnet0橋接到主機的本地連接上;VMnet1,提供的網(wǎng)絡連接方式是host-only,就是虛擬機和主機處在一個私有網(wǎng)絡中,此方式下,虛擬機只能與主機通訊,不能上外網(wǎng);VMnet8,提供的網(wǎng)絡連接方式是NAT,就是讓虛擬機共享主機的IP地址,只要主機能上網(wǎng)虛擬機便能上網(wǎng)。當時,我配置了虛擬機的網(wǎng)卡連接方式為NAT但是虛擬機就是無法上網(wǎng)。錯誤在于之前的其他實驗當中,我把VMnet8的連接方式修改過了,改成了host-only,所以即使網(wǎng)卡連接方式我已經(jīng)設為了NAT,但是負責NAT功能的VMnet8已不再具有NAT功能了。這里還是需要注意下的。
為了方便宿主主機本地文件到虛擬機上的交互:復制粘貼。我們還需要安裝VMtools,使得能夠通過簡單的復制粘貼快捷鍵或簡單的鼠標拖動就能在主機與虛擬機上移動文件?傊,安裝VMtools會給我們對虛擬機的操作帶來很多的方便。下面介紹下VMtools的具體安裝。
1)點擊VMware菜單的——虛擬機——安裝VMware Tools,在彈出的對話框中選擇“安裝”。這時,在Ubuntu下會自動加載Linu*版的VMware Tools的安裝光盤鏡像。你會看到虛擬機的桌面上出現(xiàn)了一個名為VMware Tools的光盤圖標,并且被自動打開。其中包括VMwareTools-5.3.3-34685-i386.rpm和VMwareTools- 5.3.3-34685.tar.gz兩個文件。
2)通過鼠標右鍵解壓VMwareTools- 5.3.3-34685.tar.gz這個文件到指定目錄下,這里我是直接解壓到桌面上的。
3)點擊Ubuntu桌面左上角的Applications——附件——終端,在終端界面中,首先用cd 命令進入到解壓縮后的那個文件夾中,然后再用命令$ sudo ./vmware-install.pl進行vmtools的安裝,回車后會提示輸入你的密碼,表明你將以更高級權(quán)限執(zhí)行一個動作——安裝軟件;再次回車后安裝開始,后續(xù)一直回車確定,直到最后出現(xiàn)“Enjoy——the VMware team”的字樣后,就表示VMwareTools終于安裝完成了。這時必須重新啟動虛擬機,才會使vmware-tools的功能生效。
這樣,ubuntu系統(tǒng)就基本安裝好且方便操作了,可以進行下一個的工作了。
3.2.2 開啟SSH服務并實現(xiàn)無密碼登錄
正如前面所說的,有些服務的開啟需要在線的下載和安裝,所以需要虛擬機能夠上網(wǎng)。這里的ssh服務的開啟就是其一。打開終端,輸入命令:sudo apt –get install openssh-server 然后它便會自己下載和安裝,安裝完成后可以通過在終端中輸入命令:ssh 虛擬機自身IP,來檢測ssh服務是否已經(jīng)正常安裝。如果沒有安裝成功則會有ssh服務沒有開啟的錯誤報告,正常安裝后則會提示輸入密碼以進行ssh登錄。各個節(jié)點都必須開啟ssh服務。
安裝好ssh服務后,還要保證3臺虛擬機之間能夠?qū)崿F(xiàn)互相進行無密碼登錄,這是進行后續(xù)工作的前提,ssh是linu*傳遞文件的保障,只有能夠互相ssh我們各個機器之間傳遞的信息才是安全的,所以一定要保證各個機器之間能夠ssh通暢。
首先,在每個節(jié)點上通過ssh-keygen-t rsa命令,創(chuàng)建各個節(jié)點的公鑰和私鑰,期間會要求輸入一些信息,直接按回車就可以了,這樣在默認路徑 (我的路徑是/home/zgj/.ssh)目錄下便創(chuàng)建了私鑰id_rsa和一個公鑰id_rsa.pub。
然后兩個數(shù)據(jù)節(jié)點要把自己的公鑰發(fā)送到名 ……(未完,全文共60632字,當前僅顯示10905字,請閱讀下面提示信息。
收藏《畢業(yè)論文:基于HDFS的云災備存儲系統(tǒng)——可靠存儲及負載均衡方法研究》)