大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目2 電商產(chǎn)品數(shù)據(jù)分布式存儲(chǔ)_第1頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目2 電商產(chǎn)品數(shù)據(jù)分布式存儲(chǔ)_第2頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目2 電商產(chǎn)品數(shù)據(jù)分布式存儲(chǔ)_第3頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目2 電商產(chǎn)品數(shù)據(jù)分布式存儲(chǔ)_第4頁
大數(shù)據(jù)分析與應(yīng)用微課版-課件 項(xiàng)目2 電商產(chǎn)品數(shù)據(jù)分布式存儲(chǔ)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目二

電商產(chǎn)品數(shù)據(jù)分布式存儲(chǔ)2023年2月使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)目錄Content1使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)2數(shù)據(jù)龐大導(dǎo)致主機(jī)壓力極大高速發(fā)展下的電商行業(yè)使數(shù)據(jù)量指數(shù)級(jí)增長項(xiàng)目導(dǎo)言零為客戶提供了更優(yōu)質(zhì)的服務(wù)HDFS的出現(xiàn)學(xué)習(xí)目標(biāo)零知識(shí)目標(biāo)了解HDFS、Flume等相關(guān)知識(shí);熟悉HDFS存儲(chǔ)機(jī)制及Flume基本架構(gòu);掌握HDFSShell和FlumeNG命令的基本使用;具有實(shí)現(xiàn)大數(shù)據(jù)項(xiàng)目日志數(shù)據(jù)采集和存儲(chǔ)的能力。技能目標(biāo)具備使用HDFSShell操作分布式文件系統(tǒng)的能力;具備使用HDFSShell對(duì)分布式文件系統(tǒng)的權(quán)限控制能力;具備使用Python連接并操作分布式文件系統(tǒng)的能力。素養(yǎng)目標(biāo)具備精益求精、堅(jiān)持不懈的精神具有團(tuán)隊(duì)協(xié)作能力;具備靈活的思維和處理分析問題的能力;具有責(zé)任心。任務(wù)1-1:電商產(chǎn)品數(shù)據(jù)背景及數(shù)據(jù)分析概述壹什么是HDFS任務(wù)技能HDFS在最開始時(shí),是作為ApacheNutch搜索引擎項(xiàng)目的基礎(chǔ)架構(gòu)而開發(fā),現(xiàn)在是ApacheHadoop核心項(xiàng)目的一部分HDFS存儲(chǔ)架構(gòu)HDFS采用Master/Slave架構(gòu)(服務(wù)器主從架構(gòu)),即一個(gè)HDFS集群是由一個(gè)NameNode、一個(gè)SecondaryNameNode和一定數(shù)目的DataNode組成HDFS文件存取機(jī)制HDFS以統(tǒng)一目錄樹的形式實(shí)現(xiàn)自身文件的存儲(chǔ),客戶端只需指定對(duì)應(yīng)的目錄樹即可完成文件的訪問,不需要獲取具體的文件存儲(chǔ)位置HDFSShell基礎(chǔ)命令在Linux中通常使用Shell命令的方式完成對(duì)文件系統(tǒng)的操作,對(duì)于HDFS來說同樣可以使用Shell命令的方式操作HDFSShell管理命令在HDFS中,HDFSShell管理命令主要用于對(duì)HDFS相關(guān)內(nèi)容進(jìn)行操作任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹1什么是HDFSHDFS,全稱為HadoopDistributedFileSystem,Hadoop中存儲(chǔ)數(shù)據(jù)的基石,存儲(chǔ)著所有的數(shù)據(jù),具有高可靠性,高容錯(cuò)性,高可擴(kuò)展性,高吞吐量等特征(1)塊存儲(chǔ)HDFS在存儲(chǔ)文件時(shí),會(huì)將一個(gè)大文件拆分成多個(gè)數(shù)據(jù)塊(block)進(jìn)行存儲(chǔ),默認(rèn)狀態(tài)下每個(gè)數(shù)據(jù)塊的大小為128MB,當(dāng)文件不足128MB時(shí)不進(jìn)行拆分任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(2)塊存儲(chǔ)的優(yōu)點(diǎn)支持大規(guī)模文件存儲(chǔ)適合備份數(shù)據(jù)簡單的系統(tǒng)設(shè)計(jì)任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹2HDFS存儲(chǔ)架構(gòu)HDFS采用Master/Slave架構(gòu)(服務(wù)器主從架構(gòu)),即一個(gè)HDFS集群是由一個(gè)NameNode、一個(gè)SecondaryNameNode和一定數(shù)目的DataNode組成任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(1)合并fsimage與edits的流程任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹3HDFS文件存取機(jī)制在HDFS中,通過NameNode進(jìn)程可以對(duì)目錄樹和文件真實(shí)存儲(chǔ)位置進(jìn)行相應(yīng)的管理,并且在進(jìn)行HDFS文件存儲(chǔ)的相關(guān)設(shè)計(jì)時(shí),嚴(yán)格的遵循著自己的存儲(chǔ)設(shè)計(jì)原則(1)HDFS讀文件過程HDFS可以將存儲(chǔ)在塊中的數(shù)據(jù)以存儲(chǔ)時(shí)的格式讀取出來,并交給后面的相關(guān)操作進(jìn)行使用任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(2)HDFS寫文件過程HDFS寫文件的過程就是將數(shù)據(jù)存儲(chǔ)到HDFS中。整個(gè)寫入過程的實(shí)現(xiàn),同樣需要讀取過程中使用的相關(guān)模塊,只是模塊之間相互作用的順序不同任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(3)HDFS監(jiān)控在HDFS中,存在一個(gè)用于監(jiān)控HDFS文件情況的WebUI界面,屬于Hadoop監(jiān)控界面的子界面,可通過“:50070/explorer.html#/”地址進(jìn)入該界面任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹4HDFSShell基礎(chǔ)命令在Linux中通常使用Shell命令的方式完成對(duì)文件系統(tǒng)的操作,對(duì)于HDFS來說同樣可以使用Shell命令的方式操作,通過HDFSShell即可完成文件或文件夾的增加、刪除、修改、查看等(1)HDFSShell語法hdfsdfs[HDFSshell命令]任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(2)-ls、-ls-R-ls與-ls-R命令用于查看指定路徑下的目錄結(jié)構(gòu),區(qū)別在于-ls-R會(huì)返回包含子集的目錄結(jié)構(gòu),-ls僅返回指定目錄的結(jié)構(gòu)hdfsdfs-ls<路徑>hdfsdfs-ls-R<路徑>(3)-du、-du-s、-count//查詢目錄或文件大小hdfsdfs-du<路徑>//匯總文件(文件夾)的大小hdfsdfs-du-s<路徑>//文件和目錄數(shù)量、大小hdfsdfs-count[-q]<路徑>任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(4)-mv和-cp在HDFS中,-mv和-cp是兩個(gè)用于不同目錄操作的命令//HDFS移動(dòng)操作hdfsdfs-mv<源路徑><目的路徑>//HDFS復(fù)制操作hdfsdfs-cp<源路徑><目的路徑>(5)-rm、-rm-r//刪除目錄hdfsdfs-rm<目錄路徑>//遞歸刪除hdfsdfs-rm-r<目錄路徑>-rm命令用于刪除HDFS文件系統(tǒng)中的文件或空白文件夾、-rm-r命令能夠遞歸刪除指定路徑下的全部文件和文件夾任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(6)-put在HDFS中,-put命令主要用于本地文件或目錄的上傳,其接收兩個(gè)參數(shù),第一個(gè)參數(shù)為本地文件或目錄路徑;第二個(gè)參數(shù)為目標(biāo)路徑,即HDFS存儲(chǔ)路徑hdfsdfs-put<多個(gè)linux上的文件><hdfs路徑>(7)-get、-getmerge//獲取文件到本地hdfsdfs-get<源路徑><linux路徑>//將文件合并獲取到本地hdfsdfs-get<源路徑><linux路徑>-get命令用于從指定hdfs路徑下獲取文件到本地文件系統(tǒng),-getmerge命令用于將HDFS系統(tǒng)中的文件合并存儲(chǔ)到本地任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(8)-cat和-tail-cat命令用于查看HDFS文件系統(tǒng)中文件的內(nèi)容,文件中的全部內(nèi)容會(huì)打印到命令行窗口中,-tail命令用于查看文件尾部信息//獲取文件到本地hdfsdfs-cat<hdfs路徑>//將文件合并獲取到本地hdfsdfs-tail<文件>(9)-touchzhdfsdfs-touchz<文件路徑>-touchz命令同樣用于創(chuàng)建操作,但與-mkdir命令不同,通過-touchz命令添加文件名稱及格式,可以進(jìn)行沒有任何內(nèi)容存在的空白文件的創(chuàng)建任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹5HDFSShell管理命令在HDFS中,HDFSShell管理命令主要用于對(duì)HDFS相關(guān)內(nèi)容進(jìn)行操作,包含安全模式開啟關(guān)閉、系統(tǒng)升級(jí)、存儲(chǔ)副本恢復(fù)等(1)HDFSShell管理命令語法hdfsdfsadminHDFSShell管理命令任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(2)-report-report是HDFSShell管理命令中一個(gè)用于統(tǒng)計(jì)HDFS基本信息的命令,在使用時(shí)不需要添加任何參數(shù)屬性解釋ConfiguredCapacity配置容量PresentCapacity現(xiàn)有容量DFSRemaining剩余DFS容量DFSUsed正在使用的DFS容量DFSUsed正在使用DFS的容量占全部容量的百分比Underreplicatedblocks正在復(fù)制塊的個(gè)數(shù)Blockswithcorruptreplicas具有損壞副本塊的個(gè)數(shù)Missingblocks缺少塊個(gè)數(shù)Livedatanodes實(shí)時(shí)數(shù)據(jù)節(jié)點(diǎn)ConfiguredCacheCapacity配置的緩存容量CacheUsed被使用的緩存容量CacheRemaining剩余高速緩存容量hdfsdfsadmin-report任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(3)-safemode-safemode是一個(gè)安全模式操作命令,用于保證HDFS數(shù)據(jù)的完整性和安全性參數(shù)解釋enter進(jìn)入安全模式leave離開安全模式get獲取當(dāng)前安全模式信息hdfsdfsadmin-safemodeenter|leave|get|任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(4)-finalizeUpgrade-finalizeUpgrade命令可以將DataNode和NameNode上存儲(chǔ)的舊版本HDFS數(shù)據(jù)移除后進(jìn)行更新操作參數(shù)解釋true開啟存儲(chǔ)副本恢復(fù)操作false關(guān)閉存儲(chǔ)副本恢復(fù)操作check檢查存儲(chǔ)副本恢復(fù)操作狀態(tài)hdfsdfsadmin-finalizeUpgrade任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹(5)-setQuota、-clrQuota-setQuota用于設(shè)置指定目錄中最多可以包含目錄和文件的總數(shù),-clrQuota命令則只需指定目錄路徑即可清除指定文件的配額//設(shè)置配額hdfsdfsadmin-setQuota配額目錄路徑//清除配額hdfsdfsadmin-clrQuota目錄路徑(6)-setSpaceQuota、-clrSpaceQuota-setSpaceQuota和-clrSpaceQuota命令同樣用于配額的操作,不同的是-setSpaceQuota和-clrSpaceQuota用于空間配額的操作任務(wù)2-1:使用HDFSShell管理電商產(chǎn)品數(shù)據(jù)壹創(chuàng)建數(shù)據(jù)存儲(chǔ)目錄結(jié)構(gòu)Step1上傳數(shù)據(jù)文件后查看大小Step2數(shù)據(jù)文件權(quán)限、組別、用戶設(shè)置Step3文件夾大小統(tǒng)計(jì)Step4將電商產(chǎn)品數(shù)據(jù)上傳到HDFS分布式文件系統(tǒng)中通過HDFSShell指令完成電商數(shù)據(jù)存儲(chǔ)目錄構(gòu)建、權(quán)限設(shè)置、文件檢查等操作任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳hdfs庫簡介任務(wù)技能HDFS在最開始時(shí),是作為ApacheNutch搜索引擎項(xiàng)目的基礎(chǔ)架構(gòu)而開發(fā),現(xiàn)在是ApacheHadoop核心項(xiàng)目的一部分hdfs庫方法HDFS以統(tǒng)一目錄樹的形式實(shí)現(xiàn)自身文件的存儲(chǔ),客戶端只需指定對(duì)應(yīng)的目錄樹即可完成文件的訪問,不需要獲取具體的文件存儲(chǔ)位置任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳在進(jìn)行hdfs的相關(guān)操作時(shí),發(fā)現(xiàn)通過命令窗口的方式操作hdfs便捷性、靈活性較低,所以在實(shí)際的操作中,一般會(huì)選擇使用其他語言提供的包或插件,在有需要時(shí)自動(dòng)執(zhí)行相關(guān)的hdfs操作,Python提供的hdfs庫是一個(gè)較為成熟的工具,只需通過簡單的鏈接操作,獲得鏈接對(duì)象即可操作HDFS文件系統(tǒng)1pythonhdfs庫簡介任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳2hdfs庫方法(1)連接HDFSPython提供了一個(gè)Client()方法用于實(shí)現(xiàn)hdfs的連接,只需傳入HDFS服務(wù)地址即可連接hdfsfromhdfsimport*client=Client("hdfs服務(wù)地址")參數(shù)解釋url指定格式為“ip:端口”root指定的hdfs根目錄proxy指定登錄的用戶timeout設(shè)置連接超時(shí)時(shí)間seesion指定用戶發(fā)送請(qǐng)求任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳(2)client對(duì)象常用方法Python的hdfs庫還提供了多個(gè)用于hdfs連接后對(duì)其進(jìn)行操作的方法,如文件的創(chuàng)建、刪除等操作方法解釋說明read()讀取HDFS中文件內(nèi)容write()寫入數(shù)據(jù)content()檢索文件或目錄的內(nèi)容摘要status()獲取路徑具體信息list()獲取指定路徑的子目錄信息makedirs()創(chuàng)建目錄rename()重命名操作delete()刪除操作upload()上傳數(shù)據(jù)操作download()下載數(shù)據(jù)操作任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳(3)相關(guān)方法的使用及參數(shù)介紹1、read()方法用于讀取HDFS文件系統(tǒng)中文件的內(nèi)容client.read(hdfs_path,encoding,delimiter)hdfs_path:HDFS中的文件路徑。encoding:編碼格式。delimiter:分隔符。2、content()方法用于檢索HDFS中文件或目錄的內(nèi)容摘要,可用作判斷文件或目錄是否存在client.content(hdfs_path,strict=True)hdfs_path:檢索路徑。strict:當(dāng)值設(shè)置為True時(shí)檢索的目標(biāo)文件或目錄不存在會(huì)引發(fā)異常,若設(shè)置為False時(shí)文件或目錄不存在會(huì)返回None。任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳(3)相關(guān)方法的使用及參數(shù)介紹3、status()方法主要用于獲取路徑具體信息Client.status(hdfs_path,strict=True)hdfs_path,HDFS路徑。strict:設(shè)置為True時(shí),如果hdfs_path路徑不存在就會(huì)拋出異常,如果設(shè)置為False,如果路徑為不存在則返回None。4、list()方法主要用于獲取指定路徑的子目錄信息,參數(shù)與status()方法一致client.list(hdfs_path,strict=True)任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳(3)相關(guān)方法的使用及參數(shù)介紹5、list()方法主要用于創(chuàng)建目錄,其同樣接受兩個(gè)參數(shù),第一個(gè)參數(shù)為hdfs_path,表示hdfs目錄文件夾;第二個(gè)參數(shù)為permission,用于設(shè)置權(quán)限Client.makedirs(hdfs_path,permission=None)6、rename()方法主要用于hdfs中文件或目錄的重命名操作client.rename(hdfs_src_path,hdfs_dst_path)dfs_src_path:源路徑。hdfs_dst_path:目標(biāo)路徑,存在移入,不存在引發(fā)hfdserror異常。任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳(3)相關(guān)方法的使用及參數(shù)介紹7、delete()方法主要用于刪除hdfs上指定的文件或文件夾client.delete(hdfs_path,recursive=False)8、download()方法主要用于下載hdfs上指定的文件或文件夾,與upload()方法是一對(duì)功能相反的方法,并且包含的大部分參數(shù)基本相同Client.download(hdfs_path,local_path,overwrite=False,n_threads=1,temp_dir=None,**kwargs)hdfs_path:hdfs路徑。local_path:本地路徑。local_path:是否是覆蓋性下載文件文件。n_threads:啟動(dòng)的線程數(shù)目。temp_dir:當(dāng)overwrite=true時(shí),本地文件一旦存在,則會(huì)在下載完之后進(jìn)行交換。hdfs_path:文件路徑。recursive:表示需要被刪除文件和其子目錄,值為true/false,默認(rèn)為False,設(shè)置為False時(shí),當(dāng)文件或目錄不存在,則會(huì)拋出異常。任務(wù)2-2:使用hdfs庫管理電商產(chǎn)品數(shù)據(jù)貳(3)相關(guān)方法的使用及參數(shù)介紹9、write()方法用于向指定的HDFS文件系統(tǒng)中的文件中寫入數(shù)據(jù),若路徑不存在會(huì)自動(dòng)創(chuàng)建client.write(hdfs_path,data=None,overwrite=False,permission=None,blocksize=None,rep

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論