hadoop原理淺析及安裝_第1頁
hadoop原理淺析及安裝_第2頁
hadoop原理淺析及安裝_第3頁
hadoop原理淺析及安裝_第4頁
hadoop原理淺析及安裝_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

hadoop原理淺析及安裝經(jīng)過幾天得測試,hadoop分布式系統(tǒng)搭建完畢。首先說一下這幾天對hadoop理論知識得理解,然后說一下安裝及碰到得問題。有圖有真相HYPERLINK""

第一:理論知識:

什么就是hadoop:

由三部分組成:HDFS,MapReduce與Hbase。

維基百科這樣說:一個分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。用戶可以在不了解分布式底層細節(jié)得情況下,開發(fā)分布式程序。充分利用集群得威力高速運算與存儲。這里面關(guān)鍵就就是高速運算與海量存儲。我們首先講海量存儲,這個比較有意思,一會兒再說高速運算。

海量存儲:

HDFS<HadoopDistributed>

前身來自google得一篇博文,所以自身帶有濃厚得互聯(lián)網(wǎng)色彩,比如讀多于寫得特性,高度得擴展性。

具體說一下她得特性:

圖1:HDFS結(jié)構(gòu)示意圖

<抄自岑文初>上圖中展現(xiàn)了整個HDFS三個重要角色:NameNode、DataNode與Client。NameNode可以瞧作就是分布式文件系統(tǒng)中得管理者,主要負責(zé)管理文件系統(tǒng)得命名空間、集群配置信息與存儲塊得復(fù)制等。NameNode會將文件系統(tǒng)得Meta-data存儲在內(nèi)存中,這些信息主要包括了文件信息、每一個文件對應(yīng)得文件塊得信息與每一個文件塊在DataNode得信息等。Dat(yī)aNode就是文件存儲得基本單元,它將Block存儲在本地文件系統(tǒng)中,保存了Block得Meta-data,同時周期性地將所有存在得Block信息發(fā)送給NameNode。Client就就是需要獲取分布式文件系統(tǒng)文件得應(yīng)用程序。這里通過三個操作來說明她們之間得交互關(guān)系。

文件寫入:Client向NameNode發(fā)起文件寫入得請求。NameNode根據(jù)文件大小與文件塊配置情況,返回給Client它所管理部分DataNode得信息。Client將文件劃分為多個Block,根據(jù)DataNode得地址信息,按順序?qū)懭氲矫恳粋€DataNode塊中。文件讀取:Client向NameNode發(fā)起文件讀取得請求。NameNode返回文件存儲得DataNode得信息。Client讀取文件信息。文件Block復(fù)制:NameNode發(fā)現(xiàn)部分文件得Block不符合最小復(fù)制數(shù)或者部分DataNode失效。通知Dat(yī)aNode相互復(fù)制Block。Dat(yī)aNode開始直接相互復(fù)制。HDFS得幾個設(shè)計特點:Block得放置:默認不配置。一個Block會有三份備份,一份放在NameNode指定得Dat(yī)aNode,另一份放在與指定DataNode非同一Rack上得DataNode,最后一份放在與指定Dat(yī)aNode同一Rack上得DataNode上。備份無非就就是為了數(shù)據(jù)安全,考慮同一Rack得失敗情況以及不同Rack之間數(shù)據(jù)拷貝性能問題就采用這種配置方式。心跳檢測DataNode得健康狀況,如果發(fā)現(xiàn)問題就采取數(shù)據(jù)備份得方式來保證數(shù)據(jù)得安全性。數(shù)據(jù)復(fù)制(場景為DataNode失敗、需要平衡DataNode得存儲利用率與需要平衡DataNode數(shù)據(jù)交互壓力等情況):這里先說一下,使用HDFS得balancer命令,可以配置一個Threshold來平衡每一個DataNode磁盤利用率。例如設(shè)置了Threshold為10%,那么執(zhí)行balancer命令得時候,首先統(tǒng)計所有Dat(yī)aNode得磁盤利用率得均值,然后判斷如果某一個DataNode得磁盤利用率超過這個均值Threshold以上,那么將會把這個DataNode得block轉(zhuǎn)移到磁盤利用率低得DataNode,這對于新節(jié)點得加入來說十分有用。數(shù)據(jù)交驗:采用CRC32作數(shù)據(jù)交驗。在文件Block寫入得時候除了寫入數(shù)據(jù)還會寫入交驗信息,在讀取得時候需要交驗后再讀入。NameNode就是單點:如果失敗得話,任務(wù)處理信息將會紀錄在本地文件系統(tǒng)與遠端得文件系統(tǒng)中。數(shù)據(jù)管道性得寫入:當(dāng)客戶端要寫入文件到DataNode上,首先客戶端讀取一個Block然后寫到第一個DataNode上,然后由第一個DataNode傳遞到備份得DataNode上,一直到所有需要寫入這個Block得NataNode都成功寫入,客戶端才會繼續(xù)開始寫下一個Block。安全模式:在分布式文件系統(tǒng)啟動得時候,開始得時候會有安全模式,當(dāng)分布式文件系統(tǒng)處于安全模式得情況下,文件系統(tǒng)中得內(nèi)容不允許修改也不允許刪除,直到安全模式結(jié)束。安全模式主要就是為了系統(tǒng)啟動得時候檢查各個Dat(yī)aNode上數(shù)據(jù)塊得有效性,同時根據(jù)策略必要得復(fù)制或者刪除部分數(shù)據(jù)塊。運行期通過命令也可以進入安全模式。在實踐過程中,系統(tǒng)啟動得時候去修改與刪除文件也會有安全模式不允許修改得出錯提示,只需要等待一會兒即可。

下面說高速計算:

上面得圖片就是計算這個文件中每個單詞出現(xiàn)得次數(shù),這個任務(wù)被分裂成三個子任務(wù),然后映射到集群中JobTracker指定得TaskTracker上運行子任務(wù),每個子任務(wù)都可以在指定得TaskTracker上運行,然后把運行得結(jié)果保存在當(dāng)?shù)?,然后reduce程序被調(diào)用。然后進行得就是結(jié)果得整合,整合完畢,就就是最終結(jié)果了。這就是計算向數(shù)據(jù)靠攏得計算方式。

好了,我們開始說安裝,好多都在講0、17與0、18得安裝,hadoop這玩意兒因為最近很火,所以變動很厲害,變動得速度估計與nginx有一拼,所以在安裝得時候得批判得繼承她們安裝過程。

環(huán)境:

首先:在這幾臺機器上安裝CentOS5、4(最簡化安裝)并升級完畢。

保證計算機名得全局唯一性:hadoop1、diarc、-----192、168、0、3hadoop2、diarc、-----192、168、0、4hadoop3、diarc、-----192、168、0、5hadoop4、diarc、-----192、168、0、18hadoop5、diarc、-----192、168、0、20修改方式:(5臺服務(wù)器都設(shè)置)[roothadoop5~]#hostnamehadoop5、diarc、?[roothadoop5~]#cat/etc/hosts?#Donotremovethefollowingline,orvariousprograms?#thatrequirenetworkfunctionalitywillfail、

127、0、0、1

localhost、localdomainlocalhost?::1

localhost6、localdomain6localhost6?192、168、0、20

hadoop5、diarc、hadoop5[roothadoop5~]#cat/etc/sysconfig/network

NETWORKING=yes?NETWORKING_IPV6=no

HOSTNAME=hadoop5、diarc、?GATEWAY=192、168、0、1

[roothadoop5~]#

為了方便,關(guān)閉防火墻:(5臺服務(wù)器都設(shè)置)[roothadoop5~]#serviceiptablesstop

[roothadoop5~]#chkconfigiptablesoff方便起見,創(chuàng)建hadoop用戶[roothadoop5~]#useraddhadoop

下載hadoop最新版:HYPERLINK""\o"CTRL+單擊以下鏈接"下載JDK最新版:HYPERLINK""\o"CTRL+單擊以下鏈接"

全部放入/home/hadoop目錄。[roothadoop5~]#cpjdk-6u19-linux-i586、bin/usr/local/[roothadoop5~]#cd/usr/local/?[roothadoop5~]#、/jdk-6u19-linux-i586、bin

[roothadoop5~]#rm-rfjdk-6u19-linux-i586、bin

[roothadoop5~]#cd

/home/hadoop/[roothadoop5hadoop]#tarzxvfhadoop-0、20、2、tar、gz

[roothadoop5~]#cat/etc/pro放入如下信息?exportJAVA_HOME=/usr/local/jdk1、6、0_19?exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib?exportPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATHexportHADOOP_HOME=/home/hadoop/hadoop-0、20、2

exportPATH=$PATH:$HADOOP_HOME/bin然后執(zhí)行如下命令:[roothadoop5~]#source/etc/profile現(xiàn)在我們修改hadoop得配置文件:0、20以上得配置與以前得配置有些就是不同得,我們以0、20、2為例做東西[roothadoop5conf]#catcore-site、xml

<?xmlversion="1、0"?>?<?xml-stylesheettype="text/xsl"href="configurat(yī)ion、xsl"?>

<!--Putsite-specificpropertyoverridesinthisfile、-->

<configuration>

<property>?

<name>fs、default、name</name>?

<value>hdfs://192、168、0、20:54310/</value>

</property>

<property>?

<name>hadoop、tmp、dir</name>

<value>/home/hadoop/tmp/</value>?</property>

</configurat(yī)ion>===========================================================================

[roothadoop5conf]#echo"exportJAVA_HOME=/usr/local/jdk1、6、0_19">>

hadoop-env、sh

===========================================================================[roothadoop5conf]#cathdfs-site、xml

<?xmlversion="1、0"?>?<?xml-stylesheettype="text/xsl"href="configuration、xsl"?>

<!--Putsite-specificpropertyoverridesinthisfile、-->

<configuration>?<property>

<name>dfs、replication</name>?

<value>3</value>?</property>

</configuration>

===========================================================================[roothadoop5conf]#catmapred-site、xml

<?xmlversion="1、0"?>

<?xml-stylesheettype="text/xsl"href="configurat(yī)ion、xsl"?>

<!--Putsite-specificpropertyoverridesinthisfile、-->

<configuration>?<property>?

<name>mapred、job、tracker</name>

<value>hdfs://192、168、0、20:54311/</value>

</property>

</configurat(yī)ion>

[roothadoop5conf]#?===========================================================================?[roothadoop5conf]#catmasters?192、168、0、20

[roothadoop5conf]#catslaves

192、168、0、3

192、168、0、4

192、168、0、5

192、168、0、18?[roothadoop5conf]#?==========================================================================

現(xiàn)在我們做無密碼得ssh登錄:

建立Master到每一臺Slave得SSH受信證書。由于Master將會通過SSH啟動所有Slave得Hadoop,所以需要建立單向或者雙向證書保證命令執(zhí)行時不需要再輸入密碼。在Master與所有得Slave機器上執(zhí)行:ssh-keygen-trsa。執(zhí)行此命令得時候,瞧到提示只需要回車。然后就會在/root/、ssh/下面產(chǎn)生id_rsa、pub得證書文件,通過scp將Master機器上得這個文件拷貝到Slave上(記得修改名稱),例如:scprootmasterIP:/root/、ssh/id_rsa、pub/root/、ssh/46_rsa、pub,然后執(zhí)行cat/root/、ssh/46_rsa、pub>>/root/、ssh/authorized_keys,建立authorized_keys文件即可,可以打開這個文件瞧瞧,也就就是rsa得公鑰作為key,userIP作為value。此時可以試驗一下,從masterssh到slave已經(jīng)不需要密碼了。由slave反向建立也就是同樣。為什么要反向呢?其實如果一直都就是Master啟動與關(guān)閉得話那么沒有必要建立反向,只就是如果想在Slave也可以關(guān)閉Hadoop就需要建立反向。

然后每臺服務(wù)器上都修改ssh得配置文件:/etc/ssh/sshd_config把GSSAPIAuthentication得值設(shè)置為no,然后:[roothadoop5conf]#servicesshdrestart?[roothadoop5conf]#

我們從master向slave依次登錄[roothadoop5conf]#ssh

HYPERLINK"mailto:"\o"mailto:

CTRL+單擊以下鏈接"[roothadoop5conf]#ssh

\o"mailto:?CTRL+單擊以下鏈接"[roothadoop5conf]#ssh

HYPERLINK"mailto:"\o"mailto:?CTRL+單擊以下鏈接"[roothadoop5conf]#ssh

HYPERLINK"mailto:"\o"mailto:

CTRL+單擊以下鏈接"

然后壓縮hadoop文

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論