版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目二Hadoop集群搭建CONTENTS目錄01
項(xiàng)目導(dǎo)讀02
知識(shí)目標(biāo)03
技能目標(biāo)04
素質(zhì)(思政)目標(biāo)05
任務(wù)一Hadoop本地模式搭建CONTENTS目錄06
任務(wù)二Hadoop偽分布式集群搭建07
任務(wù)三Hadoop完全分布式集群搭建08
項(xiàng)目總結(jié)09
項(xiàng)目考核項(xiàng)目導(dǎo)讀01項(xiàng)目導(dǎo)讀
Hadoop集群搭建指南工欲善其事,必先利其器,要想使用Hadoop做大數(shù)據(jù)分析,首先得掌握Hadoop大數(shù)據(jù)集群平臺(tái)的搭建。Hadoop運(yùn)行模式主要包括三種:本地模式、偽分布式模式以及完全分布式模式,本項(xiàng)目帶領(lǐng)大家從零開始搭建Hadoop完全分布式集群知識(shí)目標(biāo)02知識(shí)目標(biāo)
了解Hadoop生態(tài)體系
熟悉Hadoop應(yīng)用場(chǎng)景
熟悉XML文件
熟悉shell腳本
熟悉hosts文件知識(shí)目標(biāo)熟悉Linux環(huán)境變量了解密鑰公鑰熟悉Hadoop的三種運(yùn)行模式熟悉Hadoop日志技能目標(biāo)03技能目標(biāo)
掌握J(rèn)DK安裝
掌握SSH免密登錄
掌握Hadoop本地模式配置
掌握Hadoop偽分布式模式配置
掌握Hadoop完全分布式集群搭建素質(zhì)(思政)目標(biāo)04素質(zhì)(思政)目標(biāo)
培養(yǎng)嚴(yán)謹(jǐn)細(xì)致的工匠精神
厚植技術(shù)報(bào)國(guó)夢(mèng)
培養(yǎng)不驕不躁的工匠心態(tài)
培養(yǎng)保密意識(shí)
培養(yǎng)網(wǎng)絡(luò)安全意識(shí)任務(wù)一Hadoop本地模式搭建05任務(wù)場(chǎng)景
本地運(yùn)行模式下的Hadoop開發(fā)與調(diào)試在無需部署完整Hadoop集群,僅需進(jìn)行開發(fā)與調(diào)試的場(chǎng)景下,可采用本地運(yùn)行模式。此模式下,Hadoop將在單一Java虛擬機(jī)(JVM)進(jìn)程中運(yùn)行,通過本地存儲(chǔ)系統(tǒng)與內(nèi)存資源模擬分布式文件系統(tǒng)(HDFS)及MapReduce并行計(jì)算過程任務(wù)準(zhǔn)備單擊此處添加正文
學(xué)生技術(shù)研討小組任務(wù)全體學(xué)生以4至5人為單位組建研討小組,每組推選組長(zhǎng)一名。組長(zhǎng)需組織組員完成以下工作:1.查閱相關(guān)技術(shù)文獻(xiàn)資料2.主持組內(nèi)技術(shù)討論3.匯總形成技術(shù)結(jié)論問題1:XML文件具備哪些技術(shù)特征單擊此處添加項(xiàng)正文問題2:請(qǐng)闡述代碼風(fēng)格的核心要義及其在軟件開發(fā)實(shí)踐中的意義單擊此處添加項(xiàng)正文問題3:請(qǐng)描述Java可執(zhí)行文件的具體執(zhí)行流程與方法單擊此處添加項(xiàng)正文必備知識(shí)技能Hadoop生態(tài)體系
Hadoop概述Hadoop是由Apache軟件基金會(huì)開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),旨在解決海量數(shù)據(jù)存儲(chǔ)與分析計(jì)算問題。廣義而言,Hadoop常指代更廣泛的概念——Hadoop生態(tài)系統(tǒng)Hadoop生態(tài)體系:2.Hadoop發(fā)展歷史Hadoop起源與發(fā)展Hadoop最初源于Lucene項(xiàng)目,由DougCutting主導(dǎo)開發(fā)的ApacheNutch項(xiàng)目,始于2002年,是ApacheLucene的子項(xiàng)目之一。該項(xiàng)目采用Java語(yǔ)言編寫,旨在實(shí)現(xiàn)與Google類似的全文搜索功能,提供包含完整查詢引擎和搜索引擎的全文檢索引擎架構(gòu)。2001年底,Lucene成為Apache基金會(huì)子項(xiàng)目。面對(duì)海量數(shù)據(jù)處理挑戰(zhàn),Lucene借鑒Google的解決方案,衍生出微型版Nutch框架Nutch性能提升的秘密2003至2004年期間,Google公開了部分GFS(Google文件系統(tǒng))與MapReduce的核心設(shè)計(jì)思想。基于此,DougCutting團(tuán)隊(duì)耗費(fèi)兩年業(yè)余時(shí)間實(shí)現(xiàn)了分布式文件系統(tǒng)(DFS)和MapReduce機(jī)制,顯著提升Nutch性能Hadoop的誕生與發(fā)展2005年,Hadoop作為L(zhǎng)ucene子項(xiàng)目Nutch的組成部分引入Apache基金會(huì)。2006年3月,MapReduce和Nutch分布式文件系統(tǒng)(NDFS)被整合至獨(dú)立項(xiàng)目Hadoop。其名稱源自DougCutting兒子的玩具象,標(biāo)志Hadoop正式誕生并快速發(fā)展Hadoop三大發(fā)行版本中Apache版本保持最原始基礎(chǔ)架構(gòu),適用于入門學(xué)習(xí);Cloudera版本在大型互聯(lián)網(wǎng)企業(yè)應(yīng)用廣泛;Hortonworks版本則以完善文檔著稱Hadoop生態(tài)體系:3.Hadoop核心優(yōu)勢(shì)
高可靠性:預(yù)設(shè)計(jì)算單元與存儲(chǔ)節(jié)點(diǎn)可能失效,通過維護(hù)多副本數(shù)據(jù)機(jī)制實(shí)現(xiàn)故障節(jié)點(diǎn)的任務(wù)重分配
高擴(kuò)展性:支持在集群節(jié)點(diǎn)間分配任務(wù)數(shù)據(jù),可便捷擴(kuò)展至數(shù)千節(jié)點(diǎn)規(guī)模
高效性:基于MapReduce并行計(jì)算模型實(shí)現(xiàn)任務(wù)高速處理
高容錯(cuò)性:自動(dòng)維護(hù)數(shù)據(jù)多副本存儲(chǔ),并對(duì)失敗任務(wù)執(zhí)行重新分配Hadoop生態(tài)體系:4.Hadoop生態(tài)體系Hadoop生態(tài)體系Hadoop體系作為計(jì)算框架,支持通過多機(jī)構(gòu)構(gòu)成的集群,采用簡(jiǎn)易編程模型實(shí)現(xiàn)大數(shù)據(jù)集的分布式處理。其具備良好擴(kuò)展性,可從單服務(wù)器無縫擴(kuò)展至數(shù)千服務(wù)器集群,各節(jié)點(diǎn)獨(dú)立執(zhí)行本地計(jì)算與存儲(chǔ)。除依賴硬件高可用性外,軟件庫(kù)本身提供數(shù)據(jù)保護(hù)機(jī)制,并在應(yīng)用層實(shí)現(xiàn)故障處理,從而在集群層面保障高可用服務(wù)HDFSHadoop分布式文件系統(tǒng)(HDFS)是生態(tài)體系的數(shù)據(jù)存儲(chǔ)管理基礎(chǔ),具備高度容錯(cuò)能力,可檢測(cè)并響應(yīng)硬件故障YARNApacheHadoopYARN(YetAnotherResourceNegotiator)作為新型資源管理器,是通用資源管理系統(tǒng),為上層應(yīng)用提供統(tǒng)一的資源管理與調(diào)度服務(wù),顯著提升集群利用率、資源統(tǒng)一管理及數(shù)據(jù)共享能力MapReduce分布式計(jì)算框架MapReduce采用特定計(jì)算模型處理海量數(shù)據(jù)。Map階段對(duì)數(shù)據(jù)集獨(dú)立元素執(zhí)行指定操作,生成鍵-值對(duì)形式的中間結(jié)果;Reduce階段對(duì)相同鍵值的中間結(jié)果進(jìn)行規(guī)約,輸出最終結(jié)果Hive基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)工具,由Facebook開源,最初用于海量結(jié)構(gòu)化日志數(shù)據(jù)統(tǒng)計(jì)分析。其類SQL查詢語(yǔ)言(HQL)可將查詢指令轉(zhuǎn)化為MapReduce任務(wù)在Hadoop集群執(zhí)行Hadoop生態(tài)體系:4.Hadoop生態(tài)體系
HBaseHBase是針對(duì)結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能分布式列式動(dòng)態(tài)模式數(shù)據(jù)庫(kù)。區(qū)別于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù),其采用BigTable數(shù)據(jù)模型,優(yōu)化稀疏排序映射表(鍵/值存儲(chǔ))。數(shù)據(jù)鍵由行關(guān)鍵字、列關(guān)鍵字及時(shí)間戳構(gòu)成,支持大規(guī)模數(shù)據(jù)的實(shí)時(shí)隨機(jī)讀寫訪問,并可通過MapReduce進(jìn)行數(shù)據(jù)處理,實(shí)現(xiàn)存儲(chǔ)與并行計(jì)算的深度整合
ZooKeeper分布式協(xié)作服務(wù),解決分布式環(huán)境下的統(tǒng)一命名、狀態(tài)同步、集群管理及配置同步等數(shù)據(jù)協(xié)同問題
Sqoop結(jié)構(gòu)化數(shù)據(jù)同步工具(SQL-to-Hadoop),主要實(shí)現(xiàn)傳統(tǒng)數(shù)據(jù)庫(kù)與Hadoop間的數(shù)據(jù)傳輸。其導(dǎo)入導(dǎo)出過程本質(zhì)為MapReduce程序,充分應(yīng)用了MapReduce的并行處理與容錯(cuò)特性
Pig基于Hadoop的數(shù)據(jù)流處理系統(tǒng),通過專用數(shù)據(jù)流語(yǔ)言PigLatin將腳本轉(zhuǎn)化為MapReduce任務(wù),適用于離線分析場(chǎng)景
Mahout機(jī)器學(xué)習(xí)算法庫(kù),旨在創(chuàng)建可擴(kuò)展的經(jīng)典機(jī)器學(xué)習(xí)算法實(shí)現(xiàn),助力開發(fā)者高效構(gòu)建智能應(yīng)用。涵蓋聚類、分類、推薦引擎(協(xié)同過濾)及頻繁項(xiàng)集挖掘等數(shù)據(jù)挖掘方法,并提供數(shù)據(jù)輸入/輸出工具及與數(shù)據(jù)庫(kù)、MongoDB、Cassandra等存儲(chǔ)系統(tǒng)的集成架構(gòu)
Flume分布式高可靠日志收集系統(tǒng)(由Cloudera開源),具備高容錯(cuò)性、易定制及可擴(kuò)展特性。其將數(shù)據(jù)產(chǎn)生、傳輸、處理至目標(biāo)路徑的過程抽象為數(shù)據(jù)流模型,支持定制化數(shù)據(jù)發(fā)送方以適配多協(xié)議數(shù)據(jù)采集Hadoop應(yīng)用場(chǎng)景01實(shí)踐案例表明2009年Facebook約30%非編程人員使用HiveQL(HQL)進(jìn)行數(shù)據(jù)分析;淘寶搜索平臺(tái)采用Hive實(shí)現(xiàn)自定義篩選功能;Pig支撐高級(jí)數(shù)據(jù)處理,如Twitter與LinkedIn的社交關(guān)系挖掘、Amazon式協(xié)同過濾推薦(淘寶商品推薦系統(tǒng)同理應(yīng)用);Yahoo約40%的Hadoop作業(yè)通過Pig運(yùn)行,涵蓋垃圾郵件識(shí)別過濾及用戶特征建模02知名科技專欄作家DerrickHarris基于多年Hadoop技術(shù)追蹤,總結(jié)十大典型應(yīng)用場(chǎng)景單擊此處添加項(xiàng)正文Hadoop應(yīng)用場(chǎng)景在線旅游全球80%在線旅游網(wǎng)站采用ClouderaHadoop發(fā)行版,典型案例包括Expedia等平臺(tái)移動(dòng)數(shù)據(jù)服務(wù)美國(guó)70%智能手機(jī)數(shù)據(jù)服務(wù)依托Hadoop實(shí)現(xiàn),涵蓋數(shù)據(jù)存儲(chǔ)及運(yùn)營(yíng)商數(shù)據(jù)處理環(huán)節(jié)電子商務(wù)eBay為代表性實(shí)踐者,國(guó)內(nèi)電商企業(yè)亦具備深厚Hadoop技術(shù)儲(chǔ)備能源勘探全美第二大石油公司Chevron利用Hadoop處理海洋地震數(shù)據(jù),輔助油田定位勘探能源節(jié)約能源服務(wù)商Opower通過Hadoop分析用戶電費(fèi)數(shù)據(jù),提供節(jié)能建議及費(fèi)用預(yù)測(cè)基礎(chǔ)設(shè)施管理支持從服務(wù)器、交換機(jī)等設(shè)備采集并分析運(yùn)行數(shù)據(jù),實(shí)現(xiàn)基礎(chǔ)架構(gòu)智能化管理Hadoop應(yīng)用場(chǎng)景
衛(wèi)星圖像處理初創(chuàng)企業(yè)SkyboxImaging應(yīng)用Hadoop存儲(chǔ)處理衛(wèi)星高清圖像,探測(cè)地理變遷信息金融反欺詐金融服務(wù)及政府機(jī)構(gòu)通過存儲(chǔ)全量交易數(shù)據(jù)(含非結(jié)構(gòu)化數(shù)據(jù)),識(shí)別異?;顒?dòng)以預(yù)防欺詐行為IT安全防護(hù)處理機(jī)器生成數(shù)據(jù)以識(shí)別惡意軟件攻擊及網(wǎng)絡(luò)入侵行為,增強(qiáng)企業(yè)安全防護(hù)能力醫(yī)療健康IBMWatson等醫(yī)療系統(tǒng)以Hadoop集群為基礎(chǔ),結(jié)合語(yǔ)義分析技術(shù)輔助醫(yī)護(hù)人員診斷決策Hadoop運(yùn)行模式本地模式(獨(dú)立模式)無需啟用守護(hù)進(jìn)程,所有程序于單一JVM內(nèi)執(zhí)行。數(shù)據(jù)存儲(chǔ)于本地Linux文件系統(tǒng),適用于學(xué)習(xí)及MapReduce程序調(diào)試偽分布式模式守護(hù)進(jìn)程運(yùn)行于單臺(tái)物理機(jī),模擬小規(guī)模集群環(huán)境。數(shù)據(jù)存儲(chǔ)于HDFS文件系統(tǒng)完全分布式模式守護(hù)進(jìn)程部署于多節(jié)點(diǎn)集群(企業(yè)級(jí)部署標(biāo)準(zhǔn))。數(shù)據(jù)存儲(chǔ)于HDFS文件系統(tǒng),由多臺(tái)服務(wù)器協(xié)同工作任務(wù)實(shí)施Linux系統(tǒng)配置
步驟1:修改主機(jī)名。切換至root用戶,在master節(jié)點(diǎn)執(zhí)行以下命令
hostnamectlset-hostnamemaster
步驟2:配置hosts文件,在三臺(tái)虛擬機(jī)中分別編輯hosts文件,命令為
vim/etc/hostsLinux系統(tǒng)配置
hosts文件內(nèi)容為
0master
注意:0為master的IP地址JDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)
LinuxJDK安裝配置指南Linux上一般會(huì)預(yù)裝OpenJDK,系統(tǒng)預(yù)裝的OpenJDK需先行卸載,隨后安裝指定版本JDK并配置環(huán)境變量步驟1:卸載系統(tǒng)自帶的OpenJDK以及相關(guān)的Java文件。在命令窗口鍵入java-version可以看到系統(tǒng)自帶的OpenJDK版本信息,如圖2-1-1所示步驟2:查看OpenJDK自帶Java文件。在終端命令窗口鍵入rpm-qa|grepjavaJDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)
可以看到系統(tǒng)自帶的OpenJDKJava相關(guān)文件,如圖2-1-2上圖文件中,文件名下面以“java-”開頭的4個(gè)文件需要?jiǎng)h除,分別是Java1.8Update161java-1.8.0-openjdk-headless-61-2.b14.el7.x86_64java-1.7.0-openjdk-71-.el7.x86_64java-1.8.0-openjdk-61-2.b14.el7.x86_64JavaOpenJDK1.8.0Update102java-1.8.0-openjdk-headless-02-4.b14.el7.x86_64JDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)
JavaOpenJDKUpdatesjava-1.7.0-openjdk-headless-71-.el7.x86_64java-1.7.0-openjdk-headless-11-.el7.x86_64下面這3個(gè)noarch文件可以不用刪除python-javapackages-3.4.1-11.el7.noarchtzdata-java-2016g-2.el7.noarchjavapackages-tools-3.4.1-11.el7.noarch步驟3:刪除OpenJDK自帶Java文件。在終端命令窗口鍵入JDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)
卸載OpenJDKrpm-e--nodepsjava-1.7.0-openjdk-11-.el7.x86_64UninstallOpenJDK1.8rpm-e--nodepsjava-1.8.0-openjdk-02-4.b14.el7.x86_64卸載OpenJDK1.8rpm-e--nodepsjava-1.8.0-openjdk-headless-02-4.b14.el7.x86_64卸載OpenJDKrpm-e--nodepsjava-1.7.0-openjdk-headless-11-.el7.x86_64步驟4:檢查是否已經(jīng)刪除成功,在命令窗口鍵入java-versionJDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)
執(zhí)行結(jié)果如圖2-1-3,代表Linux系統(tǒng)自帶的OpenJDK已經(jīng)刪除成功了步驟5拷貝JDK,把事先下載好的JDK安裝包用拖拽的方式,拷貝進(jìn)/usr/local/src目錄下(安裝的JDK版本和IDEA里面的配置一樣,因?yàn)镮DEA自帶JDK11)步驟6:解壓JDK,把事先下載好的JDK安裝包解壓縮成目錄,在命令窗口鍵入tar-zxvfjdk-8u144-linux-x64.tar.gz此時(shí),usr/local/src目錄下會(huì)有一個(gè)名為“jdk-8u144-linux-x64”的目錄步驟7:刪除JDK壓縮包,在命令窗口鍵入JDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)
rm-rfjdk-8u144-linux-x64.tar.gz步驟8:配置JDK環(huán)境變量,在命令窗口鍵入vim/etc/profile粘貼內(nèi)容至文本末尾進(jìn)入文本編輯狀態(tài)下,光標(biāo)移動(dòng)到文件最后一行,鍵盤按下字母“i”,進(jìn)入插入狀態(tài),在文本的最后一行粘貼如下內(nèi)容#javaenvironmentexportJAVA_HOME=/usr/local/src/jdk1.8.0_221JDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)
JavaEnvironmentConfigurationexportCLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jarexportPATH=$PATH:${JAVA_HOME}/binHOME,CentOS7是${JAVA_HOME}步驟9:讓剛剛設(shè)置的環(huán)境變量生效,在命令窗口鍵入source/etc/profile步驟10:檢查Java是否配置成功,在命令窗口鍵入java-versionJDK環(huán)境部署(三臺(tái)虛擬機(jī)均需執(zhí)行)命令執(zhí)行結(jié)果如圖2-1-4,即為Java配置成功安裝Hadoop
步驟1把提前下載好的Hadoop安裝包“hadoop-2.7.3.tar.gz”拷貝到/usr/local/src目錄下步驟2:解壓安裝包。在命令窗口鍵入tar-zxvfhadoop-2.7.3.tar.gz步驟3:配置環(huán)境變量,編輯配置文件profile,在命令窗口鍵入vim/etc/profile在最后添加以下代碼安裝Hadoop#hadoopenvironmentexportHADOOP_HOME=/usr/local/src/hadoop-2.7.3exportPATH=$PATH:${HADOOP_HOME}/binexportPATH=$PATH:${HADOOP_HOME}/sbin步驟4:讓修改后的profile文件立即生效安裝Hadoop
source/etc/profile
步驟5:測(cè)試是否安裝成功,在命令窗口鍵入
hadoopversion
命令執(zhí)行結(jié)果如圖2-1-5,即安裝成功本地模式核心文件配置
步驟1在Hadoop主目錄下,配置hadoop-env.sh文件,修改JAVA_HOME值為:exportJAVA_HOME=/usr/local/src/jdk1.8.0_221本地模式運(yùn)行程序
01步驟1:在Hadoop主目錄下,創(chuàng)建一個(gè)input目錄,在命令窗口鍵入
02mkdirinput
03步驟2:將Hadoop的xml配置文件復(fù)制到input,在命令窗口鍵入
04cpetc/hadoop/*.xmlinput
05步驟3:執(zhí)行share目錄下的MapReduce程序,在命令窗口鍵入本地模式運(yùn)行程序
01HadoopGrepExamplebin/hadoopjarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jargrepinputoutput'dfs[a-z]+
02步驟4:查看輸出結(jié)果,在命令窗口鍵入單擊此處添加項(xiàng)正文
03catoutput/*單擊此處添加項(xiàng)正文任務(wù)二Hadoop偽分布式集群搭建06任務(wù)場(chǎng)景偽分布式Hadoop開發(fā)測(cè)試開發(fā)人員需在本地設(shè)備進(jìn)行開發(fā)與測(cè)試工作。在偽分布式模式下,Hadoop運(yùn)行于單臺(tái)設(shè)備,各組件以獨(dú)立進(jìn)程形式運(yùn)行,可模擬真實(shí)分布式環(huán)境任務(wù)準(zhǔn)備學(xué)生小組任務(wù)分配
全體學(xué)生以約4人為單位分組,每組推選組長(zhǎng)。組長(zhǎng)需組織組員完成以下工作:1.檢索相關(guān)技術(shù)資料;2.組織研討與觀點(diǎn)匯總問題1:闡述對(duì)分布式系統(tǒng)的理解
單擊此處添加項(xiàng)正文問題2:論述進(jìn)程相關(guān)概念及其特性
單擊此處添加項(xiàng)正文XML文件介紹
XML數(shù)據(jù)描述與傳輸XML(可擴(kuò)展標(biāo)記語(yǔ)言)是一種標(biāo)記語(yǔ)言,用于描述數(shù)據(jù)的結(jié)構(gòu)和含義。它被設(shè)計(jì)用來存儲(chǔ)和傳輸數(shù)據(jù),并可以用于創(chuàng)建自定義的標(biāo)記語(yǔ)言。XML提供了一種簡(jiǎn)單而強(qiáng)大的方式來存儲(chǔ)和傳輸結(jié)構(gòu)化數(shù)據(jù),通過其自我描述性和可擴(kuò)展性,XML成為數(shù)據(jù)交換和配置文件的重要格式XML文檔結(jié)構(gòu)解析XML文檔由一系列的元素組成,每個(gè)元素可以包含屬性和文本內(nèi)容。元素可以嵌套在其他元素中,以表示數(shù)據(jù)的層次結(jié)構(gòu)。例如,一個(gè)XML文檔可以用來描述一個(gè)購(gòu)物車中的商品列表,每個(gè)商品都可以表示為一個(gè)元素,包含商品的名稱、價(jià)格和數(shù)量等信息XML標(biāo)簽與屬性詳解在XML中,標(biāo)簽用于定義元素的名稱,屬性用于提供有關(guān)元素的附加信息。例如,在上面的購(gòu)物車示例中,每個(gè)商品都可以使用一個(gè)名為“product”的標(biāo)簽來表示,并使用屬性來指定商品的名稱、價(jià)格和數(shù)量XML文檔可以使用任何文本編輯器創(chuàng)建和編輯,也可以使用各種編程語(yǔ)言和工具進(jìn)行處理和解析XML的用途是存儲(chǔ)數(shù)據(jù),作為系統(tǒng)之間傳輸數(shù)據(jù)的格式,作為項(xiàng)目的配置文件,保存有結(jié)構(gòu)關(guān)系的數(shù)據(jù)XML與HTML的比較XML文檔的標(biāo)記可以隨意擴(kuò)展,HTML的標(biāo)記是預(yù)定義好的;XML區(qū)分大小寫,HTML不區(qū)分大小寫;HTML主要是用來顯示數(shù)據(jù)的,XML是用來保存數(shù)據(jù)的;HTML中,空格會(huì)自動(dòng)過濾,而XML不會(huì);HTML中可以有多個(gè)根節(jié)點(diǎn),在XML里面只有一個(gè)XML基本語(yǔ)法
XML聲明
XML聲明應(yīng)該位于文檔的第一行,指示文檔是XML文檔,并定義版本和編碼
<?xmlversion="1.0"encoding="UTF-8"XML基本語(yǔ)法:2.標(biāo)簽和元素單擊此處添加正文
XML標(biāo)簽是成對(duì)出現(xiàn)的,用于包圍元素內(nèi)容,起始標(biāo)簽和結(jié)束標(biāo)簽應(yīng)該匹配
<note>
<to>bob</to>XML基本語(yǔ)法:2.標(biāo)簽和元素
<heading>warning</heading>單擊此處添加項(xiàng)正文
RemembertheUmbrella<body>Remembertobringanumbrellawithyou!</body>
</note>單擊此處添加項(xiàng)正文XML基本語(yǔ)法
01屬性元素可以擁有屬性,屬性提供了有關(guān)元素的額外信息<notedate="2024-06-01"><to>bob</to></note>
02注釋XML中的注釋以<!--開始,以-->結(jié)束<!--Thisisacomment-->
03規(guī)范性XML標(biāo)簽對(duì)大小寫敏感。XML必須正確嵌套。XML文檔必須有一個(gè)根元素
04空元素如果元素為空,可以使用空元素語(yǔ)法<line-break/>
05實(shí)體引用為了表示特殊字符,XML定義了一些實(shí)體引用:lt;表示小于號(hào)<,>表示大于號(hào)>&表示和號(hào)&'表示單引號(hào)',"表示雙引號(hào)"LinuxShell腳本介紹
Shell腳本基礎(chǔ)Shell腳本就是命令解析器,包含一系列命令序列的文本文件。當(dāng)運(yùn)行這個(gè)腳本文件時(shí),文件中包含的命令序列將得到執(zhí)行。如果有一系列經(jīng)常使用的Linux命令,可以把它們存儲(chǔ)在一個(gè)文件中,Shell可以讀取這個(gè)文件并執(zhí)行其中的命令,這樣的文件被稱為腳本文件。比如,現(xiàn)在有個(gè)名為test.sh的文件,其內(nèi)容如下pwdwhoamiid首先,我們通過執(zhí)行以下命令給test.sh一個(gè)可執(zhí)行權(quán)限chmodu+xtest.shLinuxShell腳本介紹
接下來我們就可以執(zhí)行命令,輸入。test.sh,結(jié)果如下/root/scriptsrootuid=0(root)gid=0(root)groups=0(root)Shell腳本解析與執(zhí)行shell腳本本質(zhì)是一個(gè)文件,文件里面存放的是特定格式的指令,系統(tǒng)可以使用腳本解析器解析指令并執(zhí)行,不需要編譯,shell既是應(yīng)用程序又是一種腳本語(yǔ)言使用命令cat/etc/shells查看當(dāng)前系統(tǒng)支持的shell,在master上執(zhí)行結(jié)果為L(zhǎng)inuxShell腳本介紹
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologinLinuxShell腳本介紹
/bin/tcsh
/bin/csh
使用命令echo$SHELL查看當(dāng)前shell,在master上執(zhí)行結(jié)果為
/bin/bash編寫Shell腳本:1.基本規(guī)則01腳本文件命名的后綴必須是“sh”單擊此處添加項(xiàng)正文02Shell腳本Shebang行規(guī)范(2)Shell腳本第一行必須以?Shebang(#!)?開頭,后接解釋器的絕對(duì)路徑。正確格式為#!bin/sh或#!bin/bash,通常為/bin/bash。這一行不是注釋而是shell腳本的標(biāo)識(shí),表明這是一個(gè)腳本文件03腳本文件里以#作為語(yǔ)句的注釋單擊此處添加項(xiàng)正文04使用echo輸出內(nèi)容單擊此處添加項(xiàng)正文05使用cat查看文件內(nèi)容單擊此處添加項(xiàng)正文編寫Shell腳本:2.Shell變量Shell變量Shell變量沒有數(shù)據(jù)類型,都是字符串,即使數(shù)值也是字符串創(chuàng)建變量命令:變量名稱=值等號(hào)兩邊不能有空格。如果值有空格則必須用雙引號(hào)或單引號(hào)引用起來#!bin/basha=10b="10"readonlyc=3#只讀變量,不可修改引用變量命令:$變量名。以下三種引用變量的方式等價(jià)#!bin/basha=10echo$aecho${a}echo"${a}"運(yùn)行腳本:輸出三行10刪除變量命令:unset變量名#!bin/basha=10unsetaecho$a因?yàn)橹虚g刪除了變量,所以不會(huì)輸出任何東西從鍵盤讀取變量命令:read變量。允許用戶從鍵盤輸入,實(shí)現(xiàn)程序交互#!bin/bashecho"Pleaseinputthefirstnumber:"readaecho"Thisnumberis:$a"編寫Shell腳本:2.Shell變量
特殊變量在Shell腳本編程中,特殊變量是用來引用Shell環(huán)境或腳本執(zhí)行過程中的一些特定值。這些特殊變量通常以美元符號(hào)($)開頭,后面跟著一個(gè)或多個(gè)字母或符號(hào)來代表特定的含義。特殊變量如表2-2-1$@是參數(shù)列表,本質(zhì)上是所有位置參數(shù)的列表集合,把參數(shù)看作一個(gè)數(shù)組,每個(gè)元素保持獨(dú)立,保持每個(gè)參數(shù)的原始邊界和完整性。$*是參數(shù)字符串,本質(zhì)上是所有位置參數(shù)的字符串拼接,把參數(shù)看作一個(gè)長(zhǎng)字符串,參數(shù)間用空格連接,將所有參數(shù)合并為單個(gè)字符串。$@和$*關(guān)鍵區(qū)別如表2-2-2特殊變量應(yīng)用示例如下#!bin/bashecho"腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào):$$"echo"傳遞給腳本的參數(shù)個(gè)數(shù):$#"echo"\$*不使用雙引號(hào):"forargin$*;doecho"參數(shù):$arg"doneecho"\"\$*\"使用雙引號(hào):"forargin"$*";doecho"參數(shù):$arg"doneecho"\$@不加雙引號(hào):"forargin$@;doecho"參數(shù):[$arg]"doneecho"\"\$@\"加雙引號(hào):"forargin"$@";doecho"參數(shù):[$arg]"done運(yùn)行上述名為“bob.sh”的腳本并傳遞三個(gè)參數(shù):bob.sharg1arg2arg3,輸出結(jié)果如下腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào):3707傳遞給腳本的參數(shù)個(gè)數(shù):3$*不使用雙引號(hào)參數(shù):arg1參數(shù):arg2參數(shù):arg3"$*"使用雙引號(hào)參數(shù):arg1arg2arg3$@不加雙引號(hào)參數(shù):[arg1]參數(shù):[arg2]參數(shù):[arg3]"$@"加雙引號(hào)參數(shù):[arg1]參數(shù):[arg2]參數(shù):[arg3]編寫Shell腳本:3.系統(tǒng)(環(huán)境)變量
系統(tǒng)預(yù)定義的變量,一般在/etc/profile中進(jìn)行定義。使用env查看所有系統(tǒng)變量
HOME:用戶主目錄PATH:文件搜索路徑
PWD:用戶當(dāng)前工作目錄
HOSTNAME:主機(jī)名字編寫Shell腳本:3.系統(tǒng)(環(huán)境)變量單擊此處添加正文
USER:指目前環(huán)境使用者的名稱等。還有其他的系統(tǒng)變量單擊此處添加項(xiàng)正文使用export命令可以把變量變?yōu)槿肿兞?。格式為單擊此處添加?xiàng)正文exportvar單擊此處添加項(xiàng)正文環(huán)境變量持久化方法變?yōu)槿肿兞亢?,就可以在多個(gè)文件里使用該變量。但是在命令行,使用export聲明為全局變量后,只對(duì)當(dāng)前的命令窗口有效。如果要想始終有效可以直接將環(huán)境變量添加到bashrc中去。使用vi~bashrc編輯,添加后,使用source~bashrc刷新來使得文件生效編寫Shell腳本:4.重定向符
使用重定向符時(shí),文件不存在則自動(dòng)創(chuàng)建文件
#!bin/bash
echohello>1.c#將hello輸入到1.c文件里
cat<1.c>2.c#從1.c文件里獲取內(nèi)容,輸出到2.c文件里
cat2.c#查看2.c文件里的內(nèi)容編寫Shell腳本
管道符號(hào)‘|’管道操作符|用于連接左右兩個(gè)命令,將|左邊的命令執(zhí)行結(jié)果(輸出)作為|右邊命令的輸入編寫Shell腳本:6.單雙引號(hào)
使用單引號(hào)時(shí),字符串內(nèi)的內(nèi)容會(huì)被原樣輸出,不進(jìn)行任何解釋或擴(kuò)展雙引號(hào)內(nèi)字符串解釋與擴(kuò)展規(guī)則使用雙引號(hào)時(shí),字符串內(nèi)的內(nèi)容除了特定的特殊字符($、\和?。┩?,其他大部分內(nèi)容都會(huì)被解釋或擴(kuò)展,特別是變量會(huì)被擴(kuò)展為它們的值#!bin/bashb=10編寫Shell腳本:6.單雙引號(hào)
echo$#輸出:10echo"$"#輸出:10echo'$'#輸出:$任務(wù)實(shí)施配置HDFS集群
步驟1進(jìn)入Hadoop配置文件主目錄,編輯hadoop-env.sh文件,修改JAVA_HOME路徑,將以“#exportJAVA_HOME=”開頭的那一行代碼替換成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221注意本書Hadoop配置文件路徑為“usr/local/src/hadoop-2.7.3/etc/hadoop”步驟2:編輯core-site.xml文件,清空文件,在里面輸入如下代碼<configuration><!--指定HDFS中NameNode的地址-->配置HDFS集群<property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><!--指定Hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)目錄--><property>配置HDFS集群
HadoopTemporaryDirectoryConfiguration<name>hadoop.tmp.dir</name><value>usr/local/src/hadoop-2.7.3/data/tmp</value></property></configuration>步驟3:編輯hdfs-site.xml,清空文件,在里面輸入如下代碼<configuration><property>配置HDFS集群
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>啟動(dòng)HDFS集群
步驟1:進(jìn)入Hadoop配置主目錄,在Hadoop主目錄下,格式化NameNode,命令如下注意第一次啟動(dòng)時(shí)格式化,以后不用格式化。本書Hadoop主目錄路徑為“usr/local/src/hadoop-2.7.3”bin/hdfsnamenode-format步驟2:在Hadoop主目錄下,啟動(dòng)Hadoop,命令如下sbin/start-dfs.sh步驟3:查看集群是否啟動(dòng)成功,命令為jps,有4個(gè)進(jìn)程則啟動(dòng)成功,如圖2-2-1啟動(dòng)HDFS集群
注意:jps是JDK中的命令,不是Linux命令。不安裝JDK不能使用jps步驟4:Web端查看HDFS文件系統(tǒng)是否啟動(dòng)成功,網(wǎng)址為http://master的ip:50070/啟動(dòng)成功頁(yè)面如圖2-2-2注意格式化NameNode,會(huì)產(chǎn)生新的集群ID,導(dǎo)致NameNode和DataNode的集群ID不一致,集群找不到以往數(shù)據(jù)。所以,格式化NameNode時(shí),一定要先刪除data數(shù)據(jù)和log日志,然后再格式化NameNode配置YARN集群
步驟1進(jìn)入Hadoop配置文件主目錄,編輯yarn-env.sh文件,配置其JAVA_HOME,修改JAVA_HOME路徑,將以“#exportJAVA_HOME=”開頭的那一行代碼替換成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步驟2:編輯yarn-site.xml文件,清空文件,在里面輸入如下代碼<configuration><!--Reducer獲取數(shù)據(jù)的方式--><property>配置YARN集群
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>配置YARN集群
<value>master</value></property></configuration>步驟3編輯mapred-env.sh文件,修改JAVA_HOME路徑,將以“#exportJAVA_HOME=”開頭的那一行代碼替換成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步驟4:生成mapred-site.xml文件。在Hadoop主目錄下執(zhí)行如下命令配置YARN集群?jiǎn)螕舸颂幪砑诱腃onfigureMapRedSiteXMLcpetc/hadoop/mapred-site.xml.templateetc/hadoop/mapred-site.xml步驟5:清空文件mapred-site.xml,在里面輸入如下代碼單擊此處添加項(xiàng)正文<configuration>單擊此處添加項(xiàng)正文<!--指定MR運(yùn)行在YARN上-->單擊此處添加項(xiàng)正文<property>單擊此處添加項(xiàng)正文<name></name>單擊此處添加項(xiàng)正文配置YARN集群
<value>yarn</value>
</property>
</configuration>啟動(dòng)YARN集群注意:?jiǎn)?dòng)前必須保證NameNode和DataNode已經(jīng)啟動(dòng)步驟1:在Hadoop主目錄下,啟動(dòng)ResourceManager,命令如下sbin/yarn-daemon.shstartresourcemanager步驟2:?jiǎn)?dòng)NodeManager。命令如下sbin/yarn-daemon.shstartnodemanager啟動(dòng)YARN集群
步驟3:Web端查看YARN是否啟動(dòng)成功,網(wǎng)址為
http://master的ip:8088/cluster
啟動(dòng)成功頁(yè)面如圖2-2-3任務(wù)三Hadoop完全分布式集群搭建07任務(wù)工單
任務(wù)場(chǎng)景現(xiàn)在需要構(gòu)建企業(yè)級(jí)Hadoop系統(tǒng),Hadoop的守護(hù)進(jìn)程分別運(yùn)行在由多個(gè)主機(jī)搭建的集群上,不同節(jié)點(diǎn)擔(dān)任不同的角色
任務(wù)準(zhǔn)備全班學(xué)生以4人左右為一組,各組選出組長(zhǎng)。請(qǐng)組長(zhǎng)組織組員查找相關(guān)資料,并組織討論和匯總問題1:Linux的shell腳本怎么編寫問題2:請(qǐng)談?wù)勀銓?duì)端口號(hào)的理解問題3:什么是SSH免密登錄必備知識(shí)技能:一、Linuxhosts文件"hosts文件功能解釋"hosts是一個(gè)沒有擴(kuò)展名的系統(tǒng)文件,其作用就是將一些常用的網(wǎng)址域名與其對(duì)應(yīng)的IP地址建立一個(gè)關(guān)聯(lián)“數(shù)據(jù)庫(kù)”。當(dāng)用戶在瀏覽器中輸入一個(gè)需要登錄的網(wǎng)址時(shí),系統(tǒng)會(huì)首先自動(dòng)從hosts文件中尋找對(duì)應(yīng)的IP地址,一旦找到,系統(tǒng)會(huì)立即打開對(duì)應(yīng)網(wǎng)頁(yè)版。hosts文件通常用于補(bǔ)充或取代網(wǎng)絡(luò)中DNS的功能,與DNS不同的是,計(jì)算機(jī)的用戶可以直接對(duì)hosts文件進(jìn)行控制修改hosts文件實(shí)現(xiàn)域名解析hosts文件還可用于將IP地址映射到主機(jī)名。hosts文件位于/etc/目錄下。通過修改hosts文件,我們可以手動(dòng)指定某個(gè)域名(主機(jī)名)對(duì)應(yīng)的IP地址,從而實(shí)現(xiàn)域名(主機(jī)名)解析。修改hosts文件需要root權(quán)限,在進(jìn)行操作前請(qǐng)確認(rèn)自己是否具備足夠的權(quán)限。如果你不確定要添加哪些內(nèi)容到hosts文件,請(qǐng)謹(jǐn)慎操作。修改完hosts文件后,請(qǐng)務(wù)必重啟網(wǎng)絡(luò)服務(wù)或者重啟計(jì)算機(jī)以使修改生效必備知識(shí)技能:二、Linux環(huán)境變量
概念環(huán)境變量(environmentvariables),一般是指在操作系統(tǒng)中用來指定操作系統(tǒng)運(yùn)行環(huán)境的一些參數(shù)。環(huán)境變量通常具有某些特殊用途,在系統(tǒng)當(dāng)中通常具有全局特性(類似于程序中的全局變量)
運(yùn)行程序要執(zhí)行一個(gè)程序,首先要找到該程序在磁盤中的位置,那么如何去尋找該程序呢?當(dāng)然是通過該程序的路徑。問題來了,為什么系統(tǒng)命令也是程序,但是執(zhí)行它們時(shí)我們不需要帶上路徑,而我們自己的程序需要帶上路徑(例如:執(zhí)行當(dāng)前目錄下的可執(zhí)行文件ta,需要用。ta,字符。是當(dāng)前路徑的意思,因此是執(zhí)行當(dāng)前路徑的文件ta)。如果我們想讓自己的程序在執(zhí)行時(shí)也不需要帶上路徑(即,直接使用ta)應(yīng)該怎樣做方法1:將要執(zhí)行的文件拷貝到系統(tǒng)的默認(rèn)路徑下(系統(tǒng)執(zhí)行命令會(huì)在默認(rèn)路徑下尋找)。命令cp文件名/usr/bin/但是,我們不推薦這種方法,因?yàn)槲覀冏约旱某绦蛭唇?jīng)過測(cè)試會(huì)污染操作系統(tǒng)的指令池。這種方法之所以可以實(shí)現(xiàn),是因?yàn)橄到y(tǒng)的環(huán)境變量會(huì)幫助編譯器查找對(duì)應(yīng)的文件方法2:直接將程序路徑添加到環(huán)境變量里。命令exportPATH=$PATH:#程序路徑添加到“”后面在Linux中的bash(命令行)是可以定義變量的。Linux終端或者SecureCRT等遠(yuǎn)程連接工具登錄的時(shí)候,系統(tǒng)會(huì)將。bash_profile執(zhí)行一次,將環(huán)境變量放置在當(dāng)前的shell中,所以一旦啟動(dòng)成功系統(tǒng)就會(huì)在內(nèi)存中維護(hù)一個(gè)環(huán)境變量$PATH必備知識(shí)技能:二、Linux環(huán)境變量etc/profile文件Linux的/etc/profile文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境變量信息,此文件的修改會(huì)影響到所有用戶。登錄Linux時(shí),etc/profile、bash_profile等文件有一定的執(zhí)行順序,執(zhí)行順序?yàn)?etc/profile->(bash_profile|~bash_login|~profile)->bashrc->/etc/bashrc->~bash_logout必備知識(shí)技能:二、Linux環(huán)境變量
3.etc/profile文件執(zhí)行順序分析在剛登錄Linux時(shí),首先啟動(dòng)/etc/profile文件,然后再啟動(dòng)用戶目錄下的~bash_profile、bash_login或~profile文件中的其中一個(gè),執(zhí)行的順序?yàn)椋篵ash_profile、bash_login、profile。如果~bash_profile文件存在的話,一般還會(huì)執(zhí)行~bashrc文件。因?yàn)樵趡bash_profile文件中一般會(huì)有下面的代碼if[-f~bashrc];then.~bashrcfi~bashrc中,一般還會(huì)有以下代碼if[-f/etc/bashrc];then.bashrcfi所以,bashrc會(huì)調(diào)用/etc/bashrc文件。最后,在退出shell時(shí),還會(huì)執(zhí)行~bash_logout文件必備知識(shí)技能:二、Linux環(huán)境變量
文件作用域1)/etc/profile此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息,當(dāng)用戶第一次登錄時(shí),該文件被執(zhí)行,并從/etc/profile.d目錄的配置文件中搜集shell的設(shè)置2)/etc/bashrc為每一個(gè)運(yùn)行bashshell的用戶執(zhí)行此文件,當(dāng)bashshell被打開時(shí),該文件被讀取3)~bash_profile每個(gè)用戶都可使用該文件輸入自己專用的shell信息,用戶登錄時(shí),該文件僅執(zhí)行一次!默認(rèn)情況下,會(huì)執(zhí)行用戶的。bashrc文件4)~bashrc該文件包含專用于你的bashshell的bash信息,當(dāng)?shù)卿浺约懊看未蜷_新的shell時(shí),該文件被讀取5)~bash_logout當(dāng)每次退出系統(tǒng)(退出bashshell)時(shí),執(zhí)行該文件。另外,etc/profile中設(shè)定的變量(全局)可以作用于任何用戶,而~bashrc等中設(shè)定的變量(局部)只能繼承/etc/profile中的變量,它們是"父子"關(guān)系注意1)~bash_profile是交互式、login方式進(jìn)入bash運(yùn)行的2)~bashrc是交互式、non-login方式進(jìn)入bash運(yùn)行的通常二者設(shè)置大致相同,前者會(huì)調(diào)用后者必備知識(shí)技能:三、SSH免密登錄
SSH免密登錄原理SSH(SecureShell)是一種網(wǎng)絡(luò)通信協(xié)議,用于在不安全的網(wǎng)絡(luò)上進(jìn)行加密的連接。為了避免登錄時(shí)每次都要輸入密碼,可以使用SSH免密登錄功能。免密登錄的原理如下使用ssh-keygen命令生成A服務(wù)器的密鑰對(duì)(一對(duì)密鑰,公鑰A和私鑰A)將A服務(wù)器的公鑰A拷貝給另外一臺(tái)服務(wù)器B保存起來,這個(gè)過程也叫作授權(quán)授權(quán)完成后,A服務(wù)器再訪問B服務(wù)器,會(huì)攜帶著用私鑰A加密過的數(shù)據(jù)B服務(wù)器接收到請(qǐng)求數(shù)據(jù)后,使用公鑰A解密必備知識(shí)技能:三、SSH免密登錄
B服務(wù)器將解密成功的信息通過公鑰A加密后返回給A服務(wù)器A服務(wù)器接收到數(shù)據(jù)后,用私鑰A解密,解密成功,即“對(duì)暗號(hào)”成功,登錄成功.ssh目錄下(ssh)的文件功能如表2-3-1注意SSH免密登錄僅適用于已經(jīng)知道正確的私鑰的情況。因此,必須小心管理好自己的私鑰,不要與他人共享。當(dāng)更換計(jì)算機(jī)、重裝系統(tǒng)等情況時(shí),需要重新生成新的密鑰對(duì),然后再將公鑰添加到目標(biāo)主機(jī)的authorized_keys文件中必備知識(shí)技能:四、Hadoop日志
Hadoop日志Hadoop存在多種日志文件,其中master上的日志文件記錄全面信息,包括slave上的jobtracker與datanode也會(huì)將錯(cuò)誤信息寫到master中。而slave中的日志主要記錄完成的task信息默認(rèn)情況下,Hadoop日志保存在HADOOP_HOME/logs目錄,但一般情況下建議重新指定路徑,常用的是/var/log/hadoop,通過在hadoop-env.sh中增加以下一行來實(shí)現(xiàn)exportHADOOP_LOG_DIR=/var/log/hadoop以本書為例,slave為hadoop1和hadoop2,本書的完全分布式Hadoop主目錄HADOOP_HOME值為/usr/local/src/hadoop-2.7.3/啟動(dòng)HDFS的時(shí)候就提示了日志路徑,日志文件存儲(chǔ)路徑為:/usr/local/src/hadoop-2.7.3/logsnamenode日志文件名為hadoop-root-namenode-master.outdatanode日志文件名為hadoop-root-datanode-master.outhadoop-root-datanode-hadoop1.outhadoop-root-datanode-hadoop2.outsecondarynamenode日志文件名為hadoop-root-secondarynamenode-hadoop2.outresourcemanager日志文件名為yarn-root-resourcemanager-hadoop1.outnodemanager日志文件名為yarn-root-nodemanager-hadoop1.outyarn-root-nodemanager-hadoop1.outyarn-root-nodemanager-hadoop2.out必備知識(shí)技能:四、Hadoop日志master服務(wù)器上的日志master中主要有2種日志,分別以log與out作后綴,其中每一個(gè)守護(hù)進(jìn)程都會(huì)產(chǎn)生這2個(gè)日志,如jobtracker、namenode、tasktracker、datanode均會(huì)分別產(chǎn)生這2個(gè)日志文件,這2個(gè)文件均是每天生成一個(gè)。log日志文件通過log4j記錄的,大部分應(yīng)用程序的日志消息都寫到該日志文件中,故障診斷的首要步驟即為檢查該文件,此日志文件最重要。out日志文件記錄標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤日志,由于大多日志均使用log4j輸出至log日志文件中,因此此文件很小或者為空,系統(tǒng)僅保留最新的5個(gè)日志。這2類日志的命名均包含用戶名稱、守護(hù)進(jìn)程名和本地主機(jī)名等信息。tasktracker與datanode上的部分日志會(huì)保存在master中,方便出現(xiàn)問題時(shí)定位至具體服務(wù)器slave服務(wù)器上的日志每個(gè)tasktracker子進(jìn)程都用log4j產(chǎn)生日志文件,這些日志記錄了各個(gè)task的日志輸出。tasktracker會(huì)記錄它所運(yùn)行的所有task的日志,默認(rèn)目錄為$HADOOP_LOG_DIR/userlogs,且每個(gè)job單獨(dú)生成一個(gè)目錄。slave上面還有datanode相關(guān)日志必備知識(shí)技能:四、Hadoop日志
審計(jì)日志
這個(gè)日志記錄所有HDFS請(qǐng)求,默認(rèn)是關(guān)閉的。一般寫入namenode的日志中,在perties屬性文件中設(shè)置以下選項(xiàng)
#AllauditeventsareloggedatINFOlevel
node.FSNamesystem.audit=WARN
由于審計(jì)信息在INFO級(jí)別實(shí)現(xiàn)的,因此將WARN改為INFO即可開啟審計(jì)任務(wù)實(shí)施:一、HDFS集群配置
步驟1進(jìn)入Hadoop配置文件主目錄,配置core-site.xml,清空文件,在里面輸入如下代碼
<configuration>單擊此處添加項(xiàng)正文
<!--指定HDFS中NameNode的地址-->單擊此處添加項(xiàng)正文
<property>單擊此處添加項(xiàng)正文
<name>fs.defaultFS</name>單擊此處添加項(xiàng)正文
<value>hdfs://master:9000</value>單擊此處添加項(xiàng)正文任務(wù)實(shí)施:一、HDFS集群配置單擊此處添加正文</property>單擊此處添加項(xiàng)正文<!--指定Hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)目錄-->單擊此處添加項(xiàng)正文<property>單擊此處添加項(xiàng)正文<name>hadoop.tmp.dir</name>單擊此處添加項(xiàng)正文HadoopDataPath<value>usr/local/src/hadoop-2.7.3/data/tmp</value></property>單擊此處添加項(xiàng)正文任務(wù)實(shí)施:一、HDFS集群配置
</configuration>步驟2編輯hadoop-env.sh文件,修改JAVA_HOME路徑,將以“#exportJAVA_HOME=”開頭的那一行代碼替換成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步驟3:編輯hdfs-site.xml,清空文件,在里面輸入如下代碼<configuration><!--指定副本的數(shù)量-->任務(wù)實(shí)施:一、HDFS集群配置
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定Hadoop輔助名稱節(jié)點(diǎn)主機(jī)配置-->
<property>任務(wù)實(shí)施:一、HDFS集群配置
<name>node.secondary.http-address</name>
<value>hadoop2:50090</value>
</property>
<!--存儲(chǔ)fsimage文件的地方-->
<property>
<name>.dir</name>任務(wù)實(shí)施:一、HDFS集群配置01HadoopDataPath<value>usr/local/src/hadoop-2.7.3/data/tmp/dfs/name</value>02</property>單擊此處添加項(xiàng)正文03<!--HDFS數(shù)據(jù)存放block的地方-->單擊此處添加項(xiàng)正文04<property>單擊此處添加項(xiàng)正文05<name>dfs.datanode.data.dir</name>單擊此處添加項(xiàng)正文任務(wù)實(shí)施:一、HDFS集群配置
datatmpdfs<value>usr/local/src/hadoop-2.7.3/data/tmp/dfs/data</value>
</property>單擊此處添加項(xiàng)正文
</configuration>單擊此處添加項(xiàng)正文任務(wù)實(shí)施:二、YARN集群配置
步驟1編輯yarn-env.sh,修改JAVA_HOME路徑,將以“#exportJAVA_HOME=”開頭的那一行代碼替換成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步驟2:編輯yarn-site.xml,清空該文件,在里面輸入如下代碼<configuration><!--Reducer獲取數(shù)據(jù)的方式--><property>任務(wù)實(shí)施:二、YARN集群配置
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定YARN的ResourceManager的地址-->
<property>任務(wù)實(shí)施:二、YARN集群配置
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
</configuration>任務(wù)實(shí)施:三、MapReduce配置
步驟1編輯mapred-env.sh,修改JAVA_HOME路徑,將以“#exportJAVA_HOME=”開頭的那一行代碼替換成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步驟2:生成mapred-site.xml。在hadoop主目錄下執(zhí)行如下命令ConfigureMapRedSiteXMLcpetc/hadoop/mapred-site.xml.templateetc/hadoop/mapred-site.xml步驟3:在Hadoop主目錄下,清空文件mapred-site.xml,輸入如下代碼<configuration>任務(wù)實(shí)施:三、MapReduce配置
<!--指定MR運(yùn)行在YARN上-->
<property>
<name></name>
<value>yarn</value>
</property>
<!--歷史服務(wù)器端地址-->任務(wù)實(shí)施:三、MapReduce配置<property><name>mapreduce.jobhistory.address</name><value>hadoop1:10020</value></property><!--歷史服務(wù)器web端地址--><property>任務(wù)實(shí)施:三、MapReduce配置
<name>mapreduce.jobhistory.webapp.address</name><value>hadoop1:19888</value></property><property>HadoopClasspathConfiguration<name>yarn.application.classpath</name><value>%HADOOP_HOME%/share/hadoop/mapreduce/*,%HADOOP_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_HOME%/share/hadoop/common/*,%HADOOP_HOME%/share/hadoop/common/lib/*,%HADOOP_HOME%/share/hadoop/yarn/*,%HADOOP_HOME%/share/hadoop/yarn/lib/*,%HADOOP_HOME%/share/hadoop/hdfs/*,%HADOOP_HOME%/share/hadoop/hdfs/lib/*</value></property>任務(wù)實(shí)施:三、MapReduce配置<property><name>yarn.nodemanager.resource.memory-mb</name><value>2048</value></property><property><name>yarn.scheduler.minimum-allocation-mb</name>任務(wù)實(shí)施:三、MapReduce配置
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>任務(wù)實(shí)施:三、MapReduce配置
01</configuration>單擊此處添加項(xiàng)正文
02步驟4:配置slaves文件單擊此處添加項(xiàng)正文
03編輯Hadoopslaves文件在Hadoop配置目錄/usr/local/src/hadoop-2.7.3/etc/hadoop下,輸入vimslaves命令新建并編輯slaves文件,輸入如下內(nèi)容
04master單擊此處添加項(xiàng)正文
05hadoop1單擊此處添加項(xiàng)正文
06hadoop2單擊此處添加項(xiàng)正文任務(wù)實(shí)施:三、MapReduce配置步驟5:刪除臨時(shí)文件和日志文件在Hadoop主目錄下,刪除之前偽分布式運(yùn)行時(shí)創(chuàng)建的臨時(shí)文件和日志文件rm-rfdata/tmprm-rflogs/*任務(wù)實(shí)施:四、克隆虛擬機(jī)
步驟1:刪除臨時(shí)文件
在Hadoop主目錄下,刪除之前偽分布式運(yùn)行時(shí)創(chuàng)建的臨時(shí)文件和日志文件
rm-rfdata/tmp
rm-rflogs/*
步驟2:以master為基礎(chǔ),克隆出hadoop1和hadoop2,配置網(wǎng)絡(luò)任務(wù)實(shí)施:五、Linux配置步驟1:修改主機(jī)名。切換到root,分別在hadoop1和hadoop2上執(zhí)行如下命令hadoop1上執(zhí)行:hostnamectlset-hostnamehadoop1hadoop2上執(zhí)行:hostnamectlset-hostnamehadoop2步驟2:修改hosts文件,分別在3臺(tái)虛擬機(jī)上編輯hosts文件,命令為vim/etc/hostshosts文件內(nèi)容為任務(wù)實(shí)施:五、Linux配置
0master單擊此處添加項(xiàng)正文
hadoop1單擊此處添加項(xiàng)正文
hadoop2單擊此處添加項(xiàng)正文
注意0為master的IP地址,44為hadoop1的IP地址,44為hadoop2的IP地址任務(wù)實(shí)施:六、SSH免密登錄配置
三虛擬機(jī)免密互訪配置在主機(jī)名為master、hadoop1、hadoop2的虛擬機(jī)上面配置,實(shí)現(xiàn)3臺(tái)虛擬機(jī)之間兩兩互相免密登錄步驟1在master、hadoop1、hadoop2上清空原來的。ssh文件,并給每臺(tái)機(jī)器創(chuàng)建公鑰密鑰以及自我免密登錄,命令為SSHKeyGenerationcd/root;rm-rfhd?.pub;rm-rf.ssh;ssh-k
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中醫(yī)診斷學(xué)習(xí)題(附參考答案)
- 教育教學(xué)理論考試試題與答案
- 中醫(yī)學(xué)臨床題庫(kù)及答案
- 公務(wù)員考試(時(shí)事熱點(diǎn))經(jīng)典試題及答案(湖南省懷化市2025年)
- 漢中市西鄉(xiāng)縣輔警考試公安基礎(chǔ)知識(shí)考試真題庫(kù)及參考答案
- 大學(xué)醫(yī)藥考試試題及答案
- 《職業(yè)衛(wèi)生》模擬考試題與參考答案
- 法律常識(shí)題庫(kù)及答案
- 2025年黨建工作知識(shí)競(jìng)賽測(cè)試題庫(kù)附答案
- 阿里云秋招試題及答案
- 公共管理倫理學(xué)(修訂版) 課件01導(dǎo)論;02行政倫理觀;03行政倫理規(guī)范
- 計(jì)算機(jī)高級(jí)技師專業(yè)技術(shù)及理論知識(shí)試題庫(kù)與答案(共500題)
- 鍋爐房清潔衛(wèi)生制度模版(3篇)
- 踝關(guān)節(jié)骨折教學(xué)查房
- 食材配送消防安全應(yīng)急預(yù)案
- 《跨境直播運(yùn)營(yíng)》課件-跨境電商交易平臺(tái)直播
- 《公園體系規(guī)劃導(dǎo)則》
- 人教部編版統(tǒng)編版八年級(jí)歷史上冊(cè)期末復(fù)習(xí)資料(復(fù)習(xí)提綱+思維導(dǎo)圖)講義
- 無人機(jī)系統(tǒng)數(shù)據(jù)鏈
- GB/T 4100-2015陶瓷磚
- GB/T 31120-2014糖果術(shù)語(yǔ)
評(píng)論
0/150
提交評(píng)論