Hadoop大數據存算分離下,如何解決新舊存儲共存?

641

在傳統的Apache Hadoop集羣系統中,計算和存儲資源是緊密耦合的,HDFS爲大數據存儲帶來便利的同時,也面臨着一些挑戰:shell

當存儲空間或計算資源不足時,只能同時對二者進行擴容。假設用戶對存儲資源的需求遠大於對計算資源的需求,那麼同時擴容計算和存儲後,新擴容的計算資源就被浪費了,反之,存儲資源被浪費。數據庫

這致使擴容的經濟效率較低,額外增長成本。而獨立擴展的計算和存儲則更加靈活,同時可顯著下降成本。架構

如今Hadoop採用存算分離的架構的趨勢愈來愈明顯。負載均衡

XSKY HDFS Client是爲XEOS存儲集羣和Hadoop計算集羣量身打造的鏈接器。經過XSKY HDFS Client,Hadoop應用能夠訪問存儲在XEOS中的全部數據。ide

可是,在引入XEOS存儲後,會出現原有HDFS與XEOS共存的狀況,如何將兩套存儲集羣都利用起來是須要解決的問題。工具

1oop

數據跨集羣拷貝測試

通常狀況下,計算應用須要訪問的數據,若是保存在不一樣的集羣中,那麼應該將其中一個集羣的數據拷貝到另外一個集羣上。通常狀況下使用Hadoop自帶的DistCp工具,對數據進行跨集羣的拷貝。大數據

這種方式雖然在必定程度上能夠解決數據合併的問題,但若是數據量比較大,而且機房帶寬有限制的狀況下,可能拷貝數據的時間會很是長。還有一個就是在拷貝過程當中原始數據發生改動,就還須要考慮增量同步的問題。spa

2

聯邦HDFS和ViewFS

在Hadoop 2.x發行版中引入了聯邦HDFS功能,指望能夠解決NameNode的內存問題。聯邦HDFS容許系統經過添加多個NameNode來實現擴展,其中每一個NameNode管理文件系統命名空間中的一部分。

可是,在實際應用中,系統管理員須要維護多個NameNodes(全部NameNode都須要高可用)和負載均衡服務,這又增長了管理成本。因此HDFS的聯邦方案並無被生產環境所採用。

641

在提供聯邦HDFS方案同時,Hadoop 2.x還提供了ViewFS,用來管理全部多個命名空間視圖。

641

雖然聯邦HDFS方案並無被大規模應用,但ViewFS卻能夠用來解決XEOS與HDFS共存問題。

03

ViewFS的實現

ViewFS全稱是ViewFileSystem,它不是一個新的文件系統,只是邏輯上的一個視圖文件系統,它實現了標準的Hadoop FileSystem接口。可是,真實的請求處理仍是在各自真實的存儲集羣上。

641

ViewFS會維護一個mount-table,主要是viewfs的邏輯目錄與實際底層存儲的映射關係。在接收到應用的調用時,ViewFS會解析用戶的訪問請求,並經過mount-table找到對應的底層存儲目錄,轉發相應的請求到底層存儲。

ViewFS會把全部應用層的FileSystem調用透傳到底層真實文件系統中。因爲ViewFs實現了Hadoop文件系統接口,所以使用它透明地運行Hadoop工具。例如,全部shell命令均可以與HDFS和本地文件系統一塊兒使用ViewFS。

在集羣的core-site配置中,fs.defaultFS被設置爲ViewFS的root目錄,也就是指定的mount-table。

在集羣的配置中增長ViewFS的mount-table配置,示例以下:

641

Hadoop系統將在Hadoop配置文件中查找名稱爲 「ClusterX」 的mount-table。將全部gateway和server配置包含「ClusterX」,如上示例。

4

ViewFS的應用場景

ViewFS能夠在以下場景中使用:

641

非結構化的原始數據能夠經過DistCp等工具直接存儲在XEOS上,業務數據庫結構化數據和應用買點數據能夠經過ETL以Hive的外部表方式存儲到XEOS中。HBase和Hive繼續在原有的HDFS上面運行,也就是HBase表數據和Hive內部表數據仍然經過HDFS來存儲。

這樣的好處是海量非結構化數據,甚至是海量小文件均可以用XEOS來承載,減輕HBase的壓力,同時Hive新增數據所有經過XEOS來存儲,後續擴容容量僅擴展XEOS存儲集羣便可。

5

XEOS配置ViewFS

大數據平臺基於CDH 6.3.2。HDFS core-site.xml 增長以下配置:

Hadoop FS命令行:

執行wordcount測試結果以下:

641

6

小結

XSKY經過ViewFS的方式,在不改變用戶使用習慣的前提下,將原有HDFS數據與新增XEOS數據打通,解決了原有HDFS集羣與新XEOS集羣的共存問題。原有的HDFS數據能夠繼續使用,而XEOS能夠用於承載新生成的數據。

這種方式不只能夠充分利用舊有設備,達到節約成本的目的。同時,可以藉助XEOS橫向擴展能力,實現存儲單獨擴容。

相關文章
相關標籤/搜索