Azure Data Lake Storage Gen 實戰(zhàn)體驗

來源:云間拾遺
作者:和開多
時間:2020-08-10
2870
全新一代的ADLS Gen2 實際體驗如何?讓我們來深入研究一下,尤其是關(guān)注ADLS Gen2 作為存儲層掛載到大數(shù)據(jù)集群后的表現(xiàn)。

引言

相較傳統(tǒng)的重量級OLAP數(shù)據(jù)倉庫,“數(shù)據(jù)湖”以其數(shù)據(jù)體量大、綜合成本低、支持非結(jié)構(gòu)化數(shù)據(jù)、查詢靈活多變等特點,受到越來越多企業(yè)的青睞,逐漸成為了現(xiàn)代數(shù)據(jù)平臺的核心和架構(gòu)范式。

因此數(shù)據(jù)湖相關(guān)服務(wù)成為了云計算的發(fā)展重點之一。Azure平臺早年就曾發(fā)布第一代Data Lake Storage,隨后微軟將它與Azure Storage進行了大力整合,于今年初正式對外發(fā)布了其第二代產(chǎn)品:Azure Data Lake Storage Gen2 (下稱ADLS Gen2)。ADLS Gen2的口號是“不妥協(xié)的數(shù)據(jù)湖平臺,它結(jié)合了豐富的高級數(shù)據(jù)湖解決方案功能集以及 Azure Blob 存儲的經(jīng)濟性、全球規(guī)模和企業(yè)級安全性”。

全新一代的ADLS Gen2 實際體驗如何?讓我們來深入研究一下,尤其是關(guān)注ADLS Gen2 作為存儲層掛載到大數(shù)據(jù)集群后的表現(xiàn)。


ADLS Gen2體驗:集群掛載

數(shù)據(jù)湖存儲主要適用于大數(shù)據(jù)處理的場景,所以我們選擇建立一個HDInsight大數(shù)據(jù)集群來進行實驗,使用Spark來訪問和操作數(shù)據(jù)湖中的數(shù)據(jù)??梢钥吹紿DInsight已經(jīng)支持ADLS Gen2了:

ia_10200000584.jpg

接下來是比較關(guān)鍵的存儲配置環(huán)節(jié),我們指定使用一個新建的ADLS Gen2實例hdiclusterroot來作為整個集群的存儲,文件系統(tǒng)名為hdfs-root,如圖所示:

ia_10200000585.jpg


(圖中我們還配置了Additional storage accounts,用于掛載傳統(tǒng)Blob,之后作性能對比時會用到。此處暫不展開。)

很有意思的是上圖的下半部分,它允許我們指定一個Identity,這個Identity可以代表Spark集群的身份和訪問權(quán)限。這非常關(guān)鍵,意味著集群的身份能夠完美地與ADLS Gen2的權(quán)限體系對應(yīng)起來,在企業(yè)級的場景中能夠很好地落地對于大數(shù)據(jù)資源訪問的管控。

這里選擇了專門建立的一個spark-cluster-identity作為集群的身份。我們事先為它賦予了hdiclusterroot這個存儲賬號的storage blob data owner權(quán)限,以便該identity能夠?qū)?shù)據(jù)湖中的數(shù)據(jù)進行任意操作:

ia_10200000586.jpg


完成其他配置后按下創(chuàng)建按鈕,Azure會一鍵生成Spark集群,大約十來分鐘后整個集群就進入可用狀態(tài)了:

ia_10200000587.jpg


我們迫不及待地SSH登錄進集群,查看其默認(rèn)掛載的文件系統(tǒng)。嘗試使用hadoop fs -ls列出根目錄下的文件信息:

sshuser@hn0-cloudp:~$ hadoop fs -ls /

Found 18 items

drwxr-xr-x   - sshuser sshuser          0 2019-08-26 03:10 /HdiNotebooks

drwxr-xr-x   - sshuser sshuser          0 2019-08-26 03:29 /HdiSamples

drwxr-x---   - sshuser sshuser          0 2019-08-26 02:54 /ams

drwxr-x---   - sshuser sshuser          0 2019-08-26 02:54 /amshbase

drwxrwx-wt   - sshuser sshuser          0 2019-08-26 02:54 /app-logs

drwxr-x---   - sshuser sshuser          0 2019-09-06 07:41 /apps

drwxr-x--x   - sshuser sshuser          0 2019-08-26 02:54 /atshistory

drwxr-xr-x   - sshuser sshuser          0 2019-08-26 03:25 /custom-scriptaction-logs

drwxr-xr-x   - sshuser sshuser          0 2019-08-26 03:19 /example

drwxr-x---   - sshuser sshuser          0 2019-08-26 02:54 /hbase

drwxr-x--x   - sshuser sshuser          0 2019-09-06 07:41 /hdp

drwxr-x---   - sshuser sshuser          0 2019-08-26 02:54 /hive

drwxr-x---   - sshuser sshuser          0 2019-08-26 02:54 /mapred

drwxrwx-wt   - sshuser sshuser          0 2019-08-26 03:19 /mapreducestaging

drwxrwx-wt   - sshuser sshuser          0 2019-08-26 02:54 /mr-history

drwxrwx-wt   - sshuser sshuser          0 2019-08-26 03:19 /tezstaging

drwxr-x---   - sshuser sshuser          0 2019-08-26 02:54 /tmp

drwxrwx-wt   - sshuser sshuser          0 2019-09-09 02:31 /user

將文件列表和ADLS Gen2比對,可以看到這里的“根目錄”事實上就完全對應(yīng)著hdiclusterroot這個數(shù)據(jù)湖實例下hdfs-root文件系統(tǒng)中的數(shù)據(jù),這說明集群實現(xiàn)了該數(shù)據(jù)湖文件系統(tǒng)的掛載:

ia_10200000588.jpg

那么,這樣的遠(yuǎn)程掛載是如何實現(xiàn)的呢?打開集群的core-site.xml 配置文件,答案在fs.defaultFS配置節(jié)中:


<property>
   <name>fs.defaultFS</name>
   <value>abfs://hdfs-root@hdiclusterroot.dfs.core.windows.net</value>
   <final>true</final>
</property>


原來,與通常使用hdfs不同,集群的fs.defaultFS在創(chuàng)建時就被設(shè)置為了以abfs為開頭的特定url,該url正是指向我們的數(shù)據(jù)湖存儲。這個ABFS驅(qū)動(Azure Blob File System)是微軟專門為Data Lake Storage Gen2開發(fā),全面實現(xiàn)了Hadoop的FileSystem接口,為Hadoop體系和ADLS Gen2架起了溝通橋梁。

為證明數(shù)據(jù)湖文件系統(tǒng)能夠正常工作,我們來運行一個經(jīng)典的WordCount程序。筆者使用AzCopy往數(shù)據(jù)湖中上傳了一本小說《雙城記》 (ATaleOfTwoCities.txt),然后到HDInsight集群自帶的Jupyter Notebook里通過Scala腳本運用Spark來進行詞頻統(tǒng)計:

ia_10200000589.jpg

Great! 我們的Spark on ADLS Gen2實驗完美運行,過程如絲般順滑。

小結(jié)

Azure Data Lake Storage Gen2是微軟Azure全新一代的大數(shù)據(jù)存儲產(chǎn)品,專為企業(yè)級數(shù)據(jù)湖類應(yīng)用所構(gòu)建。它繼承了Azure Blob Storage易于使用、成本低廉的特點,同時又加入了目錄層次結(jié)構(gòu)、細(xì)粒度權(quán)限控制等企業(yè)級特性。

本文主要實踐了大數(shù)據(jù)集群掛載ADLS Gen2作為主存儲的場景,在證明ADLS Gen2具備良好Hadoop生態(tài)兼容性的同時,也體驗了與傳統(tǒng)HDFS不同的存儲計算分離架構(gòu)。該種架構(gòu)由于可獨立擴展計算和存儲部分,非常適合云端特點,正受到越來越多的歡迎。

原文鏈接:點擊前往 >
版權(quán)說明:本文內(nèi)容來自于云間拾遺,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家