日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...

發(fā)布時(shí)間:2024/10/8 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

HDFS前言:

1) 設(shè)計(jì)思想

分而治之:將大文件、大批量文件,分布式存放在大量服務(wù)器上,以便于采取分而治之的方式對(duì)海量數(shù)據(jù)進(jìn)行運(yùn)算分析;

2)在大數(shù)據(jù)系統(tǒng)中作用:

為各類分布式運(yùn)算框架(如:mapreduce,spark,tez,……)提供數(shù)據(jù)存儲(chǔ)服務(wù)

3)重點(diǎn)概念:文件切塊,副本存放,元數(shù)據(jù)

4)、NameNode節(jié)點(diǎn):由core-site.xml配置指定(name=fs.defaultFS,value=hdfs://slaver1:8020)。

DataNode/NodeManager節(jié)點(diǎn):由slavers文件指定。

SecondaryNameNode節(jié)點(diǎn):由hdfs-site.xml文件指定(name=dfs.namenode.secondary.http-address,value=slaver1:50090)

ResourceManager節(jié)點(diǎn):在yarn-site.xml文件中指定(name=yarn.resourcemanager.hostname,value=slaver1)。

historyServer節(jié)點(diǎn):在mapred-site.xml配置文件里面修改。

1:分布式文件系統(tǒng)(Distributed File System):

(1):數(shù)據(jù)量越來(lái)越多,在一個(gè)操作系統(tǒng)管轄的范圍存不下了,那么就分配到更多的操作系統(tǒng)管理的磁盤中,但是不方便管理和維護(hù),因此迫切需要一種系統(tǒng)來(lái)管理多臺(tái)機(jī)器上的文件,這就是分布式文件管理系統(tǒng) 。

(2):是一種允許文件通過(guò)網(wǎng)絡(luò)在多臺(tái)主機(jī)上分享的文件系統(tǒng),可讓多機(jī)器上的多用戶分享文件和存儲(chǔ)空間。

(3):通透性。讓實(shí)際上是通過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)文件的動(dòng)作,由程序與用戶看來(lái),就像是訪問(wèn)本地的磁盤一般。

(4):容錯(cuò)。即使系統(tǒng)中有某些節(jié)點(diǎn)脫機(jī),整體來(lái)說(shuō)系統(tǒng)仍然可以持續(xù)運(yùn)作而不會(huì)有數(shù)據(jù)損失。

(5):分布式文件管理系統(tǒng)很多,hdfs只是其中一種。適用于一次寫入多次查詢的情況,不支持并發(fā)寫情況,小文件不合適。

2:Hadoop最擅長(zhǎng)的是(離線 )日志分析

(1):HDFS----》海量數(shù)據(jù)的存儲(chǔ),負(fù)責(zé)文件讀寫。

(2):MapReduce----》海量數(shù)據(jù)的分析。

(3):YARN----》資源管理調(diào)度,負(fù)責(zé)為mapreduce程序分配硬件資源。

3:HDFS的Shell

(1):調(diào)用文件系統(tǒng)(FS)Shell命令應(yīng)使用 bin/hadoop fs 的形式。

(2):所有的FS shell命令使用URI路徑作為參數(shù)。

URI格式是scheme://authority/path。HDFS的scheme是hdfs,對(duì)本地文件系統(tǒng),scheme是file。其中scheme和authority參數(shù)都是可選的,如果未加指定,就會(huì)使用配置中指定的默認(rèn)scheme。

例如:/parent/child可以表示成hdfs://namenode:namenodePort/parent/child,或者更簡(jiǎn)單的/parent/child(假設(shè)配置文件是namenode:namenodePort)

(3):大多數(shù)FS Shell命令的行為和對(duì)應(yīng)的Unix Shell命令類似。

4:HDFS fs命令

(1)-help [cmd]?? ?//顯示命令的幫助信息

(2)-ls(r) ?? ?//顯示當(dāng)前目錄下所有文件

(3)-du(s) ?? ?//顯示目錄中所有文件大小

(4)-count[-q] ?? ?//顯示目錄中文件數(shù)量

(5)-mv ?? ?//移動(dòng)多個(gè)文件到目標(biāo)目錄

(6)-cp ?? ?//復(fù)制多個(gè)文件到目標(biāo)目錄

(7)-rm(r)?? ??? ?//刪除文件(夾)

(8)-put ?? ?//本地文件復(fù)制到hdfs

(9)-copyFromLocal?? ?//同put

(10)-moveFromLocal?? ?//從本地文件移動(dòng)到hdfs

(11)-get [-ignoreCrc] ?? ?//復(fù)制文件到本地,可以忽略crc校驗(yàn)

(12)-getmerge ?? ??? ?//將源目錄中的所有文件排序合并到一個(gè)文件中

(13)-cat ?? ?//在終端顯示文件內(nèi)容

(14)-text ?? ?//在終端顯示文件內(nèi)容

(15)-copyToLocal [-ignoreCrc] ?? ?//復(fù)制到本地

(16)-moveToLocal

(17)-mkdir ?? ?//創(chuàng)建文件夾

(18)-touchz ?? ?//創(chuàng)建一個(gè)空文件

5:HDFS的Shell命令練習(xí)

(1)#hadoop fs -ls /? 查看HDFS根目錄

(2)#hadoop fs -mkdir /test 在根目錄創(chuàng)建一個(gè)目錄test

(3)#hadoop fs -mkdir /test1 在根目錄創(chuàng)建一個(gè)目錄test1

(4)#hadoop fs -put ./test.txt /test或#hadoop fs -copyFromLocal ./test.txt /test

(5)#hadoop fs -get /test/test.txt .或#hadoop fs -getToLocal /test/test.txt .

(6)#hadoop fs -cp /test/test.txt /test1

(7)#hadoop fs -rm /test1/test.txt

(8)#hadoop fs -mv /test/test.txt /test1

(9)#hadoop fs -rmr /test1

6:HDFS架構(gòu)

(1)NameNode

(2)DataNode

(3)Secondary NameNode

7:NameNode

(1)是整個(gè)文件系統(tǒng)的管理節(jié)點(diǎn)。它維護(hù)著整個(gè)文件系統(tǒng)的文件目錄樹(shù),文件/目錄的元信息和每個(gè)文件對(duì)應(yīng)的數(shù)據(jù)塊列表。接收用戶的操作請(qǐng)求。

(2)文件包括:

fsimage:元數(shù)據(jù)鏡像文件。存儲(chǔ)某一時(shí)段NameNode內(nèi)存元數(shù)據(jù)信息。

edits:操作日志文件。

fstime:保存最近一次checkpoint的時(shí)間

(3)以上這些文件是保存在linux的文件系統(tǒng)中。

(4)、NameNode是主節(jié)點(diǎn),存儲(chǔ)文件的元數(shù)據(jù),如文件名,文件目錄結(jié)構(gòu),文件屬性(生成事件,副本數(shù),文件權(quán)限),以及每個(gè)文件的塊列表和塊所在的DataNode信息等等。

(5)、Namenode是一個(gè)中心服務(wù)器,單一節(jié)點(diǎn),負(fù)責(zé)管理文件系統(tǒng)的名字空間,以及客戶端對(duì)文件的訪問(wèn)。文件操作,NameNode負(fù)責(zé)文件元數(shù)據(jù)的操作,DataNode負(fù)責(zé)處理文件內(nèi)容的讀寫請(qǐng)求,跟文件內(nèi)容相關(guān)的數(shù)據(jù)流不經(jīng)過(guò)NameNode,只會(huì)詢問(wèn)它跟那個(gè)DataNode聯(lián)系,否則NameNode會(huì)成為系統(tǒng)的瓶頸。副本存放在那些DataNode上由NameNode來(lái)控制,根據(jù)全局情況做出塊放置決定,讀取文件時(shí)候NameNode盡量讓用戶先讀取最近的副本,降低帶塊消耗和讀取延時(shí)。NameNode全權(quán)管理數(shù)據(jù)塊的復(fù)制。它周期性的從集群中每個(gè)DataNode接受心跳信號(hào)和塊狀態(tài)報(bào)告(Blocreport)。接受到心跳信號(hào)意味著該DataNode節(jié)點(diǎn)正常工作。塊狀態(tài)報(bào)告包含一個(gè)該DataNode上所有數(shù)據(jù)塊的列表。

8:NameNode的工作特點(diǎn)

(1)Namenode始終在內(nèi)存中保存metedata,用于處理“讀請(qǐng)求”

(2)到有“寫請(qǐng)求”到來(lái)時(shí),namenode會(huì)首先寫editlog到磁盤,即向edits文件中寫日志,成功返回后,才會(huì)修改內(nèi)存,并且向客戶端返回

(3)Hadoop會(huì)維護(hù)一個(gè)fsimage文件,也就是namenode中metedata的鏡像,但是fsimage不會(huì)隨時(shí)與namenode內(nèi)存中的metedata保持一致,而是每隔一段時(shí)間通過(guò)合并edits文件來(lái)更新內(nèi)容。Secondary namenode就是用來(lái)合并fsimage和edits文件來(lái)更新NameNode的metedata的。

9:SecondaryNameNode

(1)HA的一個(gè)解決方案。但不支持熱備。配置即可。

(2)執(zhí)行過(guò)程:從NameNode上下載元數(shù)據(jù)信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并將其推送到NameNode,替換舊的fsimage.

(3)默認(rèn)在安裝在NameNode節(jié)點(diǎn)上,但這樣...不安全!

(4)、用來(lái)監(jiān)控hdfs狀態(tài)的輔助后臺(tái)程序,每隔一段事件獲取hdfs元數(shù)據(jù)的快照。

10:secondary namenode的工作流程

(1)secondary通知namenode切換edits文件

(2)secondary從namenode獲得fsimage和edits(通過(guò)http)

(3)secondary將fsimage載入內(nèi)存,然后開(kāi)始合并edits

(4)secondary將新的fsimage發(fā)回給namenode

(5)namenode用新的fsimage替換舊的fsimage

11:什么時(shí)候checkpiont

(1)fs.checkpoint.period 指定兩次checkpoint的最大時(shí)間間隔,默認(rèn)3600秒。

(2)fs.checkpoint.size??? 規(guī)定edits文件的最大值,一旦超過(guò)這個(gè)值則強(qiáng)制checkpoint,不管是否到達(dá)最大時(shí)間間隔。默認(rèn)大小是64M。

12:NameNode和SecondNameNode之間的聯(lián)系

13:Datanode

(1)提供真實(shí)文件數(shù)據(jù)的存儲(chǔ)服務(wù)。

(2)文件塊(block):最基本的存儲(chǔ)單位。對(duì)于文件內(nèi)容而言,一個(gè)文件的長(zhǎng)度大小是size,那么從文件的0偏移開(kāi)始,按照固定的大小,順序?qū)ξ募M(jìn)行劃分并編號(hào),劃分好的每一個(gè)塊稱一個(gè)Block。HDFS默認(rèn)Block大小是128MB,以一個(gè)256MB文件,共有256/128=2個(gè)Block.

dfs.block.size

(3)不同于普通文件系統(tǒng)的是,HDFS中,如果一個(gè)文件小于一個(gè)數(shù)據(jù)塊的大小,并不占用整個(gè)數(shù)據(jù)塊存儲(chǔ)空間

(4)Replication。多復(fù)本。默認(rèn)是三個(gè)。hdfs-site.xml的dfs.replication屬性。

(5)、DataNode在本地文件系統(tǒng)存儲(chǔ)文件塊數(shù)據(jù),以及塊數(shù)據(jù)的校驗(yàn)和。

(6)、DataNode,一個(gè)數(shù)據(jù)塊在DataNode以文件存儲(chǔ)在磁盤上,包括兩個(gè)文件,一個(gè)是數(shù)據(jù)本身,一個(gè)是元數(shù)據(jù)包括數(shù)據(jù)塊的長(zhǎng)度,塊數(shù)據(jù)的校驗(yàn)和,以及時(shí)間戳。DataNode啟動(dòng)后NameNode注冊(cè),通過(guò)后,周期性(1小時(shí))的向NameNode上報(bào)所有的塊信息。心跳是每3秒一次,心跳返回結(jié)果帶有NameNode給該DataNode的命令如復(fù)制塊數(shù)據(jù)到另一臺(tái)機(jī)器,或者刪除某個(gè)數(shù)據(jù)塊。如果超過(guò)10分鐘沒(méi)有收到某個(gè)DataNode的心跳,則認(rèn)為該節(jié)點(diǎn)不可用。集群運(yùn)行中可以安全加入和退出一些機(jī)器。

14:Remote Procedure Call

(1)RPC——遠(yuǎn)程過(guò)程調(diào)用協(xié)議,它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC協(xié)議假定某些傳輸協(xié)議的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。在OSI網(wǎng)絡(luò)通信模型中,RPC跨越了傳輸層和應(yīng)用層。RPC使得開(kāi)發(fā)包括網(wǎng)絡(luò)分布式多程序在內(nèi)的應(yīng)用程序更加容易。

(2)RPC采用客戶機(jī)/服務(wù)器模式。請(qǐng)求程序就是一個(gè)客戶機(jī),而服務(wù)提供程序就是一個(gè)服務(wù)器。首先,客戶機(jī)調(diào)用進(jìn)程發(fā)送一個(gè)有進(jìn)程參數(shù)的調(diào)用信息到服務(wù)進(jìn)程,然后等待應(yīng)答信息。在服務(wù)器端,進(jìn)程保持睡眠狀態(tài)直到調(diào)用信息的到達(dá)為止。當(dāng)一個(gè)調(diào)用信息到達(dá),服務(wù)器獲得進(jìn)程參數(shù),計(jì)算結(jié)果,發(fā)送答復(fù)信息,然后等待下一個(gè)調(diào)用信息,最后,客戶端調(diào)用進(jìn)程接收答復(fù)信息,獲得進(jìn)程結(jié)果,然后調(diào)用執(zhí)行繼續(xù)進(jìn)行。

(3)hadoop的整個(gè)體系結(jié)構(gòu)就是構(gòu)建在RPC之上的(見(jiàn)org.apache.hadoop.ipc)。

15:HDFS讀過(guò)程

(1)初始化FileSystem,然后客戶端(client)用FileSystem的open()函數(shù)打開(kāi)文件

(2)FileSystem用RPC調(diào)用元數(shù)據(jù)節(jié)點(diǎn),得到文件的數(shù)據(jù)塊信息,對(duì)于每一個(gè)數(shù)據(jù)塊,元數(shù)據(jù)節(jié)點(diǎn)返回保存數(shù)據(jù)塊的數(shù)據(jù)節(jié)點(diǎn)的地址。

(3)FileSystem返回FSDataInputStream給客戶端,用來(lái)讀取數(shù)據(jù),客戶端調(diào)用stream的read()函數(shù)開(kāi)始讀取數(shù)據(jù)。

(4)DFSInputStream連接保存此文件第一個(gè)數(shù)據(jù)塊的最近的數(shù)據(jù)節(jié)點(diǎn),data從數(shù)據(jù)節(jié)點(diǎn)讀到客戶端(client)

(5)當(dāng)此數(shù)據(jù)塊讀取完畢時(shí),DFSInputStream關(guān)閉和此數(shù)據(jù)節(jié)點(diǎn)的連接,然后連接此文件下一個(gè)數(shù)據(jù)塊的最近的數(shù)據(jù)節(jié)點(diǎn)。

(6)當(dāng)客戶端讀取完畢數(shù)據(jù)的時(shí)候,調(diào)用FSDataInputStream的close函數(shù)。

(7)在讀取數(shù)據(jù)的過(guò)程中,如果客戶端在與數(shù)據(jù)節(jié)點(diǎn)通信出現(xiàn)錯(cuò)誤,則嘗試連接包含此數(shù)據(jù)塊的下一個(gè)數(shù)據(jù)節(jié)點(diǎn)。

(8)失敗的數(shù)據(jù)節(jié)點(diǎn)將被記錄,以后不再連接。

16:HDFS寫過(guò)程

(1)初始化FileSystem,客戶端調(diào)用create()來(lái)創(chuàng)建文件

(2)FileSystem用RPC調(diào)用元數(shù)據(jù)節(jié)點(diǎn),在文件系統(tǒng)的命名空間中創(chuàng)建一個(gè)新的文件,元數(shù)據(jù)節(jié)點(diǎn)首先確定文件原來(lái)不存在,并且客戶端有創(chuàng)建文件的權(quán)限,然后創(chuàng)建新文件。

(3)FileSystem返回DFSOutputStream,客戶端用于寫數(shù)據(jù),客戶端開(kāi)始寫入數(shù)據(jù)。

(4)DFSOutputStream將數(shù)據(jù)分成塊,寫入data queue。data queue由Data Streamer讀取,并通知元數(shù)據(jù)節(jié)點(diǎn)分配數(shù)據(jù)節(jié)點(diǎn),用來(lái)存儲(chǔ)數(shù)據(jù)塊(每塊默認(rèn)復(fù)制3塊)。分配的數(shù)據(jù)節(jié)點(diǎn)放在一個(gè)pipeline里。Data Streamer將數(shù)據(jù)塊寫入pipeline中的第一個(gè)數(shù)據(jù)節(jié)點(diǎn)。第一個(gè)數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)塊發(fā)送給第二個(gè)數(shù)據(jù)節(jié)點(diǎn)。第二個(gè)數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)發(fā)送給第三個(gè)數(shù)據(jù)節(jié)點(diǎn)。

(5)DFSOutputStream為發(fā)出去的數(shù)據(jù)塊保存了ack queue,等待pipeline中的數(shù)據(jù)節(jié)點(diǎn)告知數(shù)據(jù)已經(jīng)寫入成功。

(6)當(dāng)客戶端結(jié)束寫入數(shù)據(jù),則調(diào)用stream的close函數(shù)。此操作將所有的數(shù)據(jù)塊寫入pipeline中的數(shù)據(jù)節(jié)點(diǎn),并等待ack queue返回成功。最后通知元數(shù)據(jù)節(jié)點(diǎn)寫入完畢。

(7)如果數(shù)據(jù)節(jié)點(diǎn)在寫入的過(guò)程中失敗,關(guān)閉pipeline,將ack queue中的數(shù)據(jù)塊放入data queue的開(kāi)始,當(dāng)前的數(shù)據(jù)塊在已經(jīng)寫入的數(shù)據(jù)節(jié)點(diǎn)中被元數(shù)據(jù)節(jié)點(diǎn)賦予新的標(biāo)示,則錯(cuò)誤節(jié)點(diǎn)重啟后能夠察覺(jué)其數(shù)據(jù)塊是過(guò)時(shí)的,會(huì)被刪除。失敗的數(shù)據(jù)節(jié)點(diǎn)從pipeline中移除,另外的數(shù)據(jù)塊則寫入pipeline中的另外兩個(gè)數(shù)據(jù)節(jié)點(diǎn)。元數(shù)據(jù)節(jié)點(diǎn)則被通知此數(shù)據(jù)塊是復(fù)制塊數(shù)不足,將來(lái)會(huì)再創(chuàng)建第三份備份。

17:HDFS的架構(gòu)

(1)主從結(jié)構(gòu)

主節(jié)點(diǎn), namenode

從節(jié)點(diǎn),有很多個(gè): datanode

(2)namenode負(fù)責(zé):

接收用戶操作請(qǐng)求

維護(hù)文件系統(tǒng)的目錄結(jié)構(gòu)

管理文件與block之間關(guān)系,block與datanode之間關(guān)系

(3)datanode負(fù)責(zé):

存儲(chǔ)文件

文件被分成block存儲(chǔ)在磁盤上

為保證數(shù)據(jù)安全,文件會(huì)有多個(gè)副本

18:Hadoop部署方式

(1)本地模式

(2)偽分布模式

(3)集群模式

19:Hadoop的特點(diǎn)

(1)擴(kuò)容能力(Scalable):能可靠地(reliably)存儲(chǔ)和處理千兆字節(jié)(PB)數(shù)據(jù)。

(2)成本低(Economical):可以通過(guò)普通機(jī)器組成的服務(wù)器群來(lái)分發(fā)以及處理數(shù)據(jù)。這些服務(wù)器群總計(jì)可達(dá)數(shù)千個(gè)節(jié)點(diǎn)。

(3)高效率(Efficient):通過(guò)分發(fā)數(shù)據(jù),hadoop可以在數(shù)據(jù)所在的節(jié)點(diǎn)上并行地(parallel)處理它們,這使得處理非常的快速。

(4)可靠性(Reliable):hadoop能自動(dòng)地維護(hù)數(shù)據(jù)的多份副本,并且在任務(wù)失敗后能自動(dòng)地重新部署(redeploy)計(jì)算任務(wù)。

20:HDFS的概念和特性:

1)首先,它是一個(gè)文件系統(tǒng),用于存儲(chǔ)文件,通過(guò)統(tǒng)一的命名空間——目錄樹(shù)來(lái)定位文件

2)其次,它是分布式的,由很多服務(wù)器聯(lián)合起來(lái)實(shí)現(xiàn)其功能,集群中的服務(wù)器有各自的角色;

3)重要特性如下:

(1)HDFS中的文件在物理上是分塊存儲(chǔ)(block),塊的大小可以通過(guò)配置參數(shù)( dfs.blocksize)來(lái)規(guī)定,默認(rèn)大小在hadoop2.x版本中是128M,老版本中是64M

(2)HDFS文件系統(tǒng)會(huì)給客戶端提供一個(gè)統(tǒng)一的抽象目錄樹(shù),客戶端通過(guò)路徑來(lái)訪問(wèn)文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data

(3)目錄結(jié)構(gòu)及文件分塊信息(元數(shù)據(jù))的管理由namenode節(jié)點(diǎn)承擔(dān)

namenode是HDFS集群主節(jié)點(diǎn),負(fù)責(zé)維護(hù)整個(gè)hdfs文件系統(tǒng)的目錄樹(shù),以及每一個(gè)路徑(文件)所對(duì)應(yīng)的block塊信息(block的id,及所在的datanode服務(wù)器)

(4)文件的各個(gè)block的存儲(chǔ)管理由datanode節(jié)點(diǎn)承擔(dān)

datanode是HDFS集群從節(jié)點(diǎn),每一個(gè)block都可以在多個(gè)datanode上存儲(chǔ)多個(gè)副本(副本數(shù)量也可以通過(guò)參數(shù)設(shè)置dfs.replication)

(5)HDFS是設(shè)計(jì)成適應(yīng)一次寫入,多次讀出的場(chǎng)景,且不支持文件的修改

注意:適合用來(lái)做數(shù)據(jù)分析,并不適合用來(lái)做網(wǎng)盤應(yīng)用,因?yàn)?#xff0c;不便修改,延遲大,網(wǎng)絡(luò)開(kāi)銷大,成本太高;

22:hadoop常用命令參數(shù)介紹:

-help

功能:輸出這個(gè)命令參數(shù)手冊(cè)

-ls

功能:顯示目錄信息

示例: hadoop fs -ls hdfs://hadoop-server01:9000/

備注:這些參數(shù)中,所有的hdfs路徑都可以簡(jiǎn)寫

-->hadoop fs -ls /?? 等同于上一條命令的效果

-mkdir

功能:在hdfs上創(chuàng)建目錄

示例:hadoop fs? -mkdir? -p? /aaa/bbb/cc/dd

-moveFromLocal

功能:從本地剪切粘貼到hdfs

示例:hadoop? fs? - moveFromLocal? /home/hadoop/a.txt? /aaa/bbb/cc/dd

-moveToLocal

功能:從hdfs剪切粘貼到本地

示例:hadoop? fs? - moveToLocal?? /aaa/bbb/cc/dd? /home/hadoop/a.txt

--appendToFile

功能:追加一個(gè)文件到已經(jīng)存在的文件末尾

示例:hadoop? fs? -appendToFile? ./hello.txt? hdfs://hadoop-server01:9000/hello.txt

可以簡(jiǎn)寫為:

Hadoop? fs? -appendToFile? ./hello.txt? /hello.txt

-cat

功能:顯示文件內(nèi)容

示例:hadoop fs -cat? /hello.txt

-tail

功能:顯示一個(gè)文件的末尾

示例:hadoop? fs? -tail? /weblog/access_log.1

-text

功能:以字符形式打印一個(gè)文件的內(nèi)容

示例:hadoop? fs? -text? /weblog/access_log.1

-chgrp

-chmod

-chown

功能:linux文件系統(tǒng)中的用法一樣,對(duì)文件所屬權(quán)限

示例:

hadoop? fs? -chmod? 666? /hello.txt

hadoop? fs? -chown? someuser:somegrp?? /hello.txt

-copyFromLocal

功能:從本地文件系統(tǒng)中拷貝文件到hdfs路徑去

示例:hadoop? fs? -copyFromLocal? ./jdk.tar.gz? /aaa/

-copyToLocal

功能:從hdfs拷貝到本地

示例:hadoop fs -copyToLocal /aaa/jdk.tar.gz

-cp

功能:從hdfs的一個(gè)路徑拷貝hdfs的另一個(gè)路徑

示例: hadoop? fs? -cp? /aaa/jdk.tar.gz? /bbb/jdk.tar.gz.2

-mv

功能:在hdfs目錄中移動(dòng)文件

示例: hadoop? fs? -mv? /aaa/jdk.tar.gz? /

-get

功能:等同于copyToLocal,就是從hdfs下載文件到本地

示例:hadoop fs -get? /aaa/jdk.tar.gz

-getmerge

功能:合并下載多個(gè)文件

示例:比如hdfs的目錄 /aaa/下有多個(gè)文件:log.1, log.2,log.3,...

hadoop fs -getmerge /aaa/log.* ./log.sum

-put

功能:等同于copyFromLocal

示例:hadoop? fs? -put? /aaa/jdk.tar.gz? /bbb/jdk.tar.gz.2

-rm

功能:刪除文件或文件夾

示例:hadoop fs -rm -r /aaa/bbb/

-rmdir

功能:刪除空目錄

示例:hadoop? fs? -rmdir?? /aaa/bbb/ccc

-df

功能:統(tǒng)計(jì)文件系統(tǒng)的可用空間信息

示例:hadoop? fs? -df? -h? /

-du

功能:統(tǒng)計(jì)文件夾的大小信息

示例:

hadoop? fs? -du? -s? -h /aaa/*

-count

功能:統(tǒng)計(jì)一個(gè)指定目錄下的文件節(jié)點(diǎn)數(shù)量

示例:hadoop fs -count /aaa/

-setrep

功能:設(shè)置hdfs中文件的副本數(shù)量

示例:hadoop fs -setrep 3 /aaa/jdk.tar.gz

23:Hdfs的工作機(jī)制:

(工作機(jī)制的學(xué)習(xí)主要是為加深對(duì)分布式系統(tǒng)的理解,以及增強(qiáng)遇到各種問(wèn)題時(shí)的分析解決能力,形成一定的集群運(yùn)維能力)

注意:很多不是真正理解hadoop技術(shù)體系的人會(huì)常常覺(jué)得HDFS可用于網(wǎng)盤類應(yīng)用,但實(shí)際并非如此。要想將技術(shù)準(zhǔn)確用在恰當(dāng)?shù)牡胤?#xff0c;必須對(duì)技術(shù)有深刻的理解

概述

1:HDFS集群分為兩大角色:NameNode、DataNode

2:NameNode負(fù)責(zé)管理整個(gè)文件系統(tǒng)的元數(shù)據(jù)

3:DataNode 負(fù)責(zé)管理用戶的文件數(shù)據(jù)塊

4:文件會(huì)按照固定的大小(blocksize)切成若干塊后分布式存儲(chǔ)在若干臺(tái)datanode上

5:每一個(gè)文件塊可以有多個(gè)副本,并存放在不同的datanode上

6:Datanode會(huì)定期向Namenode匯報(bào)自身所保存的文件block信息,而namenode則會(huì)負(fù)責(zé)保持文件的副本數(shù)量

7:HDFS的內(nèi)部工作機(jī)制對(duì)客戶端保持透明,客戶端請(qǐng)求訪問(wèn)HDFS都是通過(guò)向namenode申請(qǐng)來(lái)進(jìn)行

24:資源調(diào)度管理YARN的節(jié)點(diǎn)介紹:

1、ResourceManager節(jié)點(diǎn):

處理客戶端請(qǐng)求,啟動(dòng)和監(jiān)控ApplicationMaster,監(jiān)控NodeManager,資源分配和調(diào)度。

2、NodeManager:

單個(gè)節(jié)點(diǎn)上的資源管理,處理來(lái)自ResourceManager的命令,處理來(lái)自ApplicationMaster的命令。

3、ApplicationMaster:

數(shù)據(jù)切分,為應(yīng)用程序申請(qǐng)資源,分分配給內(nèi)部任務(wù),任務(wù)監(jiān)控與容錯(cuò)。

4、Container:

對(duì)任務(wù)運(yùn)行環(huán)境的抽象,封裝了cpu,內(nèi)存,等多為資源以及環(huán)境變量,啟動(dòng)命令等任務(wù)運(yùn)行相關(guān)的信息。

25、離線計(jì)算框架,MapReduce:

1、將計(jì)算過(guò)程分為兩個(gè)階段,Map階段和Reduce階段:

map階段并行處理輸入數(shù)據(jù)。

reduce階段對(duì)map結(jié)果進(jìn)行匯總。

2、Shuffle連接Map和Reduce兩個(gè)階段:

Map Task將數(shù)據(jù)寫到本地磁盤。

Reduce Task從每個(gè)Map Task上讀取一份數(shù)據(jù)。

3、僅僅適合離線批處理:

具有很好的容錯(cuò)性和擴(kuò)展性。

適合簡(jiǎn)單的批處理任務(wù)。

4、缺點(diǎn)明顯:啟動(dòng)開(kāi)銷大,過(guò)多使用磁盤導(dǎo)致效率低下等等

26、數(shù)據(jù)損壞(corruption)處理:

1、當(dāng)DataNode讀取block的時(shí)候,它會(huì)計(jì)算checksum。

2、如果計(jì)算后的checksum,與block創(chuàng)建時(shí)值不一樣,說(shuō)明該block已經(jīng)損壞。

3、Client讀取其他DN上的block。

4、NameNode標(biāo)記該塊已經(jīng)損壞,然后復(fù)制block達(dá)到預(yù)期設(shè)計(jì)的文件備份數(shù)。

5、DataNode在其他文件創(chuàng)建后三周驗(yàn)證其checksum

待續(xù)......

總結(jié)

以上是生活随笔為你收集整理的namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。