版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
4教案課程名稱:Hadoop大數(shù)據(jù)平臺構(gòu)建與應(yīng)用教程所在學(xué)院:信息工程學(xué)院授課班級:授課教師:建議學(xué)時48-76(至學(xué)年第二學(xué)期)
目錄TOC\o"1-9"\h\u39121.1大數(shù)據(jù)技術(shù)概述 450151.2虛擬機安裝 10257971.3Linux操作系統(tǒng)配置 14281282.1Hadoop本地模式搭建 19224792.2Hadoop偽分布式集群搭建1 23227032.3Hadoop偽分布式集群搭建2 28283422.4Hadoop完全分布式集群搭建1 3393702.5Hadoop完全分布式搭建2 395429項目三Hadoop分布式文件系統(tǒng)操作 48240653.1HDFS簡介 48326253.2HDFS命令行操作 5511773.3HDFSJavaAPI操作 6125063項目四Mapreduce分布式計算編程實戰(zhàn) 66184604.1Mapreduce概述及工作原理 6635414.2Mapreduce編程組件 72152464.3Mapreduce經(jīng)典案例——倒排索引 76158454.4Mapreduce經(jīng)典案例——數(shù)據(jù)去重 82153034.5Mapreduce經(jīng)典案例——TopN 8732029項目五Zookeeper分布式協(xié)調(diào)服務(wù)操作 9227417項目七HBase數(shù)據(jù)庫操作 1278801項目八Hive數(shù)據(jù)倉庫操作 144295108.1hive簡介 144279218.2hive安裝和管理 15020948.3hive數(shù)據(jù)庫操作 157295768.4hive內(nèi)部表和外部表 161145528.5hive分區(qū)表 165231658.6hive桶表 169188778.7hive數(shù)據(jù)操作 17217568項目九Sqoop數(shù)據(jù)遷移操作 178272689.1sqoop安裝和指令 17891879.2MySql表數(shù)據(jù)導(dǎo)入HDFS 182272829.3MySql表數(shù)據(jù)導(dǎo)入Hive 18787879.4sqoop數(shù)據(jù)導(dǎo)出 190
項目五Zookeeper分布式協(xié)調(diào)服務(wù)操作5.1Zookeeper機制簡介教學(xué)項目(單元)項目五Zookeeper分布式協(xié)調(diào)服務(wù)操作5.1Zookeeper機制簡介授課班級21大數(shù)據(jù)授課學(xué)時2授課地點D506授課時間2023.3.15選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析Zookeeper是基于分布式計算的核心概念而設(shè)計的,主要目的是給開發(fā)人員提供一套容易理解和開發(fā)的接口,從而簡化分布式系統(tǒng)構(gòu)建的服務(wù)。本章針對Zookeeper的數(shù)據(jù)模型、機制和Zookeeper集群的部署及相關(guān)操作等知識進行詳細(xì)講解。學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)二年級學(xué)生;學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),同時也以及學(xué)完hadoop集群搭建、HDFS,但是學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)1、了解Zookeeper的概念和特性;2、理解Zookeeper數(shù)據(jù)模型;能力目標(biāo)掌握Zookeeper的Watch機制和選舉機制。素質(zhì)目標(biāo)培養(yǎng)學(xué)生嚴(yán)密的邏輯思維能力;教學(xué)重難點1、重點:Zookeeper數(shù)據(jù)模型、Zookeeper的Watch機制和選舉機制;2、難點:Zookeeper的Watch機制和選舉機制。教學(xué)策略本次課為課程概述部分,理論型課。本次設(shè)計以PPT講授為主,使用講故事,講案例方式開展,并結(jié)合多媒體、職教云等信息化手段進行,通過分享演示、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程
教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1.通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2.通過職教云平臺上傳PPT等文檔和微課等視頻資源:=1\*GB3①Zookeeper的概念和特性。3.將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1.通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2.根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。1.通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧新課導(dǎo)入(5’)1、簡單復(fù)習(xí)HDFS理論以及shell操作。2、ApacheZookeeper旨在減輕構(gòu)建健壯的分布式系統(tǒng)的服務(wù)。Zookeeper是基于分布式計算的核心概念而設(shè)計的,主要目的是給開發(fā)人員提供一套容易理解和開發(fā)的接口,從而簡化分布式系統(tǒng)構(gòu)建的服務(wù)。學(xué)生聽課,分組討論,每組討論出一個答案并起立分享講授新課(15’)Zookeeper的特性Zookeeper是一個分布式協(xié)調(diào)服務(wù)的開源框架,它是由Google的Chubby開源實現(xiàn)。Zookeeper主要用來解決分布式集群中應(yīng)用系統(tǒng)的一致性問題和單點故障問題,例如如何避免同時操作同一數(shù)據(jù)造成臟讀的一致性問題等。Zookeeper具有全局?jǐn)?shù)據(jù)一致性、可靠性、順序性、原子性以及實時性,可以說Zookeeper的其他特性都是為滿足Zookeeper全局?jǐn)?shù)據(jù)一致性這一特性。Zookeeper集群是一個主從集群,它一般是由一個Leader(領(lǐng)導(dǎo)者)和多個Follower(跟隨者)組成。此外,針對訪問量比較大的Zookeeper集群,還可新增Observer(觀察者)。Zookeeper集群中的三種角色各司其職,共同完成分布式協(xié)調(diào)服務(wù)。Zookeeper集群角色學(xué)生聽講、互動小組討論(5’)問題:請談?wù)剬ookeeper集群角色的理解。學(xué)生分組討論,每組討論出一個答案并起立分享講授新課(15’)Zookeeper數(shù)據(jù)存儲結(jié)構(gòu)Zookeeper的數(shù)據(jù)存儲結(jié)構(gòu)和標(biāo)準(zhǔn)文件系統(tǒng)非常類似,擁有一個層次命名空間,用斜杠進行分割,都采用樹形層次結(jié)構(gòu),那Zookeeper是由什么組成樹呢?Zookeeper是由節(jié)點組成的樹,樹中的每個節(jié)點被稱為—Znode。每個節(jié)點都可以擁有子節(jié)點。每一個Znode默認(rèn)能夠存儲1MB的數(shù)據(jù),每個Znode都可以通過其路徑唯一標(biāo)識,如圖中第三層的第一個Znode,,它的路徑是/app1/p_1。Zookeeper數(shù)據(jù)模型中每個Znode都是由三部分組成,分別是stat、data、children。Znode的類型。Znode的類型在創(chuàng)建時被指定,一旦創(chuàng)建就無法改變。Znode有兩種類型,分別是臨時節(jié)點和永久節(jié)點。臨時節(jié)點。該生命周期依賴于創(chuàng)建它們的會話,一旦會話結(jié)束,臨時節(jié)點將會被自動刪除,也可以手動刪除。雖然每個臨時的Znode都會綁定一個客戶端,但它們對所有的客戶端還是可見的。需要注意的是臨時節(jié)點不允許擁有子節(jié)點。永久節(jié)點。該生命周期不依賴于會話,并且只有在客戶端顯示執(zhí)行刪除操作的時候,它們才能被刪除。Zookeeper中的每個Znode都包含了一系列的屬性,具體屬性如下所示。學(xué)生聽講、互動小組討論(5’)問題:請談?wù)剬ookeeper節(jié)點的理解。學(xué)生分組討論,每組討論出一個答案并起立分享講授新課(10’)Zookeeper的Watcher機制Watch機制簡介在ZooKeeper中,引入了Watch機制來實現(xiàn)這種分布式的通知功能。ZooKeeper允許客戶端向服務(wù)端注冊一個Watch監(jiān)聽,當(dāng)服務(wù)端的一些事件觸發(fā)了這個Watch,那么就會向指定客戶端發(fā)送一個事件通知,來實現(xiàn)分布式的通知功能。Watch機制的特點。一次性觸發(fā)、事件封裝、異步發(fā)送、先注冊再觸發(fā)。Watch機制的通知狀態(tài)和事件類型同一個事件類型在不同的連接狀態(tài)中代表的含義有所不同。常見的連接狀態(tài)和事件類型如下所示。學(xué)生聽講、互動講授新課(10’)Zookeeper的選舉機制Zookeeper為了保證各節(jié)點的協(xié)同工作,在工作時需要一個Leader角色,而Zookeeper默認(rèn)采用FastLeaderElection算法,且投票數(shù)大于半數(shù)則勝出的機制。Zookeeper為了保證各節(jié)點的協(xié)同工作,在工作時需要一個Leader角色,而Zookeeper默認(rèn)采用FastLeaderElection算法,且投票數(shù)大于半數(shù)則勝出的機制。Zookeeper選舉機制有兩種類型,分別為全新集群選舉和非全新集群選舉。全新集群選舉是新搭建起來的,沒有數(shù)據(jù)ID和邏輯時鐘的數(shù)據(jù)影響集群的選舉;非全新集群選舉時是優(yōu)中選優(yōu),保證Leader是Zookeeper集群中數(shù)據(jù)最完整、最可靠的一臺服務(wù)器。1.全新集群選舉。假設(shè)有5臺編號分別是1~5的服務(wù)器,全新集群選舉過程如下:(1)服務(wù)器1啟動,先給自己投票;其次,發(fā)投票信息,由于其它機器還沒有啟動所以它無法接收到投票的反饋信息,因此服務(wù)器1的狀態(tài)一直屬于競選狀態(tài)。(2)服務(wù)器2啟動,先給自己投票;其次,在集群中啟動Zookeeper服務(wù)的機器發(fā)起投票對比,它會與服務(wù)器1交換結(jié)果,由于服務(wù)器2編號大,服務(wù)器2勝出,服務(wù)器1會將票投給服務(wù)器2,此時服務(wù)器2的投票數(shù)并沒有大于集群半數(shù),兩個服務(wù)器狀態(tài)依舊是競選狀態(tài)。(3)服務(wù)器3啟動,先給自己投票;其次,與之前啟動的服務(wù)器1、2交換信息,服務(wù)器3的編號最大,服務(wù)器3勝出,服務(wù)器1、2會將票投給服務(wù)器3,此時投票數(shù)正好大于半數(shù),所以服務(wù)器3成為領(lǐng)導(dǎo)者狀態(tài),服務(wù)器1、2成為追隨者狀態(tài)。(4)服務(wù)器4啟動,先給自己投票;其次,與之前啟動的服務(wù)器1、2、3交換信息,盡管服務(wù)器4的編號大,但是服務(wù)器3已經(jīng)勝,所以服務(wù)器4只能成為追隨者狀態(tài)。(5)服務(wù)器5啟動,同服務(wù)器4一樣,均成為追隨者狀態(tài)。2.非全新集群選舉(1)統(tǒng)計邏輯時鐘是否相同,邏輯時鐘小,則說明途中可能存在宕機問題,因此數(shù)據(jù)不完整,那么該選舉結(jié)果被忽略,重新投票選舉。(2)統(tǒng)一邏輯時鐘后,對比數(shù)據(jù)ID值,數(shù)據(jù)ID反應(yīng)數(shù)據(jù)的新舊程度,因此數(shù)據(jù)ID大的勝出。(3)如果邏輯時鐘和數(shù)據(jù)ID都相同的情況下,那么比較服務(wù)器ID(編號),值大則勝出。學(xué)生聽講、互動小組討論(5’)問題:請談?wù)剬ookeeper選舉機制的理解。學(xué)生分組討論,每組討論出一個答案并起立分享課堂小結(jié)(5’)Zookeeper數(shù)據(jù)模型、Zookeeper的Watch機制和選舉機制課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1.教師評價2.答疑指導(dǎo)3、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。技術(shù)型理論課較枯燥,需要多跟學(xué)生互動交流,激發(fā)學(xué)生興趣。
5.2Zookeeper分布式集群安裝部署教學(xué)項目(單元)項目五Zookeeper分布式協(xié)調(diào)服務(wù)操作5.2Zookeeper分布式集群安裝部署授課班級21大數(shù)據(jù)授課學(xué)時2授課地點D506授課時間2023.3.17選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析Zookeeper典型應(yīng)用場景、Zookeeper安裝部署學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)二年級學(xué)生;學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),有hadoop集群、HDFS操作基礎(chǔ),但是學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)熟悉Zookeeper配置文件能力目標(biāo)掌握Zookeeper安裝部署素質(zhì)目標(biāo)培養(yǎng)實踐動手能力、嚴(yán)謹(jǐn)細(xì)致的工匠精神、不驕不躁的調(diào)試心態(tài)。教學(xué)重難點1、重點:Zookeeper安裝部署。2、難點:Zookeeper安裝部署。教學(xué)策略本次課為實訓(xùn)型課,通過教師演示、學(xué)生練習(xí)、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1.通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2.通過職教云平臺上傳文檔和視頻等自主預(yù)習(xí)資源:=1\*GB3①Zookeeper安裝部署;3.將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1.通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2.根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。1.通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧新課導(dǎo)入(5’)回顧上節(jié)課內(nèi)容,講解Zookeeper分布式集群部署1.對上節(jié)課留的作業(yè)進行答疑。2.回顧上節(jié)課的內(nèi)容,引出本節(jié)課的主題。通過上節(jié)課的學(xué)習(xí),我們對Zookeeper提供的選舉機制有了一定的認(rèn)識。要想深入學(xué)習(xí)和掌握Zookeeper的相關(guān)應(yīng)用,首先必須得學(xué)會部署一個屬于自己的Zookeeper集群。本節(jié)課將針對Zookeeper分布式集群的部署進行詳細(xì)講解。學(xué)生回答小組討論(5’)問題1:hadoop集群搭建主要工作是做什么?Zookeeper安裝部署和hadoop集群搭建類似。學(xué)生聽講分組討論互動分享講練結(jié)合(45’)Zookeeper安裝部署把zookeeper-3.4.10.tar.gz拷貝在/home/master/apps目錄,解壓tar–zxvfzookeeper-3.4.10.tar.gz進入zookeeper目錄cdzookeeper-3.4.10創(chuàng)建一個文件夾mkdirzkdata并復(fù)制路徑pwd進入conf目錄cdconf復(fù)制文件,并重命名cpzoo_sample.cfgzoo.cfg編輯文件vimzoo.cfg(1)在dataDir中修改路徑(2)在最后一行加入增加如下配置#######################cluster##########################server.1=master:2888:3888server.2=hadoop1:2888:3888server.3=hadoop2:2888:3888配置參數(shù)解讀Server.A=B:C:DA是一個數(shù)字,表示這個是第幾號服務(wù)器;B是這個服務(wù)器的IP地址;C是這個服務(wù)器與集群中的Leader服務(wù)器交換信息的端口;D是萬一集群中的Leader服務(wù)器掛了,需要一個端口來重新進行選舉,選出一個新的Leader,而這個端口就是用來執(zhí)行選舉時服務(wù)器相互通信的端口。集群模式下配置一個文件myid,這個文件在dataDir目錄下,這個文件里面有一個數(shù)據(jù)就是A的值,Zookeeper啟動時讀取此文件,拿到里面的數(shù)據(jù)與zoo.cfg里面的配置信息比較從而判斷到底是哪個server。進入zkdata目錄cd/home/master/apps/zookeeper-3.4.10/zkdata目錄(1)創(chuàng)建一個myid的文件touchmyid(2)編輯myid文件vimmyid在文件中添加與server對應(yīng)的編號:如1拷貝配置好的zookeeper到其他機器上scp-r/home/master/apps/zookeeper-3.4.10hadoop1:/home/master/apps/scp-r/home/master/apps/zookeeper-3.4.10hadoop2:/home/master/apps/分別進入hadoop1,hadoop2修改/home/master/apps/zookeeper-3.4.10/zkdata/myid文件內(nèi)的ID內(nèi)容為2、3并分別在三臺節(jié)點上,配置zookeeper的環(huán)境變量:vim/etc/profile輸入以下內(nèi)容#zookeeperexportZK_HOME=/home/master/apps/zookeeper-3.4.10exportPATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZK_HOME}/bin輸入:source/etc/profile使環(huán)境變量立即生效學(xué)生先聽后動手實踐講練結(jié)合(10’)zookeeper啟動分別在3臺節(jié)點上執(zhí)行:[root@masterzookeeper-3.4.10]#bin/zkServer.shstart[root@masterzookeeper-3.4.10]#bin/zkServer.shstatusZookeeper在大多數(shù)節(jié)點存活下,才會有效。所以啟動第一臺的時候,會報錯,等三臺節(jié)點都啟動完畢之后,就會正常了。學(xué)生先聽后動手實踐學(xué)生分享(15’)Zookeeper安裝心得代表學(xué)生分享經(jīng)驗和失誤任務(wù)小結(jié)(5’)Zookeeper安裝步驟流程課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1.教師評價2.答疑指導(dǎo)3、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。配置文件編寫需要養(yǎng)成良好的風(fēng)格,降低出錯率;
5.3Zookeeper命令行操作
教學(xué)項目(單元)項目五Zookeeper分布式協(xié)調(diào)服務(wù)操作5.3Zookeeper命令行操作授課班級21大數(shù)據(jù)授課學(xué)時2授課地點D506授課時間2023.3.20選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析以學(xué)習(xí)Zookeeper的Shell命令為主學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)二年級學(xué)生;學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),已經(jīng)完成Hadoop集群的搭建,但是學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)熟悉Zookeeper的shell命令能力目標(biāo)掌握Zookeeper的shell命令簡單應(yīng)用素質(zhì)目標(biāo)培養(yǎng)實踐動手能力、嚴(yán)謹(jǐn)細(xì)致的工匠精神、不驕不躁的調(diào)試心態(tài)。教學(xué)重難點1、重點:Zookeeper的shell命令。2、難點:Zookeeper的shell操作。教學(xué)策略本次課為實訓(xùn)型課,通過教師演示、學(xué)生練習(xí)、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1.通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2.通過職教云平臺上傳文檔和視頻等自主預(yù)習(xí)資源:=1\*GB3①Zookeeper的shell命令;3.將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1.通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2.根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。1.通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧(20’)Zookeeper安裝部署流程學(xué)生回答講練結(jié)合(20’)Zookeeper常用命令Zookeeper命令行工具類似于Linux的Shell環(huán)境,能夠簡單地實現(xiàn)對Zookeeper進行訪問、數(shù)據(jù)創(chuàng)建、數(shù)據(jù)修改等的一系列操作。啟動Zookeeper,并連接Zookeeper服務(wù),系統(tǒng)會輸出Zookeeper集群的相關(guān)配置信息,并在屏幕輸出“welcometoZookeeper!”等信息。學(xué)生先聽后動手實踐講練結(jié)合(30’)項目實訓(xùn)-任務(wù)導(dǎo)入1.顯示所有操作命令在客戶端輸入help,屏幕會輸出所有可用的Shell命令。2.查看當(dāng)前Zookeeper中所包含的內(nèi)容在客戶端輸入ls/,屏幕會輸出Zookeeper中所包含的內(nèi)容。3.查看當(dāng)前節(jié)點數(shù)據(jù)在客戶端輸入ls2/,屏幕會輸出當(dāng)前節(jié)點數(shù)據(jù)并且能看到更新次數(shù)等數(shù)據(jù)。4.創(chuàng)建節(jié)點在命令行輸入創(chuàng)建節(jié)點的命令,來創(chuàng)建一個臨時節(jié)點。5.獲取節(jié)點在命令行輸入獲取節(jié)點的命令,來獲取Zookeeper指定節(jié)點的數(shù)據(jù)內(nèi)容以及屬性信息。6.修改節(jié)點在命令行輸入修改節(jié)點的命令,對前面創(chuàng)建的臨時節(jié)點testnode-temp進行修改,使得節(jié)點內(nèi)容變成“123”的操作。7.監(jiān)聽節(jié)點監(jiān)聽節(jié)點就是監(jiān)聽節(jié)點變化,概括為三個過程??蛻舳讼蚍?wù)端注冊Watch、服務(wù)端事件發(fā)生觸發(fā)Watch、客戶端回調(diào)Watch得到觸發(fā)事件的情況。8.刪除節(jié)點使用delete命令刪除節(jié)點時,若要刪除的節(jié)點存在子節(jié)點,就無法刪除該節(jié)點,必須先刪除子節(jié)點,才可刪除父節(jié)點。使用rmr命令遞歸刪除節(jié)點,不論該節(jié)點下是否存在子節(jié)點,可以直接刪除。學(xué)生聽課討論課堂作業(yè)(15’)項目驗收練習(xí)教材課后習(xí)題任務(wù)小結(jié)(5’)Zookeepershell命令使用總結(jié)課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1.教師評價2.答疑指導(dǎo)3、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。配置文件編寫需要養(yǎng)成良好的風(fēng)格,降低出錯率;
5.4ZookeeperJavaAPI操作
教學(xué)項目(單元)項目五Zookeeper分布式協(xié)調(diào)服務(wù)操作5.4ZookeeperJavaAPI操作授課班級21大數(shù)據(jù)授課學(xué)時2授課地點D506授課時間2023.3.22選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析以學(xué)習(xí)Zookeeper的JavaAPI函數(shù)為主學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)二年級學(xué)生;學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),已經(jīng)完成Hadoop集群的搭建、HDFS、Zookeeper的安裝,但是學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)熟悉Zookeeper的JavaAPI函數(shù)能力目標(biāo)掌握Zookeeper的JavaAPI函數(shù)簡單應(yīng)用素質(zhì)目標(biāo)培養(yǎng)實踐動手能力、嚴(yán)謹(jǐn)細(xì)致的工匠精神、不驕不躁的調(diào)試心態(tài)。教學(xué)重難點1、重點:Zookeeper的JavaAPI函數(shù)。2、難點:Zookeeper的JavaAPI函數(shù)。教學(xué)策略本次課為實訓(xùn)型課,通過教師演示、學(xué)生練習(xí)、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1.通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2.通過職教云平臺上傳文檔和視頻等自主預(yù)習(xí)資源:=1\*GB3①Zookeeper的JavaAPI;3.將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1.通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2.根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。1.通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧(10’)Zookeepershell命令操作學(xué)生回答講練結(jié)合(15’)ZookeeperJavaAPIZookeeperAPI包含五個包:org.apache.zookeeperorg.apache.zookeeper.dataorg.apache.zookeeper.serverorg.apache.zookeeper.server.quorumorg.apache.zookeeper.server.upgradeZookeeperJavaAPI介紹學(xué)生先聽后動手實踐講練結(jié)合(25’)通過JavaAPI操作Zookeeper1、啟動Zookeeper服務(wù)并連接Zookeeper服務(wù)。2、添加依賴。在Maven項目HadoopDemo添加Zookeeper相關(guān)的依賴。3、在項目src文件夾下創(chuàng)建cn.itcast.zookeepe包,并在包下創(chuàng)建ZookeeperTest.java文件,用于操作Zookeeper,例如創(chuàng)建節(jié)點、獲取節(jié)點、修改節(jié)點、判斷節(jié)點是否存在以及刪除節(jié)點。參考教材源碼學(xué)生聽課討論講授新課(20’)Zookeeper典型應(yīng)用場景1、數(shù)據(jù)發(fā)布與訂閱。數(shù)據(jù)發(fā)布與訂閱模型,即所謂的全局配置中心,顧名思義就是發(fā)布者將需要全局統(tǒng)一管理的數(shù)據(jù)發(fā)布到Zookeeper節(jié)點上,供訂閱者動態(tài)獲取數(shù)據(jù),實現(xiàn)配置信息的集中式管理和動態(tài)更新。例如全局的配置信息,服務(wù)式服務(wù)框架的服務(wù)地址列表等就非常適合使用。應(yīng)用中用到的一些配置信息放到Zookeeper上進行集中管理。分布式搜索服務(wù)中,索引的元信息和服務(wù)器集群機器的節(jié)點狀態(tài)存放在Zookeeper的一些指定節(jié)點,供各個客戶端訂閱使用。分布式日志收集系統(tǒng)中,這個系統(tǒng)的核心工作是收集分布在不同機器的日志。系統(tǒng)中有些信息需要動態(tài)獲取,并且還會存在人工手動去修改這個信息的發(fā)問。2、統(tǒng)一命名服務(wù)。命名服務(wù)也是分布式系統(tǒng)中比較常見的一類場景。在分布式系統(tǒng)中,通過使用命名服務(wù),客戶端應(yīng)用能夠根據(jù)指定名字來獲取資源服務(wù)的地址,提供者等信息。阿里開源的分布式服務(wù)框架Dubbo中使用ZooKeeper來作為其命名服務(wù),維護全局的服務(wù)地址列表。3、分布式鎖分布式鎖,這個主要得益于ZooKeeper為我們保證了數(shù)據(jù)的強一致性。鎖服務(wù)可以分為兩類,一個是保持獨占,另一個是控制時序。所謂保持獨占,就是所有試圖來獲取這個鎖的客戶端,最終只有一個客戶端可以成功獲得這把鎖,從而執(zhí)行相應(yīng)操作;控制時序則是所有試圖來獲取鎖的客戶端,最終都會被執(zhí)行,存在全局時序,客戶端在臨時非序列化節(jié)點下創(chuàng)建臨時序列化節(jié)點,根據(jù)序列號大小進行時序性操作。當(dāng)所有客戶端都去創(chuàng)建臨時非序列化節(jié)點,那么最終成功創(chuàng)建的客戶端也擁有了這把鎖,擁有了訪問該數(shù)據(jù)的權(quán)限,當(dāng)操作完畢后,斷開與Zookeeper連接,那該臨時節(jié)點就會被刪除,如果其他客戶端需要操作這個文件,客戶端只需監(jiān)聽這個目錄是否存在即可。小組討論(5’)問題:請談?wù)刏ookeeper還有哪些典型應(yīng)用場景。學(xué)生分組討論,每組討論出一個答案并起立分享課堂作業(yè)(10’)項目驗收練習(xí)教材本章課后習(xí)題任務(wù)小結(jié)(5’)ZookeeperJavaAPI命令使用總結(jié)課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1.教師評價2.答疑指導(dǎo)3、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。代碼編寫需要有良好的風(fēng)格,遵循縮進規(guī)律;
項目六Hadoop高可用集群搭建6.1hadoop2.0及hadoop高可用概述教學(xué)項目(單元)項目六Hadoop高可用集群搭建——hadoop2.0及hadoop高可用概述授課班級19大數(shù)據(jù)授課學(xué)時2授課地點E410授課時間2021.9.141-2選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析本次課是大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)職業(yè)能力核心課程《Hadoop大數(shù)據(jù)大數(shù)據(jù)開發(fā)技術(shù)》第8章hadoop高可用課程中的概述部分。根據(jù)高等職業(yè)教育“專業(yè)目錄及專業(yè)簡介”以及專業(yè)課程標(biāo)準(zhǔn),本次課程針對hadoop高可用的相關(guān)入門概念進行詳細(xì)地講解。學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)三年級學(xué)生。學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),也完成了hadoop前導(dǎo)章節(jié)的學(xué)習(xí),同時學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)1、理解Yarn的體系結(jié)構(gòu)和工作流程;2、理解HDFS的高可用架構(gòu);能力目標(biāo)掌握Yarn的體系結(jié)構(gòu)和工作流程以及HDFS高可用架構(gòu)素質(zhì)目標(biāo)培養(yǎng)學(xué)生嚴(yán)密的邏輯思維能力以及嚴(yán)謹(jǐn)細(xì)致的工匠精神;教學(xué)重難點1、重點:Yarn的體系結(jié)構(gòu)和工作流程,HDFS的高可用架構(gòu);2、難點:Yarn的工作流程。教學(xué)策略本次課為課程概述部分,理論型課。本次設(shè)計以PPT講授為主,使用講故事,講案例方式開展,并結(jié)合多媒體、職教云等信息化手段進行,通過分享演示、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1、通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2、通過職教云平臺上傳PPT等文檔和微課等視頻資源:=1\*GB3①Yarn的體系結(jié)構(gòu)和工作流程以及HDFS高可用架構(gòu);3、將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1、通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2、根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配情景導(dǎo)入、小組討論(3’)通過提問,引出hadoop不同版本對比以及HDFS高可用作用。問題:談?wù)勀闼私獾膆adoop版本?講授新課(5’)Hadoop2.0的變化Hadoop2.0比起Hadoop1.0來說,最大的改進是加入了資源調(diào)度框架Yarn,我們依舊分為HDFS和Yarn/MapReduce2.0兩部分來講述Hadoop的改進。學(xué)生聽講、互動講授新課(10’)Yarn體系結(jié)構(gòu)學(xué)生聽講、互動小組討論(10’)講授新課(30’)Yarn工作流程教師主持、點評總結(jié)學(xué)生查閱資料開展自主學(xué)習(xí)。每組學(xué)生代表上臺講授、組間互評講授新課(15’)HDFS高可用架構(gòu)學(xué)生聽講、互動小組討論(15’)問題:談?wù)剬DFS高可用的理解。課堂小結(jié)(2’)總結(jié)Yarn的體系結(jié)構(gòu)和工作流程以及HDFS高可用架構(gòu)課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1、教師評價、答疑指導(dǎo);2、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。理論多的課程多使用講故事等趣味性的形式來講授。
6.2hadoop高可用搭建教學(xué)項目(單元)項目六hadoop高可用集群6.2hadoop高可用搭建授課班級19大數(shù)據(jù)授課學(xué)時4授課地點E410授課時間2021.9.163-4選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站、釘釘、雨課堂教學(xué)內(nèi)容分析本次課是大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)職業(yè)能力核心課程《Hadoop大數(shù)據(jù)大數(shù)據(jù)開發(fā)技術(shù)》第8章hadoop高可用課程中的高可用平臺搭建部分。根據(jù)高等職業(yè)教育“專業(yè)目錄及專業(yè)簡介”以及專業(yè)課程標(biāo)準(zhǔn),本次課程通過演示高可用的基礎(chǔ)搭建部分。學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)三年級學(xué)生。學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),對mapreduce有初步認(rèn)識,同時學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)理解hadoop高可用的概念能力目標(biāo)掌握hadoop高可用的搭建。素質(zhì)目標(biāo)培養(yǎng)學(xué)生嚴(yán)密的邏輯思維能力以及嚴(yán)謹(jǐn)細(xì)致的工匠精神;教學(xué)重難點1、重點:掌握hadoop高可用的搭建。2、難點:hadoop高可用搭建調(diào)錯。教學(xué)策略本次課為實訓(xùn)型課,通過教師演示、學(xué)生練習(xí)、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1、通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2、通過職教云平臺上傳PPT等文檔和微課等視頻資源:=1\*GB3①掌握hadoop高可用的搭建;3、將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1、通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2、根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧(10’)我們知道namenode是整個hdfs的核心,如果namenode掛了,那么整個hdfs文件系統(tǒng)也不能提供服務(wù),所以hadoop對hdfs提供了高可用的方案,即HadoopHA,hdfs的高可用提供了兩種方案,一種是基于QJM(QuorumJournalManager)的,一種是基于NFS的,我們用的一般都是基于QJM的,所以這里也是講基于QJM的高可用,高可用用來解決NameNode單點故障的問題。解決的方法是在HDFS集群中設(shè)置多個NameNode節(jié)點。那么提供多個namenode必定存在新的問題:1、如何保證NameNode內(nèi)存中元數(shù)據(jù)數(shù)據(jù)一致,并保證編輯日志文件的安全性。2、多個NameNode如何協(xié)作3、客戶端如何能正確地訪問到可用的那個NameNode。4、怎么保證任意時刻只能有一個NameNode處于對外服務(wù)狀態(tài)針對如上問題,hadoop提供了如下解決方案:對于保證NameNode元數(shù)據(jù)的一致性和編輯日志的安全性,采用Zookeeper來存儲編輯日志文件。兩個NameNode一個是Active狀態(tài)的,一個是Standby狀態(tài)的,一個時間點只能有一個Active狀態(tài)的。NameNode提供服務(wù),兩個NameNode上存儲的元數(shù)據(jù)是實時同步的,當(dāng)Active的NameNode出現(xiàn)問題時,通過Zookeeper實時切換到Standby的NameNode上,并將Standby改為Active狀態(tài)??蛻舳送ㄟ^連接一個Zookeeper的代理來確定當(dāng)時哪個NameNode處于服務(wù)狀態(tài)。任務(wù)解析(5’)Namenode:master、hadoop1;Resourcemanager:master、hadoop1;JPS查看進程。任務(wù)實施(70’)1.進入/home/master/apps目錄2.創(chuàng)建一個新的目錄mkdirha3.復(fù)制一個hadoop2.7.3文件。cp-rhadoop-2.7.3ha/4.進入ha下面的hadoop目錄把目錄多余的文件進行刪除,使用命令rm-rfdatarm-rflogs5.配置文件(1)進入etc/hadoop中配置core-site.xml<configuration><!--把兩個NameNode)的地址組裝成一個集群mycluster--><property><name>fs.defaultFS</name><value>hdfs://mycluster</value></property><!--指定hadoop運行時產(chǎn)生文件的存儲目錄--><property><name>hadoop.tmp.dir</name><value>/home/master/apps/ha/hadoop-2.7.3/data/tmp</value></property><property><name>ha.zookeeper.quorum</name><value>master:2181,hadoop1:2181,hadoop2:2181</value></property></configuration>(2)配置hdfs-site.xml<configuration><!--完全分布式集群名稱--><property><name>services</name><value>mycluster</value></property><!--集群中NameNode節(jié)點都有哪些--><property><name>nodes.mycluster</name><value>nn1,nn2</value></property><!--nn1的RPC通信地址--><property><name>node.rpc-address.mycluster.nn1</name><value>master:9000</value></property><!--nn2的RPC通信地址--><property><name>node.rpc-address.mycluster.nn2</name><value>hadoop1:9000</value></property><!--nn1的http通信地址--><property><name>node.http-address.mycluster.nn1</name><value>master:50070</value></property><!--nn2的http通信地址--><property><name>node.http-address.mycluster.nn2</name><value>hadoop1:50070</value></property><!--指定NameNode元數(shù)據(jù)在JournalNode上的存放位置--><property><name>node.shared.edits.dir</name><value>qjournal://master:8485;hadoop1:8485;hadoop2:8485/mycluster</value></property><!--配置隔離機制,即同一時刻只能有一臺服務(wù)器對外響應(yīng)--><property><name>dfs.ha.fencing.methods</name><value>sshfence</value></property><!--使用隔離機制時需要ssh無秘鑰登錄--><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><!--聲明journalnode服務(wù)器存儲目錄--><property><name>dfs.journalnode.edits.dir</name><value>/home/master/apps/ha/hadoop-2.7.3/data/jn</value></property><!--關(guān)閉權(quán)限檢查--><property><name>dfs.permissions.enable</name><value>false</value></property><!--訪問代理類:client,mycluster,active配置失敗自動切換實現(xiàn)方式--><property><name>vider.mycluster</name><value>node.ha.ConfiguredFailoverProxyProvider</value></property><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property></configuration>(3)yarn-site.xml<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--啟用resourcemanagerha--><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!--聲明兩臺resourcemanager的地址--><property><name>yarn.resourcemanager.cluster-id</name><value>cluster-yarn1</value></property><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><property><name>yarn.resourcemanager.hostname.rm1</name><value>master</value></property><property><name>yarn.resourcemanager.hostname.rm2</name><value>hadoop1</value></property><!--指定zookeeper集群的地址--><property><name>yarn.resourcemanager.zk-address</name><value>master:2181,hadoop1:2181,hadoop2:2181</value></property><!--啟用自動恢復(fù)--><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property><!--指定resourcemanager的狀態(tài)信息存儲在zookeeper集群--><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property></configuration>拷貝配置好的hadoop環(huán)境到其他節(jié)點scp-r/home/master/apps/ha/hadoop1:/home/master/apps/scp-r/home/master/apps/ha/hadoop2:/home/master/apps/三、啟動1. 在所有節(jié)點上,輸入以下命令啟動journalnode服務(wù)(1)在每個節(jié)點(master)上,輸入以下命令啟動journalnode服務(wù):sbin/hadoop-daemons.shstartjournalnode(這里的sbin不能少,確保啟動的是ha里面的hadoop,而不是之前偽分布式的hadoop)(2)在[nn1]master上,對其進行格式化:bin/hdfsnamenode-format(rm-rftmp;bin/hdfsnamenode-format)(3)在[nn1]master上,初始化HA在Zookeeper中狀態(tài):bin/hdfszkfc-formatZK(4)在[nn1]master上啟動(不用啟動,已經(jīng)啟動了)sbin/hadoop-daemon.shstartnamenode(5)在hadoop1[nn2]上,同步nn1的元數(shù)據(jù)信息:bin/hdfsnamenode-bootstrapStandby(6)啟動hadoop1[nn2]上:sbin/hadoop-daemon.shstartnamenode(7)啟動所有DataNode在master上sbin/hadoop-daemons.shstartdatanode(8)在各個NameNode節(jié)點上啟動DFSZKFailoverController,先在哪臺機器啟動,哪個機器的NameNode就是ActiveNameNodesbin/hadoop-daemons.shstartzkfc(9)查看[nn1]是否為Activebin/hdfshaadmin-getServiceStatenn12. 啟動YARN(1)在master中執(zhí)行:sbin/start-yarn.sh(2)在hadoop1中執(zhí)行:sbin/yarn-daemon.shstartresourcemanager(3)查看服務(wù)狀態(tài)bin/yarnrmadmin-getServiceStaterm15. 驗證(1)將ActiveNameNode進程killkill-9namenode的進程id四、第二次及以后啟動HA高可用節(jié)點和zookeeper1、分別在3臺節(jié)點的zookeeper-3.4.10上執(zhí)行:bin/zkServer.shstartbin/zkServer.shstatus2、在主節(jié)點的ha目錄下輸入以下命令,啟動HDFS服務(wù)sbin/start-dfs.sh3、在master中執(zhí)行:sbin/start-yarn.sh4、在hadoop1中執(zhí)行:sbin/yarn-daemon.shstartresourcemanager學(xué)生實訓(xùn)(60’)按照“任務(wù)實施”環(huán)節(jié)教師演示以及給出的代碼進行自由練習(xí)。學(xué)生實訓(xùn)、討論提問展示互評(30’)分組展示、組間在線互評。任務(wù)總結(jié)評價(5’)總結(jié)hadoop高可用注意事項,易錯點。課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1、教師評價、答疑指導(dǎo);2、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。敲打命令的時候要注意,不要出錯,需要培養(yǎng)學(xué)生嚴(yán)謹(jǐn)細(xì)致的工匠精神。
項目七HBase數(shù)據(jù)庫操作7.1MySQL安裝教學(xué)項目(單元)項目七HBase數(shù)據(jù)庫操作7.1MySQL安裝授課班級21大數(shù)據(jù)授課學(xué)時2授課地點D506授課時間2023.3.24選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析Hadoop集群虛擬機里面安裝mysql學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)二年級學(xué)生;學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),前面章節(jié)已經(jīng)學(xué)過hadoop集群、HDFS、zookeeper,但是學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)熟悉sql語句以及mysql使用能力目標(biāo)掌握mysql安裝部署素質(zhì)目標(biāo)培養(yǎng)實踐動手能力、嚴(yán)謹(jǐn)細(xì)致的工匠精神、不驕不躁的調(diào)試心態(tài)。教學(xué)重難點1、重點:mysql安裝部署。2、難點:mysql安裝部署。教學(xué)策略本次課為實訓(xùn)型課,通過教師演示、學(xué)生練習(xí)、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1.通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2.通過職教云平臺上傳文檔和視頻等自主預(yù)習(xí)資源:=1\*GB3①mysql安裝部署;3.將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1.通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2.根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。1.通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧新課導(dǎo)入(5’)復(fù)習(xí)Zookeeper的使用學(xué)生回答講練結(jié)合(20’)Zookeeper安裝部署#wget/get/mysql-community-release-el7-5.noarch.rpm#rpm-ivhmysql-community-release-el7-5.noarch.rpm#yuminstallmysql-community-server安裝成功后重啟mysql服務(wù)。#servicemysqldrestart初次安裝mysql,root賬戶沒有密碼。[root@yl-webyl]#mysql-urootWelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis3Serverversion:5.6.26MySQLCommunityServer(GPL)Copyright(c)2000,2015,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>showdatabases;++|Database|++|information_schema||mysql||performance_schema||test|++4rowsinset(0.01sec)mysql>設(shè)置密碼mysql>setpasswordfor'root'@'localhost'=password('password');QueryOK,0rowsaffected(0.00sec)mysql>不需要重啟數(shù)據(jù)庫即可生效。在mysql安裝過程中如下內(nèi)容:不需要重啟數(shù)據(jù)庫即可生效。在mysql安裝過程中如下內(nèi)容:[root@yl-webyl]#rpm-qa|grepmariadb[root@yl-webyl]學(xué)生先聽后動手實踐講練結(jié)合(15’)配置mysql1、編碼mysql配置文件為/etc/f最后加上編碼配置[mysql]default-character-set=utf8這里的字符編碼必須和/usr/share/mysql/charsets/Index.xml中一致。2、遠(yuǎn)程連接設(shè)置把在所有數(shù)據(jù)庫的所有表的所有權(quán)限賦值給位于所有IP地址的root用戶。mysql>grantallprivilegeson*.*toroot@'%'identifiedby'password';如果是新用戶而不是root,則要先新建用戶mysql>createuser'username'@'%'identifiedby'password';此時就可以進行遠(yuǎn)程連接了。學(xué)生先聽后動手實踐講練結(jié)合(30’)Mysql的使用1、新建用戶:>CREATEUSERnameIDENTIFIEDBY'ssapdrow';2、更改密碼:>SETPASSWORDFORname=PASSWORD('fdddfd');3、權(quán)限管理>SHOWGRANTSFORname;//查看name用戶權(quán)限>GRANTSELECTONdb_name.*TOname;//給name用戶db_name數(shù)據(jù)庫的所有權(quán)限>REVOKESELECTONdb_name.*TOname;//GRANT的反操作,去除權(quán)限;一、數(shù)據(jù)庫操作:1、查看數(shù)據(jù)庫:>SHOWDATABASES;2、創(chuàng)建數(shù)據(jù)庫:>CREATEDATABASEdb_name;//db_name為數(shù)據(jù)庫名3、使用數(shù)據(jù)庫:>USEdb_name;4、刪除數(shù)據(jù)庫:>DROPDATABASEdb_name;二、創(chuàng)建表:1、創(chuàng)建表:>CREATETABLEtable_name(>idTINYINTUNSIGNEDNOTNULLAUTO_INCREMENT,//id值,無符號、非空、遞增——唯一性,可做主鍵。>nameVARCHAR(60)NOTNULL>scoreTINYINTUNSIGNEDNOTNULLDEFAULT0,//設(shè)置默認(rèn)列值>PRIMARYKEY(id)>)ENGINE=InnoDB//設(shè)置表的存儲引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事務(wù);MyISAM高效不支持全文檢索>DEFAULTcharset=utf8;//設(shè)置默認(rèn)的編碼,防止數(shù)據(jù)庫中文亂碼如果有條件的創(chuàng)建數(shù)據(jù)表還可以使用>CREATETABLEIFNOTEXISTStb_name(2、復(fù)制表:>CREATETABLEtb_name2SELECT*FROMtb_name;或者部分復(fù)制:>CREATETABLEtb_name2SELECTid,nameFROMtb_name;3、創(chuàng)建臨時表:>CREATETEMPORARYTABLEtb_name(這里和創(chuàng)建普通表一樣);4、查看數(shù)據(jù)庫中可用的表:>SHOWTABLES;5、查看表的結(jié)構(gòu):>DESCRIBEtb_name;也可以使用:>SHOWCOLUMNSintb_name;//from也可以6、刪除表:>DROP[TEMPORARY]TABLE[IFEXISTS]tb_name[,tb_name2];實例:>DROPTABLEIFEXISTStb_name;7、表重命名:>RENAMETABLEname_oldTOname_new;還可以使用:>ALTERTABLEname_oldRENAMEname_new;三、修改表:1、更改表結(jié)構(gòu):>ALTERTABLEtb_nameADD[CHANGE,RENAME,DROP]...要更改的內(nèi)容...實例:>ALTERTABLEtb_nameADDCOLUMNaddressvarchar(80)NOTNULL;>ALTERTABLEtb_nameDROPaddress;>ALTERTABLEtb_nameCHANGEscorescoreSMALLINT(4)NOTNULL;四、插入數(shù)據(jù):1、插入數(shù)據(jù):>INSERTINTOtb_name(id,name,score)VALUES(NULL,'張三',140),(NULL,'張四',178),(NULL,'張五',134);這里的插入多條數(shù)據(jù)直接在后邊加上逗號,直接寫入插入的數(shù)據(jù)即可;主鍵id是自增的列,可以不用寫。2、插入檢索出來的數(shù)據(jù):>INSERTINTOtb_name(name,score)SELECTname,scoreFROMtb_name2;五、更新數(shù)據(jù):1、指定更新數(shù)據(jù):>UPDATEtb_nameSETscore=189WHEREid=2;>UPDATEtablenameSETcolumnName=NewValue[WHEREcondition]六、刪除數(shù)據(jù):1、刪除數(shù)據(jù):>DELETEFROMtb_nameWHEREid=3;學(xué)生先聽后動手實踐學(xué)生分享(15’)Mysql安裝過程及使用代表學(xué)生分享經(jīng)驗和失誤任務(wù)小結(jié)(5’)Mysql安裝注意事項課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1.教師評價2.答疑指導(dǎo)3、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。敲命令需要仔細(xì)認(rèn)真,嚴(yán)謹(jǐn)細(xì)致。7.2Hbase安裝配置教學(xué)項目(單元)項目七HBase數(shù)據(jù)庫操作7.2Hbase安裝配置授課班級21大數(shù)據(jù)授課學(xué)時2授課地點D506授課時間2023.3.27選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析HBase安裝部署學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)二年級學(xué)生;學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),有hadoop集群搭建、HDFS操作、zookeeper基礎(chǔ),但是學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)熟悉HBase配置文件能力目標(biāo)掌握HBase安裝部署素質(zhì)目標(biāo)培養(yǎng)實踐動手能力、嚴(yán)謹(jǐn)細(xì)致的工匠精神、不驕不躁的調(diào)試心態(tài)。教學(xué)重難點1、重點:HBase安裝部署。2、難點:HBase安裝部署。教學(xué)策略本次課為實訓(xùn)型課,通過教師演示、學(xué)生練習(xí)、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1.通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2.通過職教云平臺上傳文檔和視頻等自主預(yù)習(xí)資源:=1\*GB3①HBase安裝部署;3.將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1.通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2.根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。1.通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧新課導(dǎo)入(5’)Sql語句復(fù)習(xí)學(xué)生回答講練結(jié)合(40’)HBase安裝部署1、下載安裝安裝文件可以從HBase官網(wǎng)下載。下載完成后,解壓TAR包到指定的目錄,如/usr/local目錄,并切換到該目錄下,查看已解壓的文件,然后用mv命令重命名hbase-1.2.6文件夾為hbase。2、Hbase配置文件配置1.進入hbase,的目錄中的conf目錄,/home/master/apps/hbase-1.3.1/conf,修改配置hbase-env.sh文件輸入:vimhbase-env.sh(1)輸入配置的的JAVA_HOME(2)輸入配置的HABSE_CLASSPATH路徑,為hbase安裝路徑(可以不做)(3)輸入ESC,可以先保存,并退出,再進進來不用按i,輸入/,然后輸入大寫的ZK,按回車把這一行的注釋去掉,除去#,然后保存并退出2.修改hbase-site.xml文件在最下面輸入以下配置<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>master</value></property><property><name>.port</name><value>60010</value></property></configuration>其中,master為主機名。最后的60010為web頁面的端口號3.修改regionservers文件,將已經(jīng)存在的localhost刪除,然后添加如下代碼:4.修改Linux環(huán)境變量輸入:vim/etc/profile修改完畢。然后將HBase的那幢目錄復(fù)制到Slave中。5.將HBase安裝目錄復(fù)制到Slave,有幾臺虛擬機,需要輸入幾遍。輸入:scp-r/home/master/apps/hbase-1.3.1hadoop2:/home/master/apps/啟動hadoop:start-dfs.sh啟動hbase:start-hbase.sh打開web頁面:輸入master:60010教師先講授演示,后巡回指導(dǎo)答疑。學(xué)生先聽后動手實踐學(xué)生分享(20’)Hbase安裝分享代表學(xué)生分享經(jīng)驗和失誤自由復(fù)習(xí)(20’)學(xué)生自由復(fù)習(xí)前面所學(xué)章節(jié)不懂的地方教師巡回指導(dǎo)答疑。學(xué)生動手實踐任務(wù)小結(jié)(5’)小結(jié)Hbase安裝步驟課后環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖評價答疑1.教師評價2.答疑指導(dǎo)3、教師適時在QQ群、微信群、職教云教學(xué)平臺上面開展在線答疑活動。配置文件編寫需要養(yǎng)成良好的風(fēng)格,降低出錯率;
7.3HBaseJavaAPI操作
教學(xué)項目(單元)項目七HBase數(shù)據(jù)庫操作7.3HBaseJavaAPI操作授課班級21大數(shù)據(jù)授課學(xué)時2授課地點D506授課時間2023.3.29選定及參考教材《Hadoop大數(shù)據(jù)技術(shù)原理與應(yīng)用》(2019年5月第1版)黑馬程序員清華大學(xué)出版社教學(xué)資源智慧職教、中國大學(xué)慕課、黑馬程序員網(wǎng)站教學(xué)內(nèi)容分析先介紹HDFS的JavaAPI基本操作,之后通過案例實訓(xùn)鞏固學(xué)情分析授課對象為信息系三年制高職大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)二年級學(xué)生;學(xué)生已經(jīng)學(xué)完前置課程Linux和python的學(xué)習(xí),已經(jīng)完成Hadoop集群的搭建,HDFSshell操作,但是學(xué)生自主學(xué)習(xí)能力差別大,解決問題能力有待提高。教學(xué)目標(biāo)知識目標(biāo)熟悉HDFSJavaAPI函數(shù)能力目標(biāo)掌握重點的HDFSJavaAPI函數(shù)以及能應(yīng)用其做項目開發(fā)素質(zhì)目標(biāo)培養(yǎng)實踐動手能力、嚴(yán)謹(jǐn)細(xì)致的工匠精神、不驕不躁的調(diào)試心態(tài)。教學(xué)重難點1、重點:HDFSJavaAPI函數(shù)。2、難點:HDFSJavaAPI實戰(zhàn)應(yīng)用。教學(xué)策略本次課為實訓(xùn)型課,通過教師演示、學(xué)生練習(xí)、自主探究、小組合作、翻轉(zhuǎn)課堂等多樣化的教學(xué)手段有效促進學(xué)生自主學(xué)習(xí),并輔以課堂在線討論、課堂測試、課后在線自評互評等方式。工匠精神、技術(shù)報國等思政元素貫穿整個教學(xué)活動。教學(xué)設(shè)計流程教學(xué)過程實施課前導(dǎo)學(xué)環(huán)節(jié)教師活動學(xué)生活動設(shè)計意圖1.通過班級學(xué)習(xí)群發(fā)布課程預(yù)習(xí)任務(wù)。2.通過職教云平臺上傳文檔和視頻等自主預(yù)習(xí)資源:=1\*GB3①HDFSJavaAPI命令;3.將學(xué)生按學(xué)習(xí)能力正態(tài)分布進行分組。1.通過班級學(xué)習(xí)群接收課前預(yù)習(xí)任務(wù)。2.根據(jù)預(yù)習(xí)任務(wù)的要求,自主預(yù)習(xí)網(wǎng)絡(luò)教學(xué)平臺上的微課和文檔資料。1.通過課前任務(wù),學(xué)生初識教學(xué)內(nèi)容;教師依據(jù)預(yù)習(xí)任務(wù)完成情況調(diào)整教學(xué)重難點,根據(jù)導(dǎo)學(xué)案明確教學(xué)過程。課中教學(xué)環(huán)節(jié)教學(xué)內(nèi)容教師活動學(xué)生活動設(shè)計意圖具體課中環(huán)節(jié)及時間分配舊知回顧新課導(dǎo)入(5’)一、回顧上節(jié)課內(nèi)容,講解HDFSJavaAPI操作1.對上節(jié)課留的作業(yè)進行答疑。2.回顧上節(jié)課的內(nèi)容,引出本節(jié)課的主題。上一節(jié)對HDFS的Shell操作進行了詳細(xì)的講解,而HDFSShell本質(zhì)上就是對JavaAPI的應(yīng)用。本節(jié)課將針對HDFSJavaAPI操作進行詳細(xì)講解。學(xué)生聽課、回答、討論講練結(jié)合(20’)HDFSJavaAPI由于Hadoop是使用Java語言編寫的,因此可以使用JavaAPI操作Hadoop文件系統(tǒng)。HDFSShell本質(zhì)上就是對JavaAPI的應(yīng)用,通過編程的形式操作HDFS,其核心是使用HDFS提供的JavaAPI構(gòu)造一個訪問客戶端對象,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年燒烤店燃?xì)庑孤?yīng)急救援預(yù)案演練方案
- 2025年生態(tài)濕地公園生態(tài)濕地恢復(fù)與技術(shù)創(chuàng)新可行性研究報告
- 企業(yè)費用預(yù)算管理工具
- XX初中八年級下學(xué)期物理實驗操作考核方案
- 2026屆德州市高三語文上學(xué)期期末考試卷附答案解析
- 建筑智能化能耗監(jiān)測與管控方案
- 擴散塔施工方案(3篇)
- 接水盤施工方案(3篇)
- 施工方案中期論文(3篇)
- 樓梯工區(qū)施工方案(3篇)
- 倉庫貨物擺放標(biāo)準(zhǔn)培訓(xùn)課件
- 2023年運動控制工程師年度總結(jié)及下一年展望
- 江蘇省高級人民法院勞動爭議案件審理指南
- 低蛋白血癥的護理查房知識ppt
- 2023自愿離婚協(xié)議書范文(3篇)
- 眼科常見疾病診療規(guī)范診療指南2022版
- 30以內(nèi)加法運算有進位1000題1
- 戰(zhàn)略成本1-6章toc經(jīng)典案例
- 新藥臨床使用觀察表
- GB/T 34202-2017球墨鑄鐵管、管件及附件環(huán)氧涂層(重防腐)
- DB37-T 5026-2022《居住建筑節(jié)能設(shè)計標(biāo)準(zhǔn)》
評論
0/150
提交評論