王麗梅
(甘肅省臨夏中學 甘肅 臨夏 731100)
基于開源云計算框架Hadoop技術支持的具有數據可靠些高、架構體系可擴展性強、基于大規模廉價計算機集群、兼具故障處理能力和容錯機制等特征。云存儲體系用五元組表示即:£=
HDFS能夠將每一部分數據保存3個副本因子,其相對于其他分布式文件存儲系統有著眾多共同點,但同時相對于其他文件系統其也有著明顯優勢。若要在大規模廉價計算機集群上建立云存儲技術相對于專業的設備來看,機器的運算穩定性和運算速度都很差。因此,HDFS必須能夠通過彌補集群機器的運行能力不足、硬件故障等來保證數據不會出現計算錯誤或丟失。HDFS采用了數據冗余的方案,相對于其他系統,這樣便大大降低了維護難度及存儲效率。HDFS還具有一套完整的定期檢測機制,其能夠快速發現和修復集群中的故障機器,若一些機器的故障難以及時解決,HDFS能夠通過轉移任務給空閑機器的方式來保證數據的完整性和可靠性,提高內容利用率。HDFS系統有著良好的擴展性,其能夠在各個平臺直接遷移,有利于其在廉價計算機集群上構建并可以被更多的系統或平臺應用。
由于廉價計算機集群結合云存儲受一些客觀因素的影響,可使存儲海量數據的環境發生各種各樣的問題,會對存儲的完整性、可用性和可靠性產生不良的影響。如下幾點:
(1)云存儲節點的硬件錯誤。云儲存的基礎是大規模的廉價計算機集群,因此云儲存要能夠兼容存儲節點的硬件錯誤,避免單個或部分節點錯誤影響整體運行。(2)云存儲的過程中會出現軟性錯誤。云存儲過程會受到存儲節點網絡連接情況、存儲節點運行情況、網絡數據傳遞情況等因素的影響,因此要求云存儲體系具有很強的錯誤檢測和自動恢復功能。(3)云存儲體系必須具備很強的可擴展性。可擴展性對于云存儲體系具有很強的實用價值,通過動態添加或刪除存儲節點。(4)必須能夠提高海量數據的傳輸、管理和存儲功能。
本研究云儲存的設計與實現基于HDFS,廉價計算機集群采用6臺服務器組成,DataNode、Secondary NameNode服務器選擇MapReduce編程的JobTracker,操作系統采用Ubuntu10.04.主要步驟為:(1)搭建實驗環境,包括云存儲環境配置。(2)廉價計算機集群上的云存儲功能分析,主要包括可擴展性、云存儲體系的故障處理能力和容錯機制和負載均衡能力,以及HDFS自帶故障處理機制。
2.1 實驗集群環境的搭建
實驗過程中,Secondary Node與NameNode在同一個節點上。實驗環境是以一個小型計算機集群為基礎,此集群包含6臺服務器,選擇其中的一臺服務器作為NameNode、MapReduce和Secondary Node編程模型中的JobTracker,其他5臺則為DataNode 以及TaskTracker。選擇的根路徑則是通過HADOOP_HOME進行安裝的。在集群中所有機器使用相同路徑,即HADOOP_HOME。操作系統是Ubuntu。
2.2 對云存儲的環境進行配置。
通過兩個配置文件對Hadoop進行配置,這兩個文件在conf/目錄下:
hadoop-default.xml–屬于只讀配置。
hadoop-site.xml–屬于集群特有配置。
HDFS集群在進行配置時,對Hadoop守護進程進行配置,配置運行環境和運行參數。Hadoop的守護進程是NameNode、TaskTracker以及DataNode JobTracker/。
Hadoop守護進程進行配置,配置運行環境
通過配置選項HADOOP_*_OPTS來分別配置各個守護進程。其中的一臺機器被選作NameNode,另一選臺機器用作JobTracker。剩余機器作為DataNode又可被作為TaskTracker,被稱為slaves。
日志
Hadoop記錄日志是通過Apache log4j的方式,這一過程的實現需要Apache Commons Logging框架。
全部必要的配置如果已經完成,則將文件分到所有機器的HADOOP_CONF_DIR路徑下,通常是${HADOOP_HOME}/conf。
另外,HDFS認為,存儲節點主要分DataNode及NameNode(Secondary Node),因此在對云存儲體系進行配置時,首先要對NameNode及DataNode進行配置。
主要的兩個步驟是:
第一步,對NameNode進行配置。選其中一臺計算機的節點作NameNode,修改/etc/hosts,然后將其他4個存儲節點的 IP 地址以及計算機名分別添加進來。
第二步,DataNode的配置。添加本機IP地址、計算機名和NameNode 到/etc /hosts 中。
2.3 SSH Server安裝完后,進行免密鑰的訪問配置。
在DataNode中添加復制生成的密鑰,并在NameNode的/etc/hosts/中添加計算機集群中所有節點的IP以及計算機名,然后覆蓋DataNode中的文件使 用NameNode上的authorized_keys,保證DataNode能夠訪問NameNode免密碼的。
2.4 在NameNode上安裝HDFS云存儲環境。
設置conf/hadoop-env.sh中的變量作集群的特有值,就能夠控制Hadoop腳本,隸屬于bin/目錄下的。在配置NameNode時,首先要對Hadoop環境變量進行配置,解壓Hadoop的安裝包,然后對HDFS相關參數進行配置,對conf/hadoop-site.xml的文件進行修改,把dfs.replication的值設為2。然后對云存儲體系的主從結構(master/slave)進行設置,master計算機名(lib_namenode)被設置為conf/masters,slave的計算機名(lib_datanode01、……、lib_datanode04)被設置為將conf/slave。
2.5 將所有HDFS云存儲環境安裝到DataNode,命令是:
$scp–r hadoop-0.21.0 lib_namenode:/home/
2.6 安裝結束后,可以對云存儲體系進行檢測,觀察構建是否完成。
第一步,將NameNode進行格式化,執行的命令是:$bin/hadoopnamenode–format
第二步,HDFS云存儲系統執行命令進行啟動:
若$bin /start-all.sh的測試比較成功,用戶可對整個云存儲體系的運行狀況進行觀察,通過http://192.168.1.3: 8090查看。
本研究針對廉價計算機集群上云計算環境下云存儲的業務需求,實現構建負載能力較均衡的、并且能夠擴展的性能較高的云存儲體系,而且針對研究中存在的問題進行具體分析,制定相應的解決措施,提出構建于廉價計算機集群上的云存儲的實現方法。未來云存儲服務的發展有較大的研究空間,特別是對云存儲體系副本的選擇策略研究,將是未來研究的重點問題。
[1] O.Pandithurai.High-Performance Multipath Routing Algorithm Using CPEGASIS Protocol in Wireless Sensor Cloud Environment[J].Circuits and Systems,2016,7(10):3246-3252.