Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ) 1 實(shí)訓(xùn)指導(dǎo)手冊(cè)_第1頁(yè)
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ) 1 實(shí)訓(xùn)指導(dǎo)手冊(cè)_第2頁(yè)
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ) 1 實(shí)訓(xùn)指導(dǎo)手冊(cè)_第3頁(yè)
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ) 1 實(shí)訓(xùn)指導(dǎo)手冊(cè)_第4頁(yè)
Hadoop大數(shù)據(jù)開發(fā)基礎(chǔ) 1 實(shí)訓(xùn)指導(dǎo)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論