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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop2常用Shell命令

發(fā)布時間:2025/4/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop2常用Shell命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.???????FS Shell

1.1?????簡介

調(diào)用文件系統(tǒng)(FS)Shell命令應(yīng)使用?bin/hadoop fs <args>的形式。 所有的的FSshell命令使用URI路徑作為參數(shù)。URI格式是scheme://authority/path。對HDFS文件系統(tǒng),scheme是hdfs,對本地文件系統(tǒng),scheme是file。其中scheme和authority參數(shù)都是可選的,如果未加指定,就會使用配置中指定的默認scheme。一個HDFS文件或目錄比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更簡單的/parent/child(假設(shè)你配置文件中的默認值是namenode:namenodeport)。大多數(shù)FS Shell命令的行為和對應(yīng)的Unix Shell命令類似,不同之處會在下面介紹各命令使用詳情時指出。出錯信息會輸出到stderr,其他信息輸出到stdout。

?

1.2?????常用命令使用

1)???cat

使用方法:hadoop fs -cat URI [URI?…]

將路徑指定文件的內(nèi)容輸出到stdout。

示例:

hadoop fs -cat hdfs://host1:port1/file1hdfs://host2:port2/file2

hadoop fs -cat file:///file3/user/hadoop/file4

返回值:

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

2)???chgrp

使用方法:hadoop fs -chgrp [-R]

改變文件所屬的組。使用-R將使改變在目錄結(jié)構(gòu)下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。更多的信息請參見HDFS權(quán)限用戶指南。

3)???chmod

使用方法:hadoop fs -chmod [-R]<MODE[,MODE]... | OCTALMODE> URI [URI?…]

改變文件的權(quán)限。使用-R將使改變在目錄結(jié)構(gòu)下遞歸進行。命令的使用者必須是文件的所有者或者超級用戶。更多的信息請參見HDFS權(quán)限用戶指南。

4)???chown

使用方法:hadoop fs -chown [-R][OWNER][:[GROUP]] URI [URI ]

改變文件的擁有者。使用-R將使改變在目錄結(jié)構(gòu)下遞歸進行。命令的使用者必須是超級用戶。更多的信息請參見HDFS權(quán)限用戶指南。

5)???copyFromLocal

使用方法:hadoop fs-copyFromLocal <localsrc> URI

除了限定源路徑是一個本地文件外,和put命令相似。

6)???copyToLocal

使用方法:hadoop fs -copyToLocal[-ignorecrc] [-crc] URI <localdst>

除了限定目標路徑是一個本地文件外,和get命令類似。

7)???cp

使用方法:hadoop fs -cp URI [URI?…] <dest>

將文件從源路徑復(fù)制到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。

示例:

hadoop fs -cp /user/hadoop/file1/user/hadoop/file2

hadoop fs -cp /user/hadoop/file1/user/hadoop/file2 /user/hadoop/dir

返回值:

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

8)???du

使用方法:hadoop fs -du URI [URI?…]

顯示目錄中所有文件的大小,或者當只指定一個文件時,顯示此文件的大小。

示例:

hadoop fs -du /user/hadoop/dir1/user/hadoop/file1 hdfs://host:port/user/hadoop/dir1

返回值:

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

9)???dus

使用方法:hadoop fs -dus<args>

顯示文件的大小。

10)??expunge

使用方法:hadoop fs -expunge

清空回收站。請參考HDFS設(shè)計文檔以獲取更多關(guān)于回收站特性的信息。

11)??get

使用方法:hadoop fs -get[-ignorecrc] [-crc] <src> <localdst>

復(fù)制文件到本地文件系統(tǒng)。可用-ignorecrc選項復(fù)制CRC校驗失敗的文件。使用-crc選項復(fù)制文件以及CRC信息。

示例:

hadoop fs -get /user/hadoop/file localfile

hadoop fs -gethdfs://host:port/user/hadoop/file localfile

返回值:

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

12)??getmerge

使用方法:hadoop fs -getmerge<src> <localdst> [addnl]

接受一個源目錄和一個目標文件作為輸入,并且將源目錄中所有的文件連接成本地目標文件。addnl是可選的,用于指定在每個文件結(jié)尾添加一個換行符。

13)??ls

使用方法:hadoop fs -ls<args>

如果是文件,則按照如下格式返回文件信息:

文件名?<副本數(shù)>?文件大小 修改日期 修改時間 權(quán)限 用戶ID?組ID

如果是目錄,則返回它直接子文件的一個列表,就像在Unix中一樣。目錄返回列表的信息如下:

目錄名?<dir>?修改日期修改時間 權(quán)限 用戶ID?組ID

示例:

hadoop fs -ls /user/hadoop/file1/user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile

返回值:

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

14)??lsr

使用方法:hadoop fs -lsr<args>

ls命令的遞歸版本。類似于Unix中的ls -R。

15)??mkdir

使用方法:hadoop fs -mkdir<paths>

接受路徑指定的uri作為參數(shù),創(chuàng)建這些目錄。其行為類似于Unix的mkdir -p,它會創(chuàng)建路徑中的各級父目錄。

示例:

hadoop fs -mkdir /user/hadoop/dir1/user/hadoop/dir2

hadoop fs -mkdirhdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir

返回值:

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

16)??movefromLocal

使用方法:dfs -moveFromLocal<src> <dst>

輸出一個”not implemented“信息。

17)??mv

使用方法:hadoop fs -mv URI [URI?…] <dest>

將文件從源路徑移動到目標路徑。這個命令允許有多個源路徑,此時目標路徑必須是一個目錄。不允許在不同的文件系統(tǒng)間移動文件。

示例:

hadoop fs -mv /user/hadoop/file1/user/hadoop/file2

hadoop fs -mv hdfs://host:port/file1hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1

返回值:

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

18)??put

使用方法:hadoop fs -put<localsrc> ... <dst>

從本地文件系統(tǒng)中復(fù)制單個或多個源路徑到目標文件系統(tǒng)。也支持從標準輸入中讀取輸入寫入目標文件系統(tǒng)。

hadoop fs -put localfile/user/hadoop/hadoopfile

hadoop fs -put localfile1 localfile2/user/hadoop/hadoopdir

hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile

hadoop fs -put -hdfs://host:port/hadoop/hadoopfile

從標準輸入中讀取輸入。

返回值:

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

19)??rm

使用方法:hadoop fs -rm URI [URI?…]

刪除指定的文件。只刪除非空目錄和文件。請參考rmr命令了解遞歸刪除。

示例:

hadoop fs -rm hdfs://host:port/file/user/hadoop/emptydir

返回值:

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

20)??rmr

使用方法:hadoop fs -rmr URI [URI?…]

delete的遞歸版本。

示例:

hadoop fs -rmr /user/hadoop/dir

hadoop fs -rmrhdfs://host:port/user/hadoop/dir

返回值:

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

21)??setrep

使用方法:hadoop fs -setrep [-R]<path>

改變一個文件的副本系數(shù)。-R選項用于遞歸改變目錄下所有文件的副本系數(shù)。

示例:

hadoop fs -setrep -w 3 -R/user/hadoop/dir1

返回值:

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

22)??stat

使用方法:hadoop fs -stat URI[URI?…]

返回指定路徑的統(tǒng)計信息。

示例:

hadoop fs -stat path

返回值:

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

23)??tail

使用方法:hadoop fs -tail [-f]URI

將文件尾部1K字節(jié)的內(nèi)容輸出到stdout。支持-f選項,行為和Unix中一致。

示例:

hadoop fs -tail pathname

返回值:

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

24)??test

使用方法:hadoop fs -test -[ezd]URI

選項:

-e?檢查文件是否存在。如果存在則返回0。

-z?檢查文件是否是0字節(jié)。如果是則返回0。

-d?如果路徑是個目錄,則返回1,否則返回0。

示例:

hadoop fs -test -e filename

25)??text

使用方法:hadoop fs -text<src>

將源文件輸出為文本格式。允許的格式是zip和TextRecordInputStream。

26)??touchz

使用方法:hadoop fs -touchz URI[URI?…]

創(chuàng)建一個0字節(jié)的空文件。

示例:

hadoop -touchz pathname

返回值:

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

2.???????jar

運行jar文件。用戶可以把他們的Map Reduce代碼捆綁到j(luò)ar文件中,使用這個命令執(zhí)行。

用法:hadoop jar <jar>[mainClass] args...

例如我們提交wordcount mapreduce的時候:

hadoop jar hadoop-examples.jar wordcountinput output

?

3.???????archive

bin/hadoop archive

創(chuàng)建一個hadoop檔案文件。參考?Hadoop Archives.

用法:hadoop archive-archiveName NAME <src>* <dest>

-archiveName NAME???要創(chuàng)建的檔案的名字。

src文件系統(tǒng)的路徑名,和通常含正則表達的一樣。

?

4.???????distcp

bin/hadoop distcp

遞歸地拷貝文件或目錄。參考DistCp指南以獲取等多信息。

用法:hadoop distcp<srcurl> <desturl>

srcurl??源Url

desturl目標Url

daemonlog

獲取或設(shè)置每個守護進程的日志級別。

用法:hadoop daemonlog-getlevel <host:port> <name>

用法:hadoop daemonlog-setlevel <host:port> <name> <level>

-getlevel <host:port><name>????打印運行在<host:port>的守護進程的日志級別。這個命令內(nèi)部會連接http://<host:port>/logLevel?log=<name>

-setlevel <host:port> <name><level>????設(shè)置運行在<host:port>的守護進程的日志級別。這個命令內(nèi)部會連接http://<host:port>/logLevel?log=<name>

?

5.???????bin/hdfs shell

dfs??????????????????runa filesystem command on the file systems supported in Hadoop.

namenode -format?????formatthe DFS filesystem

secondarynamenode????runthe DFS secondary namenode

namenode?????????????runthe DFS namenode

zkfc?????????????????runthe ZK Failover Controller daemon

datanode?????????????runa DFS datanode

dfsadmin?????????????runa DFS admin client

haadmin??????????????runa DFS HA admin client

fsck?????????????????runa DFS filesystem checking utility

?balancer?????????????runa cluster balancing utility

jmxget????????????getJMX exported values from NameNode or DataNode.

oiv??????????????????applythe offline fsimage viewer to an fsimage

oev??????????????????applythe offline edits viewer to an edits file

fetchdt??????????????fetcha delegation token from the NameNode

getconf??????????????getconfig values from configuration

groups???????????????getthe groups which users belong to

?

1)???balancer

運行集群平衡工具。管理員可以簡單的按Ctrl-C來停止平衡過程。參考Rebalancer了解更多。

用法:hadoop balancer[-threshold <threshold>]

-threshold <threshold>??磁盤容量的百分比。這會覆蓋缺省的閥值。

2)???datanode

運行一個HDFS的datanode。

用法:hadoop datanode[-rollback]

-rollback???將datanode回滾到前一個版本。這需要在停止datanode,分發(fā)老的hadoop版本之后使用。

3)???dfsadmin

bin/hdfs dfsadmin

Usage: java DFSAdmin

Note: Administrative commands can only berun as the HDFS superuser.

???????????[-report]

???????????[-safemodeenter | leave | get | wait]

???????????[-saveNamespace]

???????????[-restoreFailedStoragetrue|false|check]

???????????[-refreshNodes]

???????????[-finalizeUpgrade]

???????????[-upgradeProgressstatus | details | force]

???????????[-metasavefilename]

???????????[-refreshServiceAcl]

???????????[-refreshUserToGroupsMappings]

???????????[-refreshSuperUserGroupsConfiguration]

???????????[-printTopology]

???????????[-refreshNamenodesdatanodehost:port]

???????????[-deleteBlockPooldatanode-host:port blockpoolId [force]]

???????????[-setQuota<quota> <dirname>...<dirname>]

???????????[-clrQuota<dirname>...<dirname>]

???????????[-setSpaceQuota<quota> <dirname>...<dirname>]

???????????[-clrSpaceQuota<dirname>...<dirname>]

???????????[-setBalancerBandwidth<bandwidth in bytes per second>]

???????????[-fetchImage<local directory>]

???????????[-help[cmd]]

?

參數(shù)說明:

-report報告文件系統(tǒng)的基本信息和統(tǒng)計信息。

-safemode enter | leave | get |wait????安全模式維護命令。安全模式是Namenode的一個狀態(tài),這種狀態(tài)下,Namenode

1.?不接受對名字空間的更改(只讀)

2.?不復(fù)制或刪除塊

?

Namenode會在啟動時自動進入安全模式,當配置的塊最小百分比數(shù)滿足最小的副本數(shù)條件時,會自動離開安全模式。安全模式可以手動進入,但是這樣的話也必須手動關(guān)閉安全模式。

-refreshNodes???重新讀取hosts和exclude文件,更新允許連到Namenode的或那些需要退出或入編的Datanode的集合。

-finalizeUpgrade????終結(jié)HDFS的升級操作。Datanode刪除前一個版本的工作目錄,之后Namenode也這樣做。這個操作完結(jié)整個升級過程。

-upgradeProgress status | details |force???請求當前系統(tǒng)的升級狀態(tài),狀態(tài)的細節(jié),或者強制升級操作進行。

?

-metasave filename??保存Namenode的主要數(shù)據(jù)結(jié)構(gòu)到hadoop.log.dir屬性指定的目錄下的<filename>文件。對于下面的每一項,<filename>中都會一行內(nèi)容與之對應(yīng)

1. Namenode收到的Datanode的心跳信號

2.?等待被復(fù)制的塊

3.?正在被復(fù)制的塊

4.?等待被刪除的塊

?

-setQuota <quota><dirname>...<dirname>為每個目錄?<dirname>設(shè)定配額<quota>。目錄配額是一個長整型整數(shù),強制限定了目錄樹下的名字個數(shù)。

命令會在這個目錄上工作良好,以下情況會報錯:

1. N不是一個正整數(shù),或者

2.?用戶不是管理員,或者

3.?這個目錄不存在或是文件,或者

4.?目錄會馬上超出新設(shè)定的配額。

?

-clrQuota<dirname>...<dirname>為每一個目錄<dirname>清除配額設(shè)定。

命令會在這個目錄上工作良好,以下情況會報錯:

1.?這個目錄不存在或是文件,或者

2.?用戶不是管理員。

如果目錄原來沒有配額不會報錯。

-help [cmd]顯示給定命令的幫助信息,如果沒有給定命令,則顯示所有命令的幫助信息。

4)???namenode

運行namenode。有關(guān)升級,回滾,升級終結(jié)的更多信息請參考升級和回滾。

用法:namenode [-backup] |[-checkpoint] | [-format [-clusterid cid ] [-force] [-nonInteractive] ] |[-upgrade] | [-rollback] | [-finalize] | [-importCheckpoint] |[-initializeSharedEdits] | [-bootstrapStandby] | [-recover [ -force ] ]

-format格式化namenode。它啟動namenode,格式化namenode,之后關(guān)閉namenode。

-upgrade????分發(fā)新版本的hadoop后,namenode應(yīng)以upgrade選項啟動。

-rollback???將namenode回滾到前一版本。這個選項要在停止集群,分發(fā)老的hadoop版本后使用。

-finalize???finalize會刪除文件系統(tǒng)的前一狀態(tài)。最近的升級會被持久化,rollback選項將再不可用,升級終結(jié)操作之后,它會停掉namenode。

-importCheckpoint???從檢查點目錄裝載鏡像并保存到當前檢查點目錄,檢查點目錄由fs.checkpoint.dir指定。

?

總結(jié)

以上是生活随笔為你收集整理的Hadoop2常用Shell命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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