Ⅰ 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
Ⅱ Cygwin Bash,如何跳轉到指定Windows目錄
比如Hadoop平台的搭建,若是要搭建單機或偽分布環境,足矣。不過如果想要在單機上模擬完全分布環境,尤其是異構環境(當然Hadoop貌似只有Linux的)的話,虛擬機又是不錯的選擇了。 下面只是來看看怎麼在Cygwin下跳轉目錄,你能夠找到這個東西,那麼做什麼事都很方便了。想干什麼就用那個命令,不知道命令怎麼寫就help一下,不知道這個命令是幹啥的、怎麼用就man一下,還不清楚也可以網路一下解決問題。關鍵是幹啥事都得有個目標啊! 值得注意的是,Cygwin里沒有root用戶,畢竟Cygwin不是Linux,而是基於Windows。所以Cygwin下的用戶和Windows系統用戶一樣的,不存在什麼超級用戶。如果你在Cygwin下創建個用戶,實際上就是在Windows下創建。 不過Cygwin不支持如useradd這樣的用戶和組管理的命令。的確Cygwin並不是支持所有Linux命令,即便是內部命令。想要知道支持那些命令,輸個help就行了,你懂的。那麼我又怎麼知道Cygwin下創建個用戶等於Windows下創建呢?主要是上次配置ssh-host-config時發現的,我也忘了當時的情況了,所以不說了。 利用cd命令,就能讓我們跳轉到任何目錄。要跳轉到指定目錄最簡單的方法就是指定個絕對路徑作為參數,不過我們下面來討論的是一些較為特殊,也較為方便的情況。 上圖中,我們跳轉到/,可以看出/指的是Cygwin所在的根目錄。 接下來看的是~,明顯是用戶主目錄,也就是和登陸名一樣的那個文件夾。不過我們說了$符號,就說明你不是超級用戶,自然有很多訪問限制,所以ls不出這個文件夾里的文件,你可以Windows打開看看,是否有文件。所以為了確定到底是哪個目錄,我又用了..來返回上一級目錄,發現是/home,就明顯說明是用戶主目錄了。 再說明一下,如果我要跳轉到上上級,乃至上…上級目錄呢?直接cd ../..以此類推即可。 順便一說,./表示當前目錄,這個應該寫過相對路徑的都知道。現在又問怎麼查看子目錄。子目錄自然是當前目錄的下一個目錄,那麼怎麼查看還不知道嗎?唯一值得注意的是,不要直接跳轉到子目錄名,要不然你就用絕對路徑表示。 上面這些都是在Cygwin根目錄下倒騰的,可是現在我想要倒騰倒騰這之外的目錄呢?比如C盤之類的。別以為這不可以,Cygwin根目錄下有個文件夾叫cygdrive,打開後是空的。這個文件夾或目錄總不是Linux有掛載的吧?那我們就試一試它到底是干什麼的。 從截圖中可以很明顯的看到,cygdrive目錄下是各個盤符,然後進去後果然是各個盤的那些雜七雜八的東西。由此可見,cygdrive就是我們平常所說的「我的電腦」、「計算機」之類的東西,所以Cygwin完全有能力取代Dos,嗯。 最後在介紹一個-,這個貌似用的不多,不過有時候還是挺方便的。就是返回前一個查看的目錄,即當前工作目錄的前一個工作目錄,注意不是上一級目錄!
Ⅲ hadoop常用shell命令怎麼用
一、常用的hadoop命令
1、hadoop的fs命令
#查看hadoop所有的fs命令
1
hadoop fs
#上傳文件(put與FromLocal都是上傳命令)
1
2
hadoop fs -put jdk-7u55-linux-i586.tar.gz hdfs://hucc01:9000/jdk
hadoop fs -FromLocal jdk-7u55-linux-i586.tar.gz hdfs://hucc01:9000/jdk
#下載命令(get與ToLocal都是下載命令)
1
2
hadoop fs -get hdfs://hucc01:9000/jdk jdk1.7
hadoop fs -ToLocal hdfs://hucc01:9000/jdk jdk1.7
#將本地一個或者多個文件追加到hdfs文件中(appendToFile)
1
hadoop fs -appendToFile install.log /words
#查詢hdfs的所有文件(ls)
1
hadoop fs -ls /
#幫助命令(help)
1
hadoop fs -help fs
#查看hdfs文件的內容(cat和text)
1
2
hadoop fs -cat /words
hadoop fs -text /words
#刪除hdfs文件(rm)
1
hadoop fs -rm -r /words
#統計hdfs文件和文件夾的數量(count)
1
hadoop fs -count -r /
#合並hdfs某個文件夾的文件,並且下載到本地(getmerge)
1
hadoop fs -getmerge / merge
#將本地文件剪切到hdfs,相當於對本地文件上傳後再刪除(moveFormLocal)
1
hadoop fs -moveFromLocal words /
#查看當前文件系統的使用狀態(df)
1
hadoop fs -df
二、常用的hdfs命令(這個用的比較多)
用法跟hadoop命令一樣,推薦2.0之後使用hdfs命令
1
hdfs dfs
Ⅳ HDFS中根目錄下創建user文件夾的命令為
HDFS中根目錄下創建user文件夾的命令為hadoop dfs-mkdir。在hdfs中創建一個input文件夾:hadoopfs-mkdir/input/1、使用參數-p創建多級目錄:hadoopfs-mkdir-p/input/file1。拷貝input目錄到hdfs系統的時候,不是採用的hadoop用戶,而是用root用戶執行的拷貝命令。
hdfs的特點和目標:
1、硬體故障
硬體故障是常態,而不是異常。整個HDFS系統將由數百或數千個存儲著文件數據片段的伺服器組成。實際上它裡面有非常巨大的組成部分,每一個組成部分都很可能出現故障,這就意味著HDFS里的總是有一些部件是失效的,因此,故障的檢測和自動快速恢復是HDFS一個很核心的設計目標。
2、數據訪問
運行在HDFS之上的應用程序必須流式地訪問它們的數據集,它不是運行在普通文件系統之上的普通程序。HDFS被設計成適合批量處理的,而不是用戶互動式的。重點是在數據吞吐量,而不是數據訪問的反應時間,POSIX的很多硬性需求對於HDFS應用都是非必須的,去掉POSIX一小部分關鍵語義可以獲得更好的數據吞吐率。
3、大數據集
運行在HDFS之上的程序有很大量的數據集。典型的HDFS文件大小是GB到TB的級別。所以,HDFS被調整成支持大文件。它應該提供很高的聚合數據帶寬,一個集群中支持數百個節點,一個集群中還應該支持千萬級別的文件。
以上內容參考:網路-hdfs
Ⅳ hadoop中常用的命令
1、查看指定目錄下內容
hadoop dfs –ls [文件目錄]
eg: hadoop dfs –ls /user/wangkai.pt
2、打開某個已存在文件
hadoop dfs –cat [file_path]
eg:hadoop dfs -cat /user/wangkai.pt/data.txt
3、將本地文件存儲至hadoop
hadoop fs –put [本地地址] [hadoop目錄]
hadoop fs –put /home/t/file.txt /user/t
(file.txt是文件名)
4、將本地文件夾存儲至hadoop
hadoop fs –put [本地目錄] [hadoop目錄]
hadoop fs –put /home/t/dir_name /user/t
(dir_name是文件夾名)
5、將hadoop上某個文件down至本地已有目錄下
hadoop fs -get [文件目錄] [本地目錄]
hadoop fs –get /user/t/ok.txt /home/t
6、刪除hadoop上指定文件
hadoop fs –rm [文件地址]
hadoop fs –rm /user/t/ok.txt
7、刪除hadoop上指定文件夾(包含子目錄等)
hadoop fs –rm [目錄地址]
hadoop fs –rmr /user/t
8、在hadoop指定目錄內創建新目錄
hadoop fs –mkdir /user/t
9、在hadoop指定目錄下新建一個空文件
使用touchz命令:
hadoop fs -touchz /user/new.txt
10、將hadoop上某個文件重命名
使用mv命令:
hadoop fs –mv /user/test.txt /user/ok.txt (將test.txt重命名為ok.txt)
11、將hadoop指定目錄下所有內容保存為一個文件,同時down至本地
hadoop dfs –getmerge /user /home/t
12、將正在運行的hadoop作業kill掉
hadoop job –kill [job-id]
Ⅵ hadoop中在HDFS中創建一個input目錄,然後hadoop fs -ls命令
你創建input目錄的時候是不是也用了sudo命令?這樣的話就是使用了root用戶來創建了input,所以生成的是user/root/input,而不是用了hadoop這個用戶創的目錄,所以沒有生成/user/hadoop/input。hadoop的指令都不需要用sudo來使用root許可權啊,