課外作業(yè)二:搭建Hadoop環(huán)境及HDFS
- 作業(yè)詳情
內(nèi)容
- 阿里云-云起實(shí)驗(yàn)室-《搭建Hadoop環(huán)境》-Hadoop-2.10.1偽分布式:
1.截圖本實(shí)驗(yàn)ECS的公網(wǎng)IP地址,并添加彩色框標(biāo)注,如下圖所示: 2.步驟6.啟動(dòng)Hadoop成功之后,截圖并添加彩色框標(biāo)注,如下圖所示
3.hdfs根目錄創(chuàng)建文件夾(文件夾命名為:自己姓名全拼接學(xué)號后四位) 4.在該文件夾下面創(chuàng)建文件(文件命名為:自己姓名全拼接學(xué)號后四位.txt) 5.上傳ECS的root目錄下的Hadoop安裝文件到hdfs自建的文件夾下面 6.操作成功后截圖并添加彩色框標(biāo)注,如下圖所示:
-
華為云-Koolabs云實(shí)驗(yàn)-實(shí)驗(yàn)《HDFS寫文件》 將下載的實(shí)驗(yàn)數(shù)據(jù)文件000000_0改名為自己姓名全拼接學(xué)號后四位 ,
實(shí)驗(yàn)最后運(yùn)行python程序后,截圖查看文件內(nèi)容命令及顯示結(jié)果。
-
實(shí)驗(yàn)《HDFS讀文件》:實(shí)驗(yàn)最后一步的txt文件check02改為自己姓名全拼接學(xué)號后四位,運(yùn)行python程序后,截圖執(zhí)行結(jié)果。
- 簡要回答“課堂考核”內(nèi)容
- Hadoop安裝有哪些模式?本實(shí)驗(yàn)是哪種模式?可不可以安裝其他模式?
答:Hadoop安裝有4種模式:單節(jié)點(diǎn)模式、偽分布式模式、完全分布式模式以及高可用模式。
- 為什么要安裝JDK?下載源是哪里?是哪個(gè)版本?其他版本可以嗎?安裝在哪里?
答:在安裝Hadoop之前,需要先安裝JDK,因?yàn)镠adoop是基于Java開發(fā)的,JDK提供了編譯環(huán)境,而且Hadoop的運(yùn)行需要依賴JDK的環(huán)境。
- Hadoop的下載源是哪里?是哪個(gè)版本?其他版本可以嗎?安裝在哪里?
答:Hadoop的下載源是Apache官網(wǎng),最新的版本是Hadoop 2.7,其它版本也可以,但是建議使用最新的版本。Hadoop安裝在一個(gè)正確安裝、配置網(wǎng)絡(luò)和用戶環(huán)境的機(jī)器上,可以是物理機(jī)或虛擬機(jī)。
- 在Linux安裝JDK和Hadoop與在Windows安裝有什么區(qū)別?
答:Linux下安裝JDK和Hadoop與在Windows安裝是差不多的,只不過Windows下是GUI界面,而Linux下是命令行界面。
- JDK和Hadoop的環(huán)境變量配置是干什么的?分別是哪個(gè)文件?配置完了為什么要source?
答:JDK和Hadoop的環(huán)境變量配置要在.bashrc文件中進(jìn)行,其中JDK需要配置JAVA_HOME,Hadoop需要配置HADOOP_HOME、HADOOP_PREFIX等,這些環(huán)境變量的配置可以讓用戶從任何目錄調(diào)用Hadoop的命令,并且可以執(zhí)行程序。source是用來使新配置的環(huán)境變量生效的,它會(huì)啟動(dòng)一個(gè)新的shell,在新的shell中,環(huán)境變量會(huì)使用新配置。
- Hadoop偽分布式要配置哪些文件?作用分別是什么?
答:Hadoop偽分布式要配置以下3個(gè)文件:core-site.xml、hdfs-site.xml和mapred-site.xml。core-site.xml主要用于配置Hadoop的全局屬性,比如Hadoop-specific configurations;hdfs-site.xml主要用于配置HDFS的選項(xiàng),如HDFS的Namespace以及存儲(chǔ)塊的大??;mapred-site.xml主要用于配置MapReduce的選項(xiàng),像是JobTracker的端口號或MapReduce程序的相關(guān)路徑等。
- 免密登錄是什么意思?為什么要配置免密登錄?
答:免密登錄是指可以在不輸入用戶名和口令的情況下登錄到遠(yuǎn)程的Linux系統(tǒng),從而提高SSH遠(yuǎn)程登錄的安全性和便利性。為了配置免密登錄,需要分別在客戶機(jī)和服務(wù)器上安裝ssh-keygen,并分別在兩臺(tái)機(jī)器上生成公鑰和私鑰,然后對公鑰進(jìn)行復(fù)制,就可以實(shí)現(xiàn)免密登錄了。
- 啟動(dòng)Hadoop后能夠看到哪些節(jié)點(diǎn)?它們分別是干什么的?
答:啟動(dòng)Hadoop后可以看到NameNode節(jié)點(diǎn)、DataNode節(jié)點(diǎn)以及SecondaryNameNode節(jié)點(diǎn)。NameNode是HDFS的管理節(jié)點(diǎn),用于記錄文件系統(tǒng)的元數(shù)據(jù)信息;DataNode節(jié)點(diǎn)是存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn),它們存儲(chǔ)用戶上傳的數(shù)據(jù);SecondaryNameNode節(jié)點(diǎn)負(fù)責(zé)NameNode的備份工作,它是一種輔助節(jié)點(diǎn),用于保存NameNode站點(diǎn)的內(nèi)存映像副本,從而獲得更好的容錯(cuò)性。
- Hadoop的兩個(gè)Web頁面分別是干什么的?
答:Hadoop有兩個(gè)Web頁面,分別是NameNode Web UI和JobTracker Web UI。NameNode Web UI用于查看文件系統(tǒng)、查看集群中的節(jié)點(diǎn),以及管理存儲(chǔ)在文件系統(tǒng)中的數(shù)據(jù);而JobTracker Web UI則用于查看任務(wù)的狀態(tài)和信息,便于監(jiān)控任務(wù)的執(zhí)行情況。
- 實(shí)驗(yàn)桌面文件系統(tǒng)與ECS文件系統(tǒng)區(qū)別是什么?瀏覽器下載文件是下載到哪個(gè)文件系統(tǒng)里?文件在兩者之間怎么傳輸?
答:實(shí)驗(yàn)桌面文件系統(tǒng)與ECS文件系統(tǒng)區(qū)別是,實(shí)驗(yàn)桌面文件系統(tǒng)指的是實(shí)驗(yàn)桌面環(huán)境中本地的文件系統(tǒng),它存儲(chǔ)在本地的硬盤上;而ECS文件系統(tǒng)指的是EMR實(shí)例中的文件系統(tǒng),由Hadoop分布式文件系統(tǒng)HDFS所管理,它存儲(chǔ)在實(shí)例上的硬盤中。瀏覽器下載文件是下載到實(shí)驗(yàn)桌面文件系統(tǒng)里。文件在兩者之間可以通過FTP文件傳輸協(xié)議或者SCP安全文件傳輸協(xié)議實(shí)現(xiàn)傳輸。
- HDFS文件系統(tǒng)與本地文件系統(tǒng)區(qū)別是什么?
答:HDFS文件系統(tǒng)與本地文件系統(tǒng)的區(qū)別在于,HDFS是一個(gè)分布式文件系統(tǒng),可以支持大量容量、高吞吐量和可靠性,而本地文件系統(tǒng)則更像是一種單機(jī)文件系統(tǒng),存儲(chǔ)容量和吞吐量都要低于HDFS。
- Hadoop命令與Linux命令區(qū)別是什么?
答:Hadoop命令與Linux命令相比較,Hadoop命令更廣泛,可以進(jìn)行更多的操作;而Linux命令則只能做基礎(chǔ)的操作,比如查看目錄、創(chuàng)建文件、執(zhí)行一些簡單的命令等。
- HDFS上怎么創(chuàng)建文件和文件夾?怎么查看?
答:HDFS上創(chuàng)建文件和文件夾,可以使用hadoop fs -mkdir命令創(chuàng)建文件夾,使用hadoop fs -put命令上傳文件到HDFS上;查看文件和文件夾,可以通過hadoop fs -ls命令查看HDFS上的文件和文件夾。
- 怎么從HDFS上下載文件到本地?命令是什么?簡單講述原理是什么?關(guān)鍵的Java輸入輸出流及方法是什么?
答:從HDFS上下載文件到本地的命令是hadoop fs -get,原理是調(diào)用hadoop的java API來獲取遠(yuǎn)程文件系統(tǒng)中的文件。關(guān)鍵的輸入輸出流及方法是將文件從HDFS上讀入到InputStream中,并且將該文件寫入到本地的OutputStream中,從而實(shí)現(xiàn)文件的下載。
- 怎么把本地文件上傳到HDFS上?命令是什么?簡單講述原理是什么?關(guān)鍵的Java輸入輸出流及函數(shù)是什么?
答:將本地文件上傳到HDFS上的命令是hadoop fs -put,原理是調(diào)用hadoop的java API來將文件上傳到遠(yuǎn)程文件系統(tǒng)中。關(guān)鍵的輸入輸出流及方法是將文件從本地的InputStream中讀入,并且將文件寫入到HDFS的OutputStream中,從而實(shí)現(xiàn)文件的上傳。
- 實(shí)驗(yàn)《HDFS寫文件》中,Python寫入HDFS用的哪個(gè)函數(shù)?寫入到哪里了?
答:實(shí)驗(yàn)《HDFS寫文件》中,Python寫入HDFS用的函數(shù)是hdfs3.HDFile,它會(huì)將文件寫入到HDFS上。
- 實(shí)驗(yàn)《HDFS讀文件》中,Python創(chuàng)建HDFS輸入流的函數(shù)是什么?從HDFS讀取的文件內(nèi)容輸出到哪里了?
答:實(shí)驗(yàn)《HDFS讀文件》中,Python創(chuàng)建HDFS輸入流的函數(shù)是hdfs3.HDFile,從HDFS讀取的文件內(nèi)容會(huì)輸出到HDFile對象中。
- 習(xí)題
- 試述Hadoop和谷歌的 MapReduce、GFS 等技術(shù)之間的關(guān)系。
答:Hadoop是谷歌的MapReduce和GFS(分布式文件系統(tǒng))技術(shù)的開源實(shí)現(xiàn),Hadoop實(shí)現(xiàn)了谷歌分布式存儲(chǔ)及計(jì)算的架構(gòu)。
- 試述Hadoop具有哪些特性。
答:Hadoop具有高可擴(kuò)展性、高容錯(cuò)性、高效容量管理等特點(diǎn)。
- 試述Hadoop在各個(gè)領(lǐng)域的應(yīng)用情況。
答: Hadoop目前在商業(yè)、金融、醫(yī)療、教育等多個(gè)領(lǐng)域都得到了廣泛應(yīng)用,它可以大大減少數(shù)據(jù)處理時(shí)間及成本,節(jié)省人力成本,提高企業(yè)的數(shù)據(jù)處理水平,發(fā)揮其價(jià)值。
- 試述Hadoop生態(tài)系統(tǒng)以及每個(gè)部分的具體功能。
答: Hadoop生態(tài)系統(tǒng)包括HDFS(分布式文件系統(tǒng))、MapReduce (分布式計(jì)算框架)、YARN(集群資源管理器)、Hive(數(shù)據(jù)倉庫)、HBase(NoSQL分布式數(shù)據(jù)庫)、ZooKeeper(協(xié)調(diào)服務(wù))等,它們的功能分別是:提供高可靠的存儲(chǔ)系統(tǒng),實(shí)現(xiàn)計(jì)算框架,管理集群資源,提供數(shù)據(jù)倉庫,提供NoSQL分布式數(shù)據(jù)庫,以及協(xié)調(diào)集群中各節(jié)點(diǎn)之間的通信。
- 配置Hadoop時(shí),Java的路徑JAVAHOME在哪一個(gè)配置文件中進(jìn)行設(shè)置的?
答:java的路徑JAVAHOME在hadoop-env.sh配置文件中進(jìn)行設(shè)置。
- 所有HDFS路徑是通過fs.default.name 來設(shè)置的,請問它是在哪個(gè)配置文件中設(shè)置的?
答:所有HDFS路徑是通過fs.default.name在core-site.xml中進(jìn)行設(shè)置。
- 試列舉單機(jī)模式和偽分布模式的異同點(diǎn)。
答:單機(jī)模式和偽分布模式的異同點(diǎn): 都是Hadoop計(jì)算模型,在它們之中可以使用Hadoop提供的MapReduce計(jì)算框架;都可以使用Hadoop提供的分布式存儲(chǔ)系統(tǒng)HDFS來存儲(chǔ)大量的數(shù)據(jù); 不同點(diǎn): 單機(jī)模式只需要一臺(tái)機(jī)器,而偽分布模式需要至少兩臺(tái)機(jī)器,且兩臺(tái)機(jī)器之間要有足夠的網(wǎng)絡(luò)連接,以確保數(shù)據(jù)和任務(wù)都可以正常地傳輸; 單機(jī)模式下,它將會(huì)維護(hù)一個(gè)HDFS集群、一個(gè)MapReduce集群,而偽分布模式下,它將會(huì)維護(hù)一個(gè)HDFS集群和多個(gè)MapReduce集群; 單機(jī)模式僅支持單機(jī)上的MapReduce作業(yè),而偽分布模式支持?jǐn)?shù)據(jù)的多機(jī)器上的分布式MapReduce作業(yè); 單機(jī)模式只能利用單機(jī)的資源來處理數(shù)據(jù),而偽分布模式可以利用多機(jī)的資源來處理數(shù)據(jù),從而達(dá)到更好的性能。
- Hadoop偽分布式運(yùn)行啟動(dòng)后所具有的進(jìn)程都有哪些?
答:Hadoop偽分布式運(yùn)行啟動(dòng)后所具有的進(jìn)程有:NameNode進(jìn)程、SecondaryNameNode進(jìn)程、DataNode進(jìn)程、ResourceManager進(jìn)程、NodeManager進(jìn)程以及JobHistoryServer進(jìn)程。
- 如果具備集群實(shí)驗(yàn)條件,請嘗試按照Hadoop官方文檔搭建全分布式的Hadoop集群環(huán)境。
- 習(xí)題
- 試述分布式文件系統(tǒng)設(shè)計(jì)的需求。
答:要能夠采用不同類型的文件系統(tǒng),要支持多種類型的文件讀寫操作,系統(tǒng)要容易擴(kuò)展和維護(hù),對存儲(chǔ)節(jié)點(diǎn)的錯(cuò)誤要有恢復(fù)機(jī)制,要支持權(quán)限管理,要支持多種網(wǎng)絡(luò)協(xié)議,安全性要有一定的保障,且要支持硬盤和網(wǎng)絡(luò)文件的傳輸。
- 分布式文件系統(tǒng)是如何實(shí)現(xiàn)較高水平擴(kuò)展的?
答:采用分布式存儲(chǔ)技術(shù),將數(shù)據(jù)分散存儲(chǔ),分布式文件系統(tǒng)采用多個(gè)數(shù)據(jù)服務(wù)器實(shí)現(xiàn)水平擴(kuò)展,同時(shí)分散數(shù)據(jù)到多個(gè)數(shù)據(jù)服務(wù)器上,增加服務(wù)器的靈活性,提高存儲(chǔ)的效率。另外,分布式文件系統(tǒng)還可以通過分布式緩存技術(shù)和網(wǎng)絡(luò)負(fù)載均衡技術(shù)實(shí)現(xiàn)水平擴(kuò)展。
- 試述HDFS中的塊和普通文件系統(tǒng)中的塊的區(qū)別。
答:HDFS中的塊:HDFS的存儲(chǔ)塊是64M,是HDFS的內(nèi)部存儲(chǔ)單元,所有的文件都需要被細(xì)分為一個(gè)個(gè)64M的存儲(chǔ)塊,以實(shí)現(xiàn)數(shù)據(jù)的復(fù)制和存儲(chǔ)。 普通文件系統(tǒng)中的塊:塊是文件系統(tǒng)最小的讀寫單元,一般普通的文件系統(tǒng)的存儲(chǔ)塊的大小小于HDFS的存儲(chǔ)塊,一般在4KB~8KB之間。
- 試述HDFS中的名稱節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的具體功能。
答:HDFS中的名稱節(jié)點(diǎn)是整個(gè)集群的核心,它存放所有的文件的元數(shù)據(jù),負(fù)責(zé)管理元數(shù)據(jù)的更新和查詢,也負(fù)責(zé)文件的訪問控制;它還負(fù)責(zé)數(shù)據(jù)塊的分配和管理,允許節(jié)點(diǎn)上載和下載數(shù)據(jù),負(fù)責(zé)數(shù)據(jù)塊的復(fù)制和驗(yàn)證,它還負(fù)責(zé)整個(gè)HDFS文件系統(tǒng)的監(jiān)控管理,可以監(jiān)控整個(gè)HDFS的運(yùn)行狀態(tài)。 HDFS的數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)處理客戶端的讀寫請求,并將客戶端發(fā)來的文件分割成存儲(chǔ)塊,將每個(gè)存儲(chǔ)塊中的數(shù)據(jù)保存到本地,還會(huì)將這些存儲(chǔ)塊復(fù)制到名稱節(jié)點(diǎn)指定的若干數(shù)據(jù)節(jié)點(diǎn),以實(shí)現(xiàn)冗余存儲(chǔ)。數(shù)據(jù)節(jié)點(diǎn)還負(fù)責(zé)檢查存儲(chǔ)在本地的存儲(chǔ)塊,如果發(fā)現(xiàn)有損壞的存儲(chǔ)塊,就會(huì)將其標(biāo)記為失效,并將它從本地重新復(fù)制。
- 在分布式文件系統(tǒng)中,中心節(jié)點(diǎn)的設(shè)計(jì)至關(guān)重要,請闡述HDFS如何減中心節(jié)點(diǎn)的負(fù)擔(dān)的。
答:HDFS采用了客戶端/服務(wù)器的模式,它的客戶端可以查詢名稱節(jié)點(diǎn)信息,并從名稱節(jié)點(diǎn)處獲取數(shù)據(jù)節(jié)點(diǎn)的信息,從而減輕了中心節(jié)點(diǎn)的負(fù)擔(dān)。此外,還有一些方法可以為名稱節(jié)點(diǎn)減輕負(fù)擔(dān),如有一個(gè)無法訪問的故障節(jié)點(diǎn),節(jié)點(diǎn)管理器可以從遠(yuǎn)程異步檢查數(shù)據(jù)節(jié)點(diǎn)的狀態(tài),這樣可以減輕名稱節(jié)點(diǎn)的負(fù)擔(dān)。
- HDFS只設(shè)置唯一一個(gè)名稱節(jié)點(diǎn),在簡化系統(tǒng)設(shè)計(jì)的同時(shí)也帶來了一些明顯的局限性,請闡述局限性具體表現(xiàn)在哪些方面。
答:首先,因?yàn)橹挥幸粋€(gè)名稱節(jié)點(diǎn),因此其可用性受到限制,如果名稱節(jié)點(diǎn)出現(xiàn)故障,整個(gè)系統(tǒng)都將無法工作;其次,名稱節(jié)點(diǎn)存儲(chǔ)集群中所有文件的元數(shù)據(jù),因此其處理負(fù)擔(dān)很重,隨著文件系統(tǒng)的不斷增長,名稱節(jié)點(diǎn)的處理能力可能會(huì)受到限制。
- 試述HDFS的冗余數(shù)據(jù)保存策略。
答:HDFS的冗余數(shù)據(jù)保存策略是把一個(gè)數(shù)據(jù)塊復(fù)制到多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,默認(rèn)復(fù)制三份,這樣一來,即使一個(gè)節(jié)點(diǎn)出現(xiàn)故障,我們也可以從其他節(jié)點(diǎn)上恢復(fù)數(shù)據(jù),而且這種保存策略能夠有效地減少系統(tǒng)的單點(diǎn)故障。
- 數(shù)據(jù)復(fù)制要在數(shù)據(jù)寫入和數(shù)據(jù)恢復(fù)的時(shí)候發(fā)生,HDFS數(shù)據(jù)復(fù)制使用流水線復(fù)制的策略,請闡述該策略的細(xì)節(jié)。
答:HDFS數(shù)據(jù)復(fù)制使用流水線復(fù)制策略,指的是將一份數(shù)據(jù)(文件)復(fù)制到一組已知的DataNode結(jié)點(diǎn)上。默認(rèn)的復(fù)制因子是3,即每一份數(shù)據(jù)會(huì)寫入3個(gè)DataNode結(jié)點(diǎn)上。HDFS會(huì)順序地將這一份數(shù)據(jù)分成多個(gè)塊,并在DataNode結(jié)點(diǎn)上分別寫入這些塊,并立即開始下個(gè)塊的寫入,直到所有塊完成寫入。這樣可以大大提高數(shù)據(jù)復(fù)制的傳輸效率,有效利用了網(wǎng)絡(luò)帶寬傳輸大量數(shù)據(jù)。
- 試述HDFS是如何探測錯(cuò)誤發(fā)生以及如何進(jìn)行恢復(fù)的。
答:HDFS會(huì)采用Heartbeat機(jī)制以及Blockreport機(jī)制來探測數(shù)據(jù)結(jié)點(diǎn)上的故障發(fā)生,當(dāng)NameNode收到來自DataNode的Heartbeat信息,說明該DataNode結(jié)點(diǎn)上的塊沒有發(fā)生故障;而當(dāng)NameNode沒有收到來自DataNode的Heartbeat信息,NameNode會(huì)認(rèn)為該DataNode發(fā)生了故障,然后發(fā)出恢復(fù)命令來恢復(fù)損壞的數(shù)據(jù)。
- 請闡述HDFS在不發(fā)生故障的情況下讀文件的過程。
答:首先客戶端向NameNode發(fā)起數(shù)據(jù)讀取請求,NameNode收到后會(huì)返回?cái)?shù)據(jù)所在的DataNode結(jié)點(diǎn);NameNode建立連接后,客戶端會(huì)從DataNode上拉取數(shù)據(jù)塊,直到拉取完畢;客戶端拉取的數(shù)據(jù)同時(shí)也會(huì)校驗(yàn)數(shù)據(jù)的完整性,如果發(fā)現(xiàn)數(shù)據(jù)不完整,客戶端會(huì)重新向NameNode請求新的數(shù)據(jù)塊,直到成功拉取完畢有效的數(shù)據(jù)塊,最后將拉取的多個(gè)數(shù)據(jù)塊合并成一份文件。
- 請闡述HDFS在不發(fā)生故障的情況下寫文件的過程。
答:首先客戶端向NameNode發(fā)起寫文件請求,NameNode收到后會(huì)響應(yīng)回復(fù)多個(gè)可用DataNode結(jié)點(diǎn);NameNode建立連接后,客戶端會(huì)將文件分塊之后對每一塊數(shù)據(jù)進(jìn)行復(fù)制,并在每個(gè)DataNode結(jié)點(diǎn)上寫入,直到所有塊完成寫入,寫入完畢;然后客戶端會(huì)向NameNode發(fā)出確認(rèn)寫入完畢的信號,NameNode會(huì)收到后在元數(shù)據(jù)中記錄文件以及文件內(nèi)容塊的位置。
- 習(xí)題
- 試述在Hadoop 推出之后其優(yōu)化與發(fā)展主要體現(xiàn)在哪兩個(gè)方面。
答:Hadoop優(yōu)化與發(fā)展主要體現(xiàn)在以下兩個(gè)方面:1、架構(gòu)優(yōu)化:Hadoop架構(gòu)的發(fā)展過程中,從HDFS原始版本的單點(diǎn)架構(gòu)向HDFS HA架構(gòu)發(fā)展,多點(diǎn)架構(gòu)的優(yōu)勢可以有效的緩解名稱節(jié)點(diǎn)的單點(diǎn)故障;從MapReduce1.0的單點(diǎn)架構(gòu)向MapReduce2.0和YARN的多點(diǎn)架構(gòu)發(fā)展,多點(diǎn)架構(gòu)可以有效的減少資源占用,提高系統(tǒng)的可伸縮性、可擴(kuò)展性。2、系統(tǒng)優(yōu)化:Hadoop也在不斷的優(yōu)化內(nèi)部的調(diào)度策略,如HDFS、MapReduce、Spark等,實(shí)現(xiàn)任務(wù)更加快速、高效的執(zhí)行,使用更少的資源,并且可以擴(kuò)展到更大的規(guī)模。
- 試述HDFS1.0中只包含一個(gè)名稱節(jié)點(diǎn)會(huì)帶來哪些問題。
答:1、單點(diǎn)故障:只有一個(gè)名稱節(jié)點(diǎn),一旦發(fā)生故障,整個(gè)系統(tǒng)可能無法正常運(yùn)行,甚至?xí)l(fā)生數(shù)據(jù)丟失等問題。2、資源利用率低:由于單點(diǎn)架構(gòu),不能有效的利用系統(tǒng)資源,使得整個(gè)系統(tǒng)運(yùn)行效率不高。
- 請描述HDFS的HA架構(gòu)組成組件及其具體功能。
答:1、NameNode服務(wù):負(fù)責(zé)數(shù)據(jù)的存取控制,比如用戶對文件的讀寫控制,以及數(shù)據(jù)塊的存儲(chǔ)位置等。2、DataNode服務(wù):負(fù)責(zé)實(shí)際的數(shù)據(jù)處理和存儲(chǔ),以及心跳報(bào)告等。3、JournalNode服務(wù):負(fù)責(zé)在一個(gè)或多臺(tái)服務(wù)器上存儲(chǔ)NameNode活躍狀態(tài),以及NameNode之間的同步操作。
- 請分析HDFS的HA架構(gòu)中數(shù)據(jù)節(jié)點(diǎn)如何和名稱節(jié)點(diǎn)保持通信。
答:HDFS的HA架構(gòu)中,數(shù)據(jù)節(jié)點(diǎn)與名稱節(jié)點(diǎn)之間會(huì)采用一定的協(xié)議進(jìn)行通信,例如DataNode會(huì)通過Heartbeat來確認(rèn)當(dāng)前的進(jìn)程是否存活;名稱節(jié)點(diǎn)會(huì)通過網(wǎng)絡(luò)傳輸技術(shù),來上傳數(shù)據(jù)塊和元數(shù)據(jù)信息給數(shù)據(jù)節(jié)點(diǎn)。
- 請闡述為什么需要HDFS聯(lián)邦,即它能夠解決什么問題。
答:HDFS聯(lián)邦,是一種對HDFS服務(wù)的分布式架構(gòu),它由多個(gè)獨(dú)立的NameNode和DataNode組成。它能夠有效的減少單點(diǎn)故障的風(fēng)險(xiǎn),同時(shí)為用戶提供更多的可用空間,提升系統(tǒng)可擴(kuò)展性和可伸縮性,滿足用戶的需求。
- 請描述HDFS聯(lián)邦中“塊池”的概念,并分析為什么HDFS聯(lián)邦中的一個(gè)名稱節(jié)點(diǎn)失效,也不會(huì)影響到與它相關(guān)的數(shù)據(jù)節(jié)點(diǎn)繼續(xù)為其他名稱節(jié)點(diǎn)提供服務(wù)。
答:HDFS聯(lián)邦中的“塊池”,是指每個(gè)數(shù)據(jù)節(jié)點(diǎn)所能夠存儲(chǔ)的最大的數(shù)據(jù)塊數(shù)量,它的功能是為了更好的管理數(shù)據(jù)塊的存儲(chǔ)空間,可以根據(jù)塊池大小,為不同的DataNode分配不同的數(shù)據(jù)塊存儲(chǔ)空間,當(dāng)某個(gè)NameNode失效時(shí),它所相關(guān)的DataNode也可以繼續(xù)為其他NameNode提供服務(wù),使得整個(gè)系統(tǒng)更加高可用性。
- 請闡述MapReduce1.0體系結(jié)構(gòu)中存在的問題。
答:1、資源利用率低:MapReduce1.0沒有多余資源可利用,因此資源利用率不高,耗時(shí)也更長;2、規(guī)模受限:單點(diǎn)架構(gòu)受限,MapReduce1.0架構(gòu)受限,無法擴(kuò)展繼續(xù)受限;3、垃圾回收機(jī)制不友好:MapReduce1.0沒有良好的垃圾回收機(jī)制,導(dǎo)致資源浪費(fèi),系統(tǒng)崩潰等問題。
- 請描述YARN架構(gòu)中各組件的功能。
答:1. ResourceManager:負(fù)責(zé)管理集群資源,調(diào)度應(yīng)用程序,實(shí)時(shí)更新狀態(tài)。2. NodeManager:負(fù)責(zé)管理和監(jiān)控節(jié)點(diǎn)資源,包括內(nèi)存,磁盤,網(wǎng)絡(luò)。3. ApplicationMaster:負(fù)責(zé)管理節(jié)點(diǎn)的資源分配和調(diào)度,提供資源管理的抽象層
- 請描述在YARN框架中執(zhí)行一個(gè)MapReduce程序時(shí),從提交到完成需要經(jīng)歷的具體步驟。
答:1. 用戶提交MapReduce程序到ResourceManager。2. ResourceManager將作業(yè)分配給ApplicationMaster。3. ApplicationMaster拉取程序的Jar包,根據(jù)作業(yè)拆分成多份子任務(wù)。4. ApplicationMaster向NodeManager發(fā)起請求,申請資源。5. NodeManager拉取程序Jar,并啟動(dòng)任務(wù)。6. 每個(gè)任務(wù)完成后,ApplicationMaster通知ResourceManager,該作業(yè)完成文章來源:http://www.zghlxwxcb.cn/news/detail-719953.html
- 請對YARN和MapReduce1.0框架進(jìn)行優(yōu)劣勢對比分析。
答:優(yōu)勢: 1、 YARN擁有更大的橫向可伸縮性,可以支持更多節(jié)點(diǎn)的運(yùn)行,處理更多的作業(yè)。 2、YARN的資源管理更加靈活,能夠更好地利用系統(tǒng)資源。 3、 YARN可以支持更多的編程模型,如Tez,Spark,Kafka等。 劣勢: 1、 YARN框架在資源分配和調(diào)度上,比MapReduce1.0框架要復(fù)雜一些。 2、 YARN框架的運(yùn)行效率和性能,要低于MapReduce1.0框架。文章來源地址http://www.zghlxwxcb.cn/news/detail-719953.html
- 請分別描述Pig Tez和Kafka的功能。 答: 1、Pig Tez:Pig Tez是一種用于加速Pig數(shù)據(jù)處理的機(jī)制,它能夠利用Apache Tez的架構(gòu)構(gòu)建一種任務(wù)圖,可以把多個(gè)作業(yè)組合到一起,用于把一些輕量作業(yè)鏈接起來; 2、Kafka:Kafka是一種分布式發(fā)布訂閱的消息系統(tǒng),它通過維護(hù)一個(gè)大容量的集群,能夠支持百萬級的消息訂閱,支持高吞吐量和低延遲,能夠用于大規(guī)模的數(shù)據(jù)收集、聚合和處理;
到了這里,關(guān)于頭歌大數(shù)據(jù)作業(yè)二:搭建Hadoop環(huán)境及HDFS的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!