版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程名稱:Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ)
章節(jié)名稱:初識(shí)Hadoop及HDFS分布式
系統(tǒng)
北京智酷道捷教育科技有限公司
年12月
目錄
一、實(shí)訓(xùn)目的...................................................................2
二、實(shí)訓(xùn)方式....................................................................2
三、實(shí)訓(xùn)內(nèi)容....................................................................2
(-)HADOOP偽分布甄境搭建...............................................2
(二)基于JAVAAPI的編程實(shí)例.................................................6
四、實(shí)訓(xùn)環(huán)境..................................................................60
五、項(xiàng)目答辯..................................................................60
六、評(píng)分標(biāo)準(zhǔn)..................................................................62
一、實(shí)訓(xùn)目的
為了讓學(xué)生掌握Hadoop偽分布式系統(tǒng)的搭建,學(xué)會(huì)使用IDEA開發(fā)工具,調(diào)用
Hadoop提供的JavaAPI完成對(duì)HDFS的基本文件操作(創(chuàng)建目錄、遞歸顯示文件、上傳
文件、下載文件),特制訂本項(xiàng)目實(shí)訓(xùn)指導(dǎo)手冊(cè)。
通過本項(xiàng)目課程的學(xué)習(xí),要求學(xué)生掌握并達(dá)成以下的目標(biāo):
>了解Hadoop生態(tài)系統(tǒng)。
>掌握HDFS分布式文件系統(tǒng)的基本使用。
>搭建Hadoop偽分布式文件系統(tǒng)。
二、實(shí)訓(xùn)方式
項(xiàng)目實(shí)訓(xùn)采取理論+實(shí)戰(zhàn)的學(xué)習(xí)輔導(dǎo)形式,先理論后實(shí)戰(zhàn),循序漸進(jìn),以練為主。
具體分為兩個(gè)部分:實(shí)訓(xùn)基礎(chǔ)、實(shí)戰(zhàn)演練。
實(shí)訓(xùn)基礎(chǔ):教師帶領(lǐng)學(xué)生解析項(xiàng)目案例,回顧之前課堂上所學(xué)知識(shí),以快速實(shí)現(xiàn)
Hadoop偽分布式系統(tǒng)的搭建,并使用IDEA開發(fā)工具調(diào)用Hadoop提供的JavaAPI完成
對(duì)HDFS的基本文件操作。
實(shí)戰(zhàn)演練:教師帶領(lǐng)學(xué)生實(shí)操完成Hadoop偽分布式系統(tǒng)的搭建,并使用IDEA開發(fā)
工具調(diào)用Hadoop提供的JavaAPI完成對(duì)HDFS的基本文件操作,通過這兩個(gè)案例的開發(fā)
鍛煉,逐步了解Hadoop生態(tài)系統(tǒng)。
三、實(shí)訓(xùn)內(nèi)容
(-)Hadoop偽分布式環(huán)境搭建
1.Hadoop安裝的三種模式
Hadoop安裝有三種模式,分別是單機(jī)模式、偽分布式模式和完全分布式模式,我們
可以根據(jù)不同的使用需求選擇不同的模式進(jìn)行安裝。
第一次接觸Hadoop可以安裝單機(jī)模式進(jìn)行體驗(yàn),這種模式基于單機(jī)來運(yùn)行,安裝簡(jiǎn)
單方便,但無法體現(xiàn)出分布式的任何效果。
偽分布式模式一般是在學(xué)習(xí)的時(shí)候安裝使用。僅用于學(xué)習(xí)時(shí)由于不具備相應(yīng)的硬件環(huán)境,
沒有那么多機(jī)器來進(jìn)行完整的分布式環(huán)境的搭建,這時(shí)我們可以采用單臺(tái)機(jī)器使用多個(gè)線程
模擬多臺(tái)機(jī)器的效果,其中一個(gè)線程可以模擬一臺(tái)機(jī)器,以此模擬真實(shí)的分布式環(huán)境,從而
體驗(yàn)分布式效果。
完全分布式模式是應(yīng)用在生產(chǎn)環(huán)境的,當(dāng)我們?cè)谏a(chǎn)環(huán)境下正式使用Hadoop的時(shí)候
就需要采用完全分布式模式來搭建,真實(shí)地在多臺(tái)機(jī)器(或啟動(dòng)多個(gè)虛擬機(jī))上部署集群,
充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。
2.搭建的準(zhǔn)備工作
下面我們來看一下偽分布式模式搭建的準(zhǔn)備工作,首先需要檢查一下JDK是否已經(jīng)安
裝好,因?yàn)镠adoop是基于Java語(yǔ)言環(huán)境的,所以必須事先安裝好Java運(yùn)行環(huán)境JDK。
本課程中我們使用Hadoop2.9.2版本,相應(yīng)的我們推薦使用JDK8版本。
安裝JDK8時(shí),要修改/etc/profile文件,并添加以下內(nèi)容:
exportJAVA_HOME=/opt/jdkl.8.0_65
exportJAVA_BIN=/opt/jdkl.8.0_65/bin
exportPATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/toolsjar
exportJAVA_HOMEJAVA_BINPATHCLASSPATH
執(zhí)行生效:./etc/profile
其次還需要檢查一下安裝的這臺(tái)機(jī)器的主機(jī)名是否配置過,因?yàn)闀?huì)在后續(xù)的配置中引用
這個(gè)主機(jī)名,如果沒有配置主機(jī)名,直接引用IP地址會(huì)比較麻煩,而且容易出錯(cuò)。
我們可以修改主機(jī)名為:
hostnamectlset-hostnamexxx
還需要配置/etc/hosts文件,這個(gè)文件主要是完成主機(jī)名和IP地址的映射關(guān)系,配置
完成后,通過網(wǎng)絡(luò)訪問可以直接使用主機(jī)名,也可以使用IP地址。
安裝SSH免密通道。在安裝過程中線程之間需要模擬主機(jī)進(jìn)行登錄,這時(shí)需要輸入登
錄密碼,每次都輸入密碼會(huì)很麻煩,也會(huì)干擾安裝過程,配置免密通道之后登錄能夠?qū)崿F(xiàn)自
動(dòng)化,可以大大提高工作效率。具體如下:
ssh-keygen-trsa
ssh-copy-idroot@hadoop001
配置HADOOP_HOME環(huán)境變量,因?yàn)楹竺媸褂肏adoop在運(yùn)行的時(shí)候很多地方需要
引用這個(gè)環(huán)境變量,事先配置好在使用的時(shí)候可以減少很多麻煩。
3.Hadoop相關(guān)配置
完成準(zhǔn)備工作之后還需要對(duì)Hadoop系統(tǒng)進(jìn)行配置,首先需要把Hadoop安裝包上傳
到相應(yīng)的主機(jī)上。主機(jī)的操作系統(tǒng)我們推薦使用Linux操作系統(tǒng),解壓上傳的安裝包后找到
里面的etc目錄,這里主要配置以下4個(gè)文件:
?酉己置etc/hadoop-env.sh
JAVA_HOME
HADOOP_CONF_DIR
?酉己置etc/hadoop/core-site.xml
<configuration>
<!--指定namenode服務(wù)器地址和通信端口號(hào)-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--指定namenode存放元數(shù)據(jù)的目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>${HADOOP_HOME}/tmp</value>
</property>
</configuration>
?酉己置etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>l</value>
</property>
<property>
<name>.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
?酉己置etc/hadoop/slaves
slaves文件里面記錄的是集群里所有DataNode的主機(jī)名。
第一個(gè)文件hadoop-env.sh主要是配置Hadoop系統(tǒng)運(yùn)行的一些環(huán)境變量,如JDK
安裝在什么位置,以及Hadoop相關(guān)的配置文件在什么位置等。第二個(gè)文件
etc/hadoop/core-site.xml,主要是配置Hadoop相關(guān)的一些核心的公共參數(shù)。第三個(gè)文
件etc/hadoop/hdfs-site.xml,主要是配置與HDFS相關(guān)的一些參數(shù)。第四個(gè)文件
etc/hadoop/slaves,配置在整個(gè)集群中哪些機(jī)器是DataNode。
4.啟動(dòng)Hadoop
完成相關(guān)的配置之后就可以啟動(dòng)Hadoop了,啟動(dòng)后首先要格式化HDFS分布式文件
系統(tǒng)(bin/hdfsnamenode-format),這一步操作與我們使用一塊新的硬盤,安裝好后需
要先進(jìn)行格式化才能使用是一樣的道理。然后通過命令檢查NameNode和DataNode的
后臺(tái)進(jìn)程是否正常出現(xiàn),再繼續(xù)訪問NameNode的web管理頁(yè)面來確認(rèn)安裝是否成功。
以上就是整個(gè)安裝的過程。
(二)基于JavaAPI的編程實(shí)例
下面我們通過創(chuàng)建目錄、遞歸顯示文件、文件上傳和文件下載4個(gè)實(shí)例來練習(xí)基于Java
API的編程。
1.Hadoop官網(wǎng)中學(xué)習(xí)文檔的使用
在實(shí)際編程之前我們先了解一下Hadoop官方網(wǎng)站中學(xué)習(xí)文檔的使用方法。
進(jìn)入Hadoop的官網(wǎng),單擊Documentation,在展開的列表中選擇使用的版本,這
里選擇我們使用的2.9.2版本,進(jìn)入相應(yīng)版本的文檔頁(yè)面,如圖1、圖2所示。
ApacheHadoopDCNWANMDocument810n.CnmmunRy?OevHopment?Help?Otf?
latest
Stable
2.10.0
3.1.3
TheApache?Hadoop?projec32-1sourcesoftwareforreliable,scalable,distributedcomputing.
TheApacheHadoopsoftwareISziorkthatallowsforthedistributedprocessingoflargedatasetsacross
clustersofcomputersusingsim〃jmodels.Itisdesignedtoscaleupfromsingleserverstothousandsof
machines,eachofferinglocalcj----------torage.Ratherthanrelyonhardwaretodeliverhigh-availability,thelibrary
itselfisdesignedtodetectandhandlefailuresattheapplicationlayer,sodeliveringahighly-availableserviceontopofa
clusterofcomputers,eachofwhichmaybepronetofailures.
Leammore?
LatestnewsModulesRelatedprojects
Theprojectincludesthesemodules:OtherHadoop4datedprojectsatApacheinclude:
2019Oct29
圖1選擇Hadoop版本
cheHadoop2.9.2
ApacheHadoop2.9.2ifapointreteneinthe7.x.yraieawbn?,buMnguponthep?ev?ouf?tabl?rdcate2.9.1.
Hereashortoverviewofthemajorfeaturesandtmprowements.
?YARN
?YARNTimelineServKVv.2.Seeu?crdocumtntatgnformorede?a?i$.
?YARNFederation.S??thedocumwiMion(ormore
?OpportufuweConUmers.Seetheuserdocumentationformoredefait*
?YARNWebUIv.2.S?ettwtmtdocume*itabonformoredctaito.
?ChangmQqueueconfigurationVMAPI(supportedonlyontheCapacityScheduler).Seetheu*e?documenUtionformore
?UpdateR?M>urce?andExecutionTypeolan?■ocated/runrurx)eontMter.(supportedonlyontheCapaatyScheduief).Seetheuser6g
GettingStarted
TheHadoopdocumentationindude*theinformationyouneedtogetstartedus?>gHadoop.Beginwiththe二?,…whichshowsyouhowtosetup*stngie-nodeHado
;;,(oteamhowto>etup*muki-nodeHadoopinualMion.
圖22.9.2版本學(xué)習(xí)文檔頁(yè)面
在頁(yè)面左側(cè)目錄欄中找到與本例相關(guān)的APIdocs,單擊該鏈接,進(jìn)入Hadoop提供的
介紹Java類相關(guān)的信息文檔頁(yè)面,里面有詳盡的使用方法說明,如圖3、圖4所示。
HadoopStreamtnQ
HadocoArdwes
HodoopArthrveLogs
D?Cp
GTX1M<M
Rxxnen
ResourceEstMnator
Service
SchedulerloadStmuheor
M?doopB<nchnwiong
RWcmKe
ConligurditkMi
core-4e<*utt.wni
Mfi-defawK.xnM
m?prcd-dcfau<.xnM
yarn—.xml
DepcecAtedProperg
圖3單擊APIdocs鏈接
MtClasses
Packages
<xgipachchadoop
o(g?p?cher>adoof>ant
<xgapachehadoopantconMonApacheHadoopMain2.9.2API
orgapachehadocpdastrfcMon
<xgapochehadoopconf
<xg?p?CheMdMpccntrb兇ou>M
argapachehadocpcantrtiuMk>o*i
orgapachehadocpcrypto
orgapacheMdocpcrnMokey
sqjtoachetuKtocoavotokeyMx
圖4進(jìn)入文檔信息頁(yè)面
在編程時(shí)如果遇到問題可以查閱該文檔尋找解決方法,提高使用HadoopJavaAPI的
工作效率。下面以查詢Configuration為例介紹具體查找方法。
在文檔信息頁(yè)面單擊上方的index,如圖5所示,進(jìn)入索引頁(yè)面。
AllClasses
Packages
PrevNextFramesNoFrames|Navigationj
orgapachehadoop
orgapachehadoopant
orgapachehadoopantconditionApacheHadoopMain2.9.2API
orgapache.hadoopdassificauon
orgapachehadoop.conf
orgapachehadoopcontribbkjoumalCommon
orgapachehadoopcontnbutilsjoin
orgapachehadoopcryptoPadcas*D?scription
orgapachehadoopcrypto.keyorg.apache.hadoop
ora.apache.hadooacryptokev.kms
org.apache.hadoop.ant
?—org.apach?.hadoop.ant.condition
org.apache.hadoop.classification
AbstractCountefsorg.apachc.hadoop.confConfigurationof
AbstractDelegationlbkenldenlifierorg.apache.hadoop.contrib.bkjoumal
AbstractDelegationTokenSecretManager
org.apache.hadoop.contrib.utils.join
AbstraaDNSToSwrtchMappmg
AbstradEventorg.apache.hadoop.crypto
AbslractFileSystemorg.apachv.hadoop.crypto.keyLicensedtothet
AbstractLaunchableSennce
AbstractLrvelinessMonrtoforg.apacht.hadoop.crypto.kcy.kms
AbstradMapWntabteorg.apach?.hadoop.crypto.k?y.kms.s?rv?r
AbstradMetTM:
oro.apach%hadoop.crypto.random
圖5單擊index
在索引頁(yè)面中按下Ctrl+F組合鍵,顯示查找框,在查找框中輸入想要查找的
Configuration,輸入元成后Configuration在頁(yè)面中會(huì)美出顯示,可以通過單擊查找框中
的上、下箭頭逐一查看,直到找到我們要查找的引用,如圖6所示。
,Index(ApacheH?doopM?r.
C<coo☆A(yù)安全http%//hadoop.apache.<xg?i-、/".<)?/*",“Lxfitntf<r50
intSWEoGWHubfluttef/r?Spark
?M(MMne?T?t)Me*>odcciassorgapadtetudoopmetnc?2Me?>csRecoK)8vMe(
AMartimmuut^emetrougobfKl
?MCAtHUactfMric)?M?9XM1mcl?Mcry?p*chehMooomMnctZIMrciRecordButiilef
AMapre-<n?>eraiuMbiemdneabfta
?MtMatncsMo.Otofaet)M?tt>odmctaMcxgapachehadoopnw*K?2MMncSvmgfludda
-Mc*odnOatsoryapacAeh?doopmetncs?MeincSlnngSuMer
Mid(Abitracttf*trfc)Methodtnctessorgapacheh?toot)mMncs?MMrcSImgBuMa)
aM(K?v)-Methodrd??argapatfteh?doopuMbtocmBtoanMef
?M(K*v|*icwnofg??cr>erMooputtttoamDynamcfitoomf?r>
?M(K?y)Methodcdassfaoec^eMdoopubibtoomRttoudtedSloornFAet
aM_tM?p??45Vino)Methodmeice^trano*gapacheMdooprocoxlcomptergenetatedP?rse€Kc?tton
O*pr?cat?d
UMdiocom>9rttawchatKlcn99wtckcapMvarsaonwfwntmerawwmoncannott?usedMpartofanASCH?tnnglaefai
aMAIMCratfanti*,)?MethodmdM?<XQapachehMJoopMtutVyCtettonkM
Copya*oftheac4entoa>?fromonecredenMofifectnioanother
*ddArchlv?ToCia?*l>Mh(P*-^1
MH,
?MArchtvel
?MC?Ch?Arch?v?(VRI)
Add?arcMvwtotwlocated
?4dCach?ftMURl)MMhMmOMSorgapacMhsdoopnMprcdut*JCt>
AOdaMetobexxMnd
?Mevwdcci*??9?pKhchadoopyamap*record*MeimserMMHmvcMufTmwtneEnMv
?MChMiStrtn9String)MethodmOKMargapactwhAdoopyamaptrvcortMMMknnervK*'oacartNcadrn?>n?CHDfy
?dtfChMr?n(S*?Tten*?in?En<WyW*nM*r*)MaOM?cm*orgapachehadoopyamaparecordsOmetm?te?v<eHterwch<4iTimekn?EnM)*
?ddConfls?(Map<Suing.Stnna?)Malhodcct*MorgapacMhMocvyam<?OKOnHWnatntMmc*TmctewEi
>a:Stnr>0.totnQ)r.<<^n<xlnCU*soq;ap?ctwhMoop*acng,.;
sd<>Contatn*rft?<|u*?t(T)Methodnd?M<napactwtedoopyamdenteAMRMCte
圖6在查找框中輸入要查找的類并找到需要的引用
單擊想要查看的內(nèi)容,可以快速定位到這個(gè)類的頁(yè)面,在該頁(yè)面中可以看到這個(gè)類相關(guān)
的詳細(xì)信息,包括各類的方法、作用、構(gòu)造方法等,如圖7、圖8所示。
圖7快速定位到要查找的類的頁(yè)面
圖8進(jìn)入類的詳細(xì)信息頁(yè)面
通過詳細(xì)的信息頁(yè)面我們就可以快速查詢?cè)诰幊讨杏龅降囊恍﹩栴}的解決方法,當(dāng)然也
可以通過這些文檔學(xué)習(xí)Hadoop其他的相關(guān)應(yīng)用,這也是一個(gè)很好的學(xué)習(xí)途徑。
2.Java項(xiàng)目環(huán)境搭建
下面我們學(xué)習(xí)基于JavaAPI的編程用IntelliJIDEA來演示整個(gè)項(xiàng)目代碼的開發(fā)過程。
首先創(chuàng)建新的項(xiàng)目,并完成Java項(xiàng)目環(huán)境的搭建。
(1)創(chuàng)建新項(xiàng)目
啟動(dòng)IntelliJIDEA,單擊CreateNewProject,打開NewProject對(duì)話框,默認(rèn)顯示
為Maven項(xiàng)目,單擊Next按鈕,如圖9、圖10所示。
圖9單擊CreateNewProject
QNewProjectX
*3JavaProjectSDK:電?加
ftJavaEnterprise
JBossCreatefromarchetype
<8J2ME“'v.ivrn.-4!<.netyp<-bamboo-plugin-archetype
■Clouds,-.fm,iv-r:,(■■■,confluence-plugin-archetypc
?Spring,,.tirnivenar-hetypijira-plugin-archetype
,.<??1Ju-tvpjpamaven-archetype
VJavaFX
jbosscc-seam-archetype
?Android
id<*>data-app
W1IntelliJPUtformPlugin
.fift-archetype-basic
4SpringInitialarIrft-Archetype-blank
2ti.'maven-archetype-har
,-■>s-nmaven-archetype-sar
?uradie
,1.3m.?larrhe-,[>^-.camekarchetype-activemq
0Groovy?cdmel-Aif'-typ-camd-archetype-compon?nt
QGrails?'Hmelatchetyp^.camel-archetype-java
QApplicationForge?<I.iich-t,;.sxamel-archetype-scala
■.>moljn?-typrcamel-archetype-spring
?StaticWeb
,2metdftherypr:-camd-archetype-war
蹤Flash>"c-^n:a>ax>n-22-archetype-block
KKotlin,?>'co<oon-22-archetype-block-plain
>trcocoon-22-archetype-webapp
,EmptyProject
maven-archetype-j23叩拈
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)北師大版四年級(jí)教材詳單
- 小學(xué)數(shù)學(xué)圓錐體積學(xué)習(xí)指南
- 科學(xué)啟蒙四年級(jí)人教版教材
- 初中數(shù)學(xué)人教版目錄概覽
- 長(zhǎng)方形與正方形角的度量與測(cè)量
- 乙酸的教學(xué)心得體會(huì)
- 日月一年級(jí)語(yǔ)文課程
- 英語(yǔ)作文中的夢(mèng)想追求
- 長(zhǎng)城頌歌北師大公開課
- 五年級(jí)下冊(cè)音樂教學(xué)設(shè)計(jì)人教版
- 第3章 無人機(jī)組裝工藝基礎(chǔ)一
- 學(xué)習(xí)強(qiáng)安應(yīng)急第一響應(yīng)人理論考試答案
- 2024屆高考語(yǔ)文復(fù)習(xí):教考銜接背景下的詩(shī)歌比較閱讀+課件
- 合規(guī)練習(xí)題第二期附有答案
- DB32-T 3293-2017企業(yè)專職消防隊(duì)建設(shè)與管理規(guī)范
- 《電力電子技術(shù)說課》
- -普通高中物理新課程標(biāo)準(zhǔn)試題與答案(2020年修訂)
- 2024安徽省引江濟(jì)淮集團(tuán)限公司下半年公開招聘專業(yè)技術(shù)人員26人公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 2024年“四史”知識(shí)競(jìng)賽題庫(kù)及答案(450題)
- 分包質(zhì)量管理協(xié)議
- 小學(xué)思政課活動(dòng)實(shí)施方案
評(píng)論
0/150
提交評(píng)論