導航:首頁 > 文件目錄 > 格式化hdfs文件系統

格式化hdfs文件系統

發布時間:2025-08-08 04:12:41

❶ hadoop集群中的幾個重要概念

(1)journalnode:使兩個namenode之間的數據實現共享(hadoop層面的)。系統層面的是NFS。

(2)zookeeper:實現namenode的切換,確保集群只有一個active

(3)格式化zkfc,讓在zookeeper中生成ha節點

 (4)格式化nn:就是格式化hdfs.

與普通文件系統一樣,HDFS文件系統必須要先格式化,創建元數據數據結構以後才能使用。

(5)conf下的一些配置文件的作用

hadoop-env.sh:用於定義hadoop運行環境相關的配置信息,比如配置JAVA_HOME環境變數、為hadoop的JVM指定特定的選項、指定日誌文件所在的目錄路徑以及master和slave文件的位置等;

core-site.xml: 用於定義系統級別的參數,它作用於全部進程及客戶端,如HDFS URL、Hadoop的臨時目錄以及用於rack-aware集群中的配置文件的配置等,此中的參數定義會覆蓋core-default.xml文件中的默認配置;

hdfs-site.xml: HDFS的相關設定,如文件副本的個數、塊大小及是否使用強制許可權等,此中的參數定義會覆蓋hdfs-default.xml文件中的默認配置;

mapred-site.xml:maprece的相關設定,如rece任務的默認個數、任務所能夠使用內存的默認上下限等,此中的參數定義會覆蓋mapred-default.xml文件中的默認配置;

masters: hadoop的secondary-masters主機列表,當啟動Hadoop時,其會在當前主機上啟動NameNode和JobTracker,然後通過SSH連接此文件中的主機以作為備用NameNode;

slaves:Hadoop集群的slave(datanode)和tasktracker的主機列表,master啟動時會通過SSH連接至此列表中的所有主機並為其啟動DataNode和taskTracker進程;

Hadoop-metrics2.properties:控制metrics在hadoop上如何發布屬性

Log4j.properties:系統日誌文件、namenode審計日誌、tarsktracker子進程的任務日誌屬性

(6)hadoop.tmp.dir屬性用於定義Hadoop的臨時目錄,其默認為/tmp/hadoop-${username}。HDFS進程的許多目錄默認都在此目錄中,/hadoop/tmp目錄,需要注意的是,要保證運行Hadoop進程的用戶對其具有全部訪問許可權。

fs.default.name屬性用於定義HDFS的名稱節點和其默認的文件系統,其值是一個URI,即NameNode的RPC伺服器監聽的地址(可以是主機名)和埠(默認為8020)。其默認值為file:///,即本地文件系統。

dfs.name.dir屬性定義的HDFS元數據持久存儲路徑,默認為${hadoop.tmp.dir}/dfs/name

dfs.replication屬性定義保存副本的數量,默認是保存3份,由於這里只有兩台slave。所以設置2。

(7)可以通過修改下面幾個參數對集群讀寫性能進行優化

dfs.datanode.handler.count(加大)DN的服務線程數。這些線程僅用於接收請求,處理業務命令

dfs.namenode.handler.count(加大)  NN的服務線程數。用於處理RPC請求

dfs.namenode.avoid.read.stale.datanode(true)決定是否避開從臟DN上讀數據。臟DN指在一個指定的時間間隔內沒有收到心跳信息。臟DN將被移到可以讀取(寫入)節點列表的尾端。嘗試開啟

dfs.namenode.avoid.write.stale.datanode(true)  和上面相似,是為了避免向臟DN寫數據

❷ Hadoop-Scala-Spark環境安裝

     持續更新 請關註: https://zorkelvll.cn/blogs/zorkelvll/articles/2018/11/02/1541172452468

  本文主要是介紹大數據基礎設施軟體Hadoop-Scala-Spark的安裝過程,以macOS、linux等系統環境為例進行實踐!

一、背景

二、實踐-環境安裝(macOS)

後添加

(4)配置core-site.xml【hdfs地址和埠】:vim /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/core-site.xml => 添加配置

並且建立文件夾 mkdir /usr/local/Cellar/hadoop/hdfs & mkdir /usr/local/Cellar/hadoop/hdfs/tmp

先備份:cp /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/mapred-site.xml mapred-site-bak.xml

再編輯:vim /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/mapred-site.xml => 添加配置

(7)格式化hdfs文件系統格式:hdfs namenode -format

(8)啟動及關閉hadoop服務:

/usr/local/Cellar/hadoop/3.0.0/libexec/start-dfs.sh => 守護進程:namenodes、datanodes、secondary namenodes,瀏覽器中訪問 http://localhost:9870 ,注意埠號是9870而不是50070

/usr/local/Cellar/hadoop/3.0.0/libexec/start-yarn.sh => yarn服務進程:resourcemanager、nodemanagers,瀏覽器中訪問 http://localhost:8088 和 http://localhost:8042

/usr/local/Cellar/hadoop/3.0.0/libexec/stop-yarn.sh

/usr/local/Cellar/hadoop/3.0.0/libexec/stop-dfs.sh

注意:brew方式安裝的hadoop3.0.0,需要配置的hadoop路徑是libexec下的,否則start-dfs.sh命令會報錯「error:cannot execute hdfs-config」

以上是hadoop-scala-spark在mac下的安裝過程,為昨天在mac下首次實踐,一次性成功 => 希望能夠對各位同學有所幫助,和得到各位同學的後續關注,如果疑問或者遇到的坑,歡迎在文章下面留言!!

spark開啟之路 : https://spark.apache.org/docs/latest/quick-start.html

❸ HDFS操作命令

HDFS命令基本格式:hadoop fs -cmd < args >

表格:

注意:以上表格中路徑包括hdfs中的路徑和linux中的路徑。對於容易產生歧義的地方,會特別指出「linux路徑」或者「hdfs路徑」。如果沒有明確指出,意味著是hdfs路徑。

HDFS有一個默認的工作目錄/user/$USER,其中$USER是用戶的登錄用戶名。不過目錄不會自動建立,需要mkdir建立它
命令格式:hadoop fs -mkdir

注意:支持級聯創建新目錄,Hadoop的mkdir命令會自動創建父目錄,類似於帶-p的linux命令

put命令從本地文件系統中 復制單個或多個 源路徑到目標文件系統,也支持從標准輸入設備中讀取輸飢孫斗入並寫入目標文件系統。分為本地上傳和上傳到HDFS中。
命令格式:hadoop fs -put filename

最後一個參數是句點,相當於放入了默認的工作目錄,等價於 hadoop fs -put example.txt /user/chen

上傳文件時,文件首先復制到DataNode上,只有所有的DataNode都成功接收完數據,文件上傳才是成功的凱物。
命令格式:hadoop dfs put filename newfilename

從本地文件系統中復制單個或多個源路徑到目標文件系統。也支持從 標准輸入 中讀取輸入寫入目標文件系統。

採用-ls命令列出HDFS上的文件。在HDFS中未帶參數的-ls命令沒有返回任何值,它默認返回HDFS的home目錄下
的內容。在HDFS中,沒有當前工作目錄這樣一個概念,也沒有cmd這樣的命令。
命令格式:user@NameNode:hadoop$ bin/hadoop dfs -ls
如:

通過「-ls 文件夾名」 命令瀏覽HDFS下文件夾中的文件
命令格式:hadoop dfs -ls 文件夾名

通過該命令可以查看in文件夾中的所有文檔文件

通過「-cat 文件名」命令查看HDFS下文件夾中某個文件的內容
命令格式:hadoop$ bin/hadoop dfs -cat 文件名

通過這個命令可以查看in文件夾中所有文件的內容

通過「-get 文件按1 文件2」命令將HDFS中某目錄下的文件復制到本地系統的某文件中,並對該文件重新命名。
命令格式:hadoop dfs -get 文件名 新文件名

-get 命令與-put命令一樣,既可以操作目錄,也可以操作文件

通過「-rmr 文件」命令刪除HDFS下的文件
命令格式:hadoop$ bin/hadoop dfs -rmr 文件

-rmr 刪除文檔命令相當於delete的遞歸版本

通過-format命令實現HDFS格式化
命爛磨令格式:user@NameNode:hadoop$ bin/hadoop NameNode -format

通過運行start-dfs.sh,就可以啟動HDFS了
命令格式:user@NameNode:hadoop$ bin/ start-dfs.sh

當需要退出HDFS時,通過stop-dfs.sh 就可以關閉HDFS
命令格式:user@NameNode:hadoop$ bin/ stop-dfs.sh

HDFS的命令遠不止這些,對於其他操作,可以通過-help commandName 命令列出清單。下面列舉一些命令進行說明。

(1)chgrp改變文件所屬的組命令
chgrp命令的用途是:更改文件或目錄的組所有權。
語法格式:hadoop fs -charg [-R] GROUP URL .....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。

(2)chmod改變文件的許可權
chmod用於改變文件或目錄的訪問許可權,這個Linux系統管理員最常用的命令之一。
使用方法:hadoop fs -chmod [-R] ...
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是文件的所有者或者是超級用戶

(3)chown改變文件的擁有者
chown命令改變文件的擁有者。
使用方法:hadoop fs -chown [-R]....
使用-R將使改變在目錄結構下遞歸進行。命令的使用者必須是超級用戶。

(4)FromLocal命令
除了限定 源路徑 是只能是一個 本地文件 外,其他方面和put命令相似。
使用方法:hadoop fs -FromLocal <localsrc> URI

(5)ToLocal命令
除了限定 目標路徑 是一個 本地文件 外,其他方面和get命令類似。
使用方法:hadoop fs -ToLocal {-ignorecrc} {-crc} URI <localdst>

(6)cp命令
cp命令是將文件從源路徑復制到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。
使用方法:hadoop fs -cp URI [URI....] <dest>

返回值:成功返回0 ,失敗返回-1

(7)命令
命令顯示目錄中 所有文件的大小 ,或者當只指定一個文件時,顯示此文件的大小
使用方法:hadoop fs - URI [URI........]

返回值
成功返回0,失敗返回-1

(8)s命令
s是顯示 文件大小 的命令。
使用方法:hadoop fs -s <args>

(9)expunge命令
expunge是清空回收站的命令
使用方法:hadoop fs -expunge

(10)get命令
get是復制文件到本地文件系統的命令
使用方法:hadoop fs -get [-ignorecrc] [-crc] <localdst>
可用-ignorecrc選項復制CRC校驗失敗的文件:使用-CRC選項復制文件以及CRC信息。

返回值
成功返回0,失敗返回-1

(11)getmerge命令
getmerge命令用於接受一個源目錄和一個目標文件作為輸入,並且將源目錄中所有的文件合並成本地目標文件。
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
參數說明:addl是可選的,用於指定在每個文件結尾添加一個換行符;

假設在你的hdfs集群上有一個/user/hadoop/output目錄
裡面有作業執行的結果(多個文件組成)part-000000,part-000001,part-000002

然後就可以在本地使用vi local_file查看內容了

(12)ls命令
ls命令查看當前目錄下的信息
使用方法:hadoop fs -ls <args>
如果是 文件 ,則按照如下格式返迴文件信息:
文件名 <副本數>文件大小 修改日期 修改時間 許可權 用戶ID 組ID

如果是 目錄 ,則返回它直接子文件的一個列表,就像在UNIX中一樣。目錄返回i額表的信息如下:
目錄名<dir>修改日期 修改時間 許可權 用戶ID 組ID

返回值
成功返回0,失敗返回-1

(13)lsr命令
lsr命令是-ls命令的遞歸版,類似於UNIX中的ls-r。
使用方法:hadoop fs -lsr <args>

(14)movefromLocal命令
復制一份本地文件到hdfs,當成功後,刪除本地文件
使用方法:dfs -moveFromLocal <src> <dst>

(14.5)moveToLocal命令
類似於-get,但是當復制完成後,會刪除hdfs上的文件
使用方法:moveToLocal <src> <localDest>

(15)mv命令
將文件從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄
使用方法:hadoop fs -mv URI [URI.....] <dest>
備註:不允許在不同的文件系統間移動文件。

返回值
成功返回0,失敗返回-1

(16)put 命令
put命令從本地文件系統中復制單個或多個源路徑到目標文件系統,也支持從標准輸入中讀取輸入寫入目標文件系統
使用方法:hadoop fs -put <localsrc> .... <dst>

(17)rm命令
rm命令刪除指定的文件,只刪除非空目錄和文件。
使用方法:hadoop fs -rm URI [URI......]
請參考rmr命令了解遞歸刪除。

(18)rmr命令
rmr命令是delete命令的遞歸版本
使用方法:hadoop fs -rmr URI [URI.......]

返回值
成功返回0,失敗返回-1

(19)setrep命令
setrep命令可以改變一個文件的副本系數。
使用方法:hadoop fs -setrep [-R] <path>
參數說明:-R 選項用於遞歸改變目錄下所有文件的副本系數

返回值
成功返回0,失敗返回-1

(20)stat命令
stat命令用於返回指定路徑的統計信息
使用方法:hadoop fs -stat URI [URI......]

返回值
成功返回0,失敗返回-1

(21)tail命令
tail命令將文件尾部1KB的內容輸出到stdout。支持-f選項,行為和UNIX中一致
使用方法:hadoop fs -tail [-f] URI

返回值
成功返回0,失敗返回-1

(22)test命令
test命令是檢查命令,可以檢查文件是否存在、文件的大小等。
使用方法:hadoop fs -test -[ezd] URI

(23)text命令
text命令用於將源文件輸出問文本格式
使用方法:hadoop fs -text <src>
允許的格式是zip和TextRecordInputStream。

(24)touchz 命令
touchz命令用於創建一個0位元組的空文件。
使用方法: hadoop fs -touchz URI [URI....]

返回值
成功返回0,失敗返回-1

❹ hdfs的啟動流程

整理HDFS整個啟動的詳細過程

Namenode保存文件系統元數據鏡像,namenode在內存及磁碟(fsimage和editslog)上分別存在一份元數據鏡像文件,內存中元數據鏡像保證了hdfs文件系統文件訪問效率,磁碟上的元數據鏡像保證了hdfs文件系統的安全性。

namenode在磁碟上的兩類文件組成:

fsimage文件:保存文件系統至上次checkpoint為止目錄和文件元數據。

edits文件:保存文件系統從上次checkpoint起對hdfs的所有操作記錄日誌信息。

fsimage和editlog文件可以在本地文件系統看到
首次安裝格式化(format)主要作用是在本地文件系統生成fsimage文件。

1、首此啟動hdfs過程:

啟動namenode:

讀取fsimage生成內存中元數據鏡像。

啟動datanode:

向namenode注冊;

向namenode發送blockreport。

啟動成功後,client可以對HDFS進行目錄創建、文件上傳、下載、查看、重命名等操作,更改namespace的操作將被記錄在edits文件中。

2、之後啟動HDFS文件系統過程:

啟動namenode:

讀取fsimage元數據鏡像文件,載入到內存中。

讀取editlog日誌文件,載入到內存中,使當前內存中元數據信息與上次關閉系統時保持一致。然後在磁碟上生成一份同內存中元數據鏡像相同的fsimage文件,同時生成一個新的null的editlog文件用於記錄以後的hdfs文件系統的更改。

啟動datanode:

向namenode注冊;

向namenode發送blockreport。

啟動成功後,client可以對HDFS進行目錄創建、文件上傳、下載、查看、重命名等操作,更改namespace的操作將被記錄在editlog文件中。

3、SecondaryNameNode

輔助namenode,不能代替namenode。

SecondaryNameNode的主要作用是用於合並fsimage和editlog文件。在沒有SecondaryNameNode守護進程的情況下,從namenode啟動開始至namenode關閉期間所有的HDFS更改操作都將記錄到editlog文件,這樣會造成巨大的editlog文件,所帶來的直接危害就是下次啟動namenode過程會非常漫長。

在啟動SecondaryNameNode守護進程後,每當滿足一定的觸發條件(每3600s、文件數量增加100w等),SecondaryNameNode都會拷貝namenode的fsimage和editlog文件到自己的目錄下,首先將fsimage載入到內存中,然後載入editlog文件到內存中合並fsimage和editlog文件為一個新的fsimage文件,然後將新的fsimage文件拷貝回namenode目錄下。並且聲稱新的editlog文件用於記錄DFS的更改。

4、安全模式

在啟動namenode至所有datanode啟動完成前的階段成為安全模式。在安全模式下,client只能讀取部分HDFS文件信息,不允許client對HDFS的任何更改操作,比如創建目錄、上傳文件、刪除文件、重命名文件等。

namenode推出安全模式條件需要滿足以下條件:

datanodes blocks/total blocks >= 99.999% + 30s(緩沖時間) 此時安全模式才會推出

Secondary namenode工作流程:

1)secondary通知namenode切換edits文件

2)secondary通過http請求從namenode獲得fsimage和edits文件

3)secondary將fsimage載入內存,然後開始合並edits

4)secondary將新的fsimage發回給namenode

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

閱讀全文

與格式化hdfs文件系統相關的資料

熱點內容
yy老版本不更新下載 瀏覽:917
視力訓練appMIUI論壇 瀏覽:421
56qq華東貨主版下載 瀏覽:730
大數據營銷策劃多少錢 瀏覽:34
編程畫出來的東西如何投到桌面 瀏覽:867
applecare機型下架 瀏覽:20
大腦結構app 瀏覽:344
蘋果2016年銷售額 瀏覽:63
海爾平板支持哪些文件 瀏覽:943
jspmysql上傳下載 瀏覽:884
蘋果筆記本看電視直播用什麼app 瀏覽:907
微信公眾平台答題功能 瀏覽:962
手機鍵位鍵值測試工具 瀏覽:686
什麼編程器好用25 瀏覽:315
怎麼把一列數據替換到另一列 瀏覽:789
電信蘋果4ota寫號教程 瀏覽:286
光纖一線多撥教程 瀏覽:34
十歲小孩學習編程有什麼好處 瀏覽:622
文件路徑算敏感嗎 瀏覽:768
盤點機刪除的數據怎麼恢復 瀏覽:328

友情鏈接