Hadoop大數(shù)據(jù)存算分離下如何解決新舊存儲共存,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、南京網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為南京等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
在傳統(tǒng)的Apache Hadoop集群系統(tǒng)中,計算和存儲資源是緊密耦合的,HDFS為大數(shù)據(jù)存儲帶來便利的同時,也面臨著一些挑戰(zhàn):
當(dāng)存儲空間或計算資源不足時,只能同時對兩者進行擴容。假設(shè)用戶對存儲資源的需求遠大于對計算資源的需求,那么同時擴容計算和存儲后,新擴容的計算資源就被浪費了,反之,存儲資源被浪費。
這導(dǎo)致擴容的經(jīng)濟效率較低,額外增加成本。而獨立擴展的計算和存儲則更加靈活,同時可顯著降低成本。
現(xiàn)在Hadoop采用存算分離的架構(gòu)的趨勢越來越明顯。
XSKY HDFS Client是為XEOS存儲集群和Hadoop計算集群量身打造的連接器。通過XSKY HDFS Client,Hadoop應(yīng)用可以訪問存儲在XEOS中的所有數(shù)據(jù)。
但是,在引入XEOS存儲后,會出現(xiàn)原有HDFS與XEOS共存的情況,如何將兩套存儲集群都利用起來是需要解決的問題。
1
數(shù)據(jù)跨集群拷貝
一般情況下,計算應(yīng)用需要訪問的數(shù)據(jù),如果保存在不同的集群中,那么應(yīng)該將其中一個集群的數(shù)據(jù)拷貝到另一個集群上。一般情況下使用Hadoop自帶的DistCp工具,對數(shù)據(jù)進行跨集群的拷貝。
這種方式雖然在一定程度上可以解決數(shù)據(jù)合并的問題,但如果數(shù)據(jù)量比較大,并且機房帶寬有限制的情況下,可能拷貝數(shù)據(jù)的時間會非常長。還有一個就是在拷貝過程中原始數(shù)據(jù)發(fā)生改動,就還需要考慮增量同步的問題。
2
聯(lián)邦HDFS和ViewFS
在Hadoop 2.x發(fā)行版中引入了聯(lián)邦HDFS功能,期望可以解決NameNode的內(nèi)存問題。聯(lián)邦HDFS允許系統(tǒng)通過添加多個NameNode來實現(xiàn)擴展,其中每個NameNode管理文件系統(tǒng)命名空間中的一部分。
但是,在實際應(yīng)用中,系統(tǒng)管理員需要維護多個NameNodes(所有NameNode都需要高可用)和負載均衡服務(wù),這又增加了管理成本。所以HDFS的聯(lián)邦方案并沒有被生產(chǎn)環(huán)境所采用。
在提供聯(lián)邦HDFS方案同時,Hadoop 2.x還提供了ViewFS,用來管理所有多個命名空間視圖。
雖然聯(lián)邦HDFS方案并沒有被大規(guī)模應(yīng)用,但ViewFS卻可以用來解決XEOS與HDFS共存問題。
03
ViewFS的實現(xiàn)
ViewFS全稱是ViewFileSystem,它不是一個新的文件系統(tǒng),只是邏輯上的一個視圖文件系統(tǒng),它實現(xiàn)了標(biāo)準(zhǔn)的Hadoop FileSystem接口。但是,真實的請求處理還是在各自真實的存儲集群上。
ViewFS會維護一個mount-table,主要是viewfs的邏輯目錄與實際底層存儲的映射關(guān)系。在接收到應(yīng)用的調(diào)用時,ViewFS會解析用戶的訪問請求,并通過mount-table找到對應(yīng)的底層存儲目錄,轉(zhuǎn)發(fā)相應(yīng)的請求到底層存儲。
ViewFS會把所有應(yīng)用層的FileSystem調(diào)用透傳到底層真實文件系統(tǒng)中。由于ViewFs實現(xiàn)了Hadoop文件系統(tǒng)接口,因此使用它透明地運行Hadoop工具。例如,所有shell命令都可以與HDFS和本地文件系統(tǒng)一起使用ViewFS。
在集群的core-site配置中,fs.defaultFS被設(shè)置為ViewFS的root目錄,也就是指定的mount-table。
在集群的配置中增加ViewFS的mount-table配置,示例如下:
Hadoop系統(tǒng)將在Hadoop配置文件中查找名稱為 “ClusterX” 的mount-table。將所有g(shù)ateway和server配置包含“ClusterX”,如上示例。
4
ViewFS的應(yīng)用場景
ViewFS可以在如下場景中使用:
非結(jié)構(gòu)化的原始數(shù)據(jù)可以通過DistCp等工具直接存儲在XEOS上,業(yè)務(wù)數(shù)據(jù)庫結(jié)構(gòu)化數(shù)據(jù)和應(yīng)用買點數(shù)據(jù)可以通過ETL以Hive的外部表方式存儲到XEOS中。HBase和Hive繼續(xù)在原有的HDFS上面運行,也就是HBase表數(shù)據(jù)和Hive內(nèi)部表數(shù)據(jù)仍然通過HDFS來存儲。
這樣的好處是海量非結(jié)構(gòu)化數(shù)據(jù),甚至是海量小文件都可以用XEOS來承載,減輕HBase的壓力,同時Hive新增數(shù)據(jù)全部通過XEOS來存儲,后續(xù)擴容容量僅擴展XEOS存儲集群即可。
5
XEOS配置ViewFS
大數(shù)據(jù)平臺基于CDH 6.3.2。HDFS core-site.xml 增加如下配置:
Hadoop FS命令行:
執(zhí)行wordcount測試結(jié)果如下:
XSKY通過ViewFS的方式,在不改變用戶使用習(xí)慣的前提下,將原有HDFS數(shù)據(jù)與新增XEOS數(shù)據(jù)打通,解決了原有HDFS集群與新XEOS集群的共存問題。原有的HDFS數(shù)據(jù)可以繼續(xù)使用,而XEOS可以用于承載新生成的數(shù)據(jù)。
這種方式不僅可以充分利用舊有設(shè)備,達到節(jié)約成本的目的。同時,能夠借助XEOS橫向擴展能力,實現(xiàn)存儲單獨擴容。
關(guān)于Hadoop大數(shù)據(jù)存算分離下如何解決新舊存儲共存問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。