溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

hadoop體系結(jié)構(gòu)的示例分析

發(fā)布時間:2021-11-08 15:04:11 來源:億速云 閱讀:160 作者:小新 欄目:云計算

這篇文章給大家分享的是有關(guān)hadoop體系結(jié)構(gòu)的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

hadoop的體系結(jié)構(gòu)

  NameNode  - 主節(jié)點主服務(wù)器
  SecondaryNameNode– 是輔助nameNode
  DataNode  -數(shù)據(jù)保存用的
  TaskTracker – 接收任務(wù)
  JobTracker  - 分數(shù)據(jù) -100M  Datanode1,DataNode2,DataNode3
Master:主節(jié)點,相當(dāng)于項目經(jīng)理
Slave:從節(jié)點相當(dāng)于PG
Hadoop只能運行在linux系統(tǒng)上:
在linux系統(tǒng)上裝JVM虛擬機,然后,上面運行了三個進程
SecondaryNameNode,Jobtracter,NameNode這三個進程,這三個都是java進程
其中,NameNode是最重要的一個java進程,他決定了主節(jié)點,在從節(jié)點上沒有這個進程
SecondaryNameNode相當(dāng)于NameNode的秘書,協(xié)助NameNode完成工作, Jobtracter任務(wù)跟蹤進程,用來跟蹤任務(wù)
并且把任務(wù)交給從節(jié)點.
可以看到通常應(yīng)用都會有一個主節(jié)點和一個從節(jié)點,并且從節(jié)點中也有兩個java進程,因為在裝有從節(jié)點的服務(wù)器上,也裝的是linux系統(tǒng),
在linux系統(tǒng)上裝有jvm,然后跑了兩個java進程,一個是: Jobtracter,另一個是:DataNode數(shù)據(jù)節(jié)點,這個進程用來處理和數(shù)據(jù)有關(guān)的任務(wù).
注意在hadoop系統(tǒng)中,只有一個主節(jié)點,其他的都屬于從節(jié)點.
    
l  NameNode:這是hadoop的守護進程(注意是進程JVM)。負責(zé)記錄文件是如何分割成數(shù)據(jù)塊,以及這些數(shù)據(jù)塊分別存儲到哪些數(shù)據(jù)節(jié)點上。
對內(nèi)存進行集中管理。NameNode在整個hadoop中只有一個。一旦NameNode服務(wù)器宕機,整個系統(tǒng)將無法運行。


l  DataNode:集群中的每個從服務(wù)器都運行一個DataNode后臺程序。這個后臺程序負責(zé)將HDFS數(shù)據(jù)塊寫到本地的文件系統(tǒng)。

l  Secondary NomeNode:用來監(jiān)控HDFS狀態(tài)的輔助后臺程序。如保存NameNode的快照。

l  JobTracker:用戶連接應(yīng)用程序和hadoop。每一個hadoop集群中只一個 JobTracker,一般它運行在Master節(jié)點上。

l  TaskTracker:負責(zé)與DataNode進行結(jié)合。

hadoop namenode -format [格式化以后生成的目錄 ,即hdfs的目錄。]


啟動hadoop

如果發(fā)現(xiàn)有5個java進程,則說明啟動成功:
因為這里我們用了一臺機器,所以這臺機器既充當(dāng)了主節(jié)點,又充當(dāng)了從節(jié)點.
用jps命令,可以查看啟動了哪些java進程.
jps
ResourceManager(hadoop2.x封裝了JobTracker、TaskTracker)
NameNode
NodeManager
DataNode
SecondaryNameNode[這個進程,不知我的怎么沒有啟動起來]

hdfs概念與命令
  HDFS是hadoop Distributed file system的縮寫,是hadoop的分布式文件系統(tǒng)。
  HDFS由hadoop來管理,它不同于普通的文件系統(tǒng),不能直觀的查找文件,必須要通過hadoop命令操作HDFS。
  
  HDFS是一個主從結(jié)構(gòu)的體系,一個HDFS集群是由一個名字節(jié)點,它是一個管理文件的命名空間和調(diào)節(jié)客戶端訪問文件的主服務(wù)器,
  當(dāng)然還有的數(shù)據(jù)節(jié)點,一個節(jié)點一個,它來管理存儲。HDFS暴露文件命名空間和允許用戶數(shù)據(jù)存儲成文件。
  內(nèi)部機制是將一個文件分割成一個或多個的塊,這些塊存儲在一組數(shù)據(jù)節(jié)點中。
  NameNode名字節(jié)點操作文件命名空間的文件或目錄操作,如打開,關(guān)閉,重命名,等等。它同時確定塊與數(shù)據(jù)節(jié)點的映射。
  DataNode數(shù)據(jù)節(jié)點來負責(zé)來自文件系統(tǒng)客戶的讀寫請求。
  數(shù)據(jù)節(jié)點同時還要執(zhí)行塊的創(chuàng)建,刪除,和來自名字節(jié)點的塊復(fù)制指示。
  名字節(jié)點和數(shù)據(jù)節(jié)點都是軟件運行在普通的機器之上,機器典型的都是linux,HDFS是用java來寫的,
  任何支持java的機器都可以運行名字節(jié)點或數(shù)據(jù)節(jié)點,利用java語言的超輕便型,很容易將HDFS部署到大范圍的機器上。
  典型的部署時將有一個專門的機器來運行名字節(jié)點軟件,機群中的其他機器運行一個數(shù)據(jù)節(jié)點實例。
  體系結(jié)構(gòu)排斥在一個機器上運行多個數(shù)據(jù)節(jié)點的實例,但是實際的部署不會有這種情況。
  集群中只有一個名字節(jié)點極大地簡單化了系統(tǒng)的體系。名字節(jié)點是仲裁者和所有HDFS的元數(shù)據(jù)的倉庫。系統(tǒng)設(shè)計成用戶的實際數(shù)據(jù)不經(jīng)過名字節(jié)點。
  
  1、hadoop下的文件操作命令
1 :列出hdfs文件
~# hadoop dfs –ls /或~# hadoop fs –ls / 或hdfs dfs -ls /
查看user下的內(nèi)容
hadoop fs –ls  /user
這里查看這個文件還有一個方法就是在網(wǎng)頁中查看:進入http://127.0.0.1:50070,也就是hdfs的管理系統(tǒng)
然后點擊相應(yīng)的文件目錄就可以了.
這里需要注意:當(dāng)查看hadoop文件系統(tǒng)的時候需要用命令hadoop fs –ls  這樣前面加上hadoop fs 因為假如
直接用ls的話,那么就是指模擬出來的linux文件系統(tǒng)中的東西

2:將文件上傳到hdfs
這里演示將windows系統(tǒng)中的一個credream.txt文件上傳到hadoop的hdfs分布式系統(tǒng)中,
首先可以通過cd c:進入本地的windows的c盤
然后cd..走到系統(tǒng)的根目錄
Ls可以看到當(dāng)前文件系統(tǒng)的盤符
Cd c
Ls
可以列出c盤中的文件
:
xiaofeng@xiaofeng-PC/cygdrive/c
下面通過命令把本地c盤中的credream.txt文件傳到hadoop hdfs文件系統(tǒng)中的user目錄下
下面是命令行:
注意:這里hdfs dfs –put credream.txt /user/credream.txt
就是把c盤的文件上傳到hadoop的hdfs文件系統(tǒng)的user目錄下.
hdfs dfs –put credream.txt,這個指的是本地c盤,因為可以看到cygdrive/c指的就是c盤了,所以沒有另外指定本地的文件目錄
而且可以對文件進行重命名:
hdfs dfs –put credream.txt /user/hadoop.txt就是把本地c盤的credream.txt文件上傳到hadoop的hdfs系統(tǒng)并進行重命名.
echo hello credream > test.txt就是指的是在本地的C盤進行創(chuàng)建一個test.txt文件,但是如果是win7系統(tǒng)的話,那么會有
權(quán)限問題
可以看到在c盤不可以,但是在d盤就可以創(chuàng)建test.txt文件了
這是把本地D盤的test.txt文件上傳到hdfs文件系統(tǒng)的/user/目錄下不改變文件的名字
這里是上傳整個目錄到hdfs文件系統(tǒng)的/user/目錄下
mkdir hadooptest 在本地d盤創(chuàng)建一個hadooptest文件夾
cp test.txt hadooptest就是把test.txt文件拷貝到hadooptest文件夾中
hadoop fs –put hadooptest /user/
把hadooptest文件夾上傳到hdfs文件系統(tǒng)的/user/目錄下
使用hadoop fs –copyFromLocal test.txt /user/testa.txt
將本地的test.txt文件拷貝一份然后上傳到hdfs文件系統(tǒng)中并且重命名為testa.txt文件
然后通過hadoop fs –ls /user 查看hdfs文件系統(tǒng)中user目錄下的文件

3:將hdfs中的文件復(fù)制到本地系統(tǒng)中
通過get命令,即可以操作文件也可以操作文件夾:
操作一個文件,將hdfs上的文件/wj/a.txt保存到本地,并取名為b.txt
以下下載整個文件到當(dāng)前目錄下來,注意最后的一個點
get命令例子二:
通過hadoop fs –get /user/testa.txt testb.txt 就是把hdfs中的user/下的testa.txt文件下載到本地并重命名
hadoop fs –get /user/testa.txt . 直接把hdfs中的user/下的testa.txt文件下載到本地 .代表直接到本地不進行重命名
hadoop fs –get /user/hadooptest . 直接把hdfs中的user/下的hadooptest文件夾下載到本地 .代表直接到本地不進行重命名


4:刪除hdsf下的某個文檔
這里是刪除本地的文件,和linux下的命令一樣
刪除文件夾的時候要用遞歸
這里是刪除hdfs文件系統(tǒng)中的文件和文件夾的例子:
hadoop fs –rm /user/testa.txt 刪除user文件夾下的testa.txt文件
hadoop fs –rm /user/*.txt 刪除user文件夾下所有.txt的文件
hadoop fs –rm /user/hadooptest 這樣是不能刪除一個文件夾的要用遞歸
hadoop fs –rmr user/hadooptest 這個命令可以刪除文件夾和文件夾中的文件遞歸刪除

感謝各位的閱讀!關(guān)于“hadoop體系結(jié)構(gòu)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI