| 22 | |
| 23 | = HDFS shell 的用法= |
| 24 | * bin/hadoop dfs <args> ,以下就是 <args> 的介紹 |
| 25 | * 以下操作基本在 |
| 26 | |
| 27 | == -cat == |
| 28 | * 將路徑指定文件的內容輸出到stdout |
| 29 | {{{ |
| 30 | $ bin/hadoop dfs -cat quota/hadoop-env.sh |
| 31 | }}} |
| 32 | == -chgrp == |
| 33 | * 改變文件所屬的組 |
| 34 | {{{ |
| 35 | $ bin/hadoop dfs -chgrp -R waue own |
| 36 | }}} |
| 37 | == -chmod == |
| 38 | * 改變文件的權限 |
| 39 | {{{ |
| 40 | $ bin/hadoop dfs -chmod -R 755 own |
| 41 | }}} |
| 42 | == -chown== |
| 43 | * 改變文件的擁有者 |
| 44 | {{{ |
| 45 | $ bin/hadoop dfs -chown -R waue own |
| 46 | }}} |
| 47 | == -copyFromLocal, -put== |
| 48 | * 從local放檔案到hdfs |
| 49 | {{{ |
| 50 | $ bin/hadoop dfs -put input dfs_input |
| 51 | }}} |
| 52 | == -copyToLocal, -get== |
| 53 | * 把hdfs上得檔案下載到 local |
| 54 | {{{ |
| 55 | $ bin/hadoop dfs -get dfs_input input1 |
| 56 | }}} |
| 57 | == -cp== |
| 58 | * 將文件從hdfs原本路徑複製到hdfs目標路徑 |
| 59 | {{{ |
| 60 | $ bin/hadoop dfs -cp own waue |
| 61 | }}} |
| 62 | == -du== |
| 63 | * 顯示目錄中所有文件的大小 |
| 64 | {{{ |
| 65 | $ bin/hadoop dfs -du input |
| 66 | |
| 67 | Found 4 items |
| 68 | |
| 69 | 115045564 hdfs://gm1.nchc.org.tw:9000/user/waue/input/1.txt |
| 70 | |
| 71 | 987864 hdfs://gm1.nchc.org.tw:9000/user/waue/input/2.txt |
| 72 | |
| 73 | 1573048 hdfs://gm1.nchc.org.tw:9000/user/waue/input/3.txt |
| 74 | |
| 75 | 25844527 hdfs://gm1.nchc.org.tw:9000/user/waue/input/4.txt |
| 76 | }}} |
| 77 | == -dus== |
| 78 | * 顯示該目錄/文件的總大小 |
| 79 | {{{ |
| 80 | $ bin/hadoop dfs -dus input |
| 81 | |
| 82 | hdfs://gm1.nchc.org.tw:9000/user/waue/input 143451003 |
| 83 | }}} |
| 84 | == -expunge== |
| 85 | * 清空垃圾桶 |
| 86 | {{{ |
| 87 | $ bin/hadoop fs -expunge |
| 88 | }}} |
| 89 | == -getmerge== |
| 90 | * 將來源目錄<src>下所有的文件都集合到本地端一個<localdst>檔案內 |
| 91 | * bin/hadoop fs -getmerge <src> <localdst> |
| 92 | {{{ |
| 93 | $ echo "this is one; " >> in1/input |
| 94 | $ echo "this is two; " >> in1/input2 |
| 95 | $ bin/hadoop dfs -put in1 in1 |
| 96 | $ bin/hadoop dfs -getmerge in1 merge.txt |
| 97 | $ cat ./merge.txt |
| 98 | }}} |
| 99 | |
| 100 | == -ls== |
| 101 | * 列出文件或目錄的資訊 |
| 102 | * 文件名 <副本數> 文件大小 修改日期 修改時間 權限 用戶ID 組ID |
| 103 | * 目錄名 <dir> 修改日期 修改時間 權限 用戶ID 組ID |
| 104 | {{{ |
| 105 | $ bin/hadoop dfs -ls |
| 106 | }}} |
| 107 | == -lsr == |
| 108 | * ls命令的遞迴版本 |
| 109 | {{{ |
| 110 | $ bin/hadoop dfs -lsr / |
| 111 | }}} |
| 112 | == -mkdir == |
| 113 | * 建立資料夾 |
| 114 | {{{ |
| 115 | $ bin/hadoop dfs -mkdir a b c |
| 116 | }}} |
| 117 | == -moveFromLocal== |
| 118 | * 將local端的資料夾剪下移動到hdfs上 |
| 119 | {{{ |
| 120 | $ bin/hadoop dfs -moveFromLocal in1 in2 |
| 121 | }}} |
| 122 | == -mv== |
| 123 | * 更改資料的名稱 |
| 124 | {{{ |
| 125 | $ bin/hadoop dfs -mv in2 in3 |
| 126 | }}} |
| 127 | == -rm == |
| 128 | * 刪除指定的檔案(不可資料夾) |
| 129 | {{{ |
| 130 | $ bin/hadoop dfs -rm in1/input |
| 131 | }}} |
| 132 | == -rmr == |
| 133 | * 遞迴刪除資料夾(包含在內的所有檔案) |
| 134 | {{{ |
| 135 | $ bin/hadoop dfs -rmr in1 |
| 136 | }}} |
| 137 | == -setrep == |
| 138 | * 設定副本系數 |
| 139 | * bin/hadoop fs -setrep [-R] [-w] <rep> <path/file> |
| 140 | {{{ |
| 141 | $ bin/hadoop fs -setrep -w 2 -R input |
| 142 | |
| 143 | Replication 2 set: hdfs://gm1.nchc.org.tw:9000/user/waue/input/1.txt |
| 144 | |
| 145 | Replication 2 set: hdfs://gm1.nchc.org.tw:9000/user/waue/input/2.txt |
| 146 | |
| 147 | Replication 2 set: hdfs://gm1.nchc.org.tw:9000/user/waue/input/3.txt |
| 148 | |
| 149 | Replication 2 set: hdfs://gm1.nchc.org.tw:9000/user/waue/input/4.txt |
| 150 | |
| 151 | Waiting for hdfs://gm1.nchc.org.tw:9000/user/waue/input/1.txt ... done |
| 152 | |
| 153 | Waiting for hdfs://gm1.nchc.org.tw:9000/user/waue/input/2.txt ... done |
| 154 | |
| 155 | Waiting for hdfs://gm1.nchc.org.tw:9000/user/waue/input/3.txt ... done |
| 156 | |
| 157 | Waiting for hdfs://gm1.nchc.org.tw:9000/user/waue/input/4.txt ... done |
| 158 | }}} |
| 159 | == -stat == |
| 160 | * 印出時間資訊 |
| 161 | {{{ |
| 162 | $ bin/hadoop fs -stat input |
| 163 | |
| 164 | 2009-04-02 03:51:29 |
| 165 | }}} |
| 166 | == -tail== |
| 167 | * 將文件的最後1k內容輸出 |
| 168 | * 用法 : bin/hadoop fs -tail [-f] 檔案 (-f 參數用來顯示如果檔案增大,則秀出被append上得內容) |
| 169 | {{{ |
| 170 | $ bin/hadoop dfs -tail input/1.txt |
| 171 | }}} |
| 172 | == -test == |
| 173 | * 測試檔案, -e 檢查文件是否存在(1=存在, 0=否), -z 檢查文件是否為空(1=空, 0=不為空), -d 檢查是否為目錄(1=存在, 0=否) |
| 174 | * 要用echo $? 來看回傳值為 0 or 1 |
| 175 | * 用法: bin/hadoop fs -test -[ezd] URI |
| 176 | |
| 177 | {{{ |
| 178 | $ bin/hadoop dfs -test -e /user/waue/input/5.txt |
| 179 | $ bin/hadoop dfs -test -z /user/waue/input/5.txt |
| 180 | test: File does not exist: /user/waue/input/5.txt |
| 181 | $ bin/hadoop dfs -test -d /user/waue/input/5.txt |
| 182 | |
| 183 | test: File does not exist: /user/waue/input/5.txt |
| 184 | }}} |
| 185 | == -text == |
| 186 | * 將檔案(如zip, textrecordinputstream)輸出為純文字格式 |
| 187 | * hadoop fs -text <src> |
| 188 | ps : 測試出來的結果怪怪的, |
| 189 | {{{ |
| 190 | $ bin/hadoop dfs -text b/a.txt.zip |
| 191 | |
| 192 | PK |
| 193 | |
| 194 | ���:��H{ |
| 195 | |
| 196 | |
| 197 | |
| 198 | a.txtUT b��Ib��IUx��sssss |
| 199 | |
| 200 | test |
| 201 | |
| 202 | PK |
| 203 | |
| 204 | ���:��H{ |
| 205 | |
| 206 | |
| 207 | |
| 208 | ��a.txtUTb��IUxPK@C |
| 209 | }}} |
| 210 | == -touchz== |
| 211 | * |
| 212 | {{{ |
| 213 | $ bin/hadoop dfs -touchz b/kk |
| 214 | $ bin/hadoop dfs -test -z b/kk |
| 215 | |
| 216 | $ echo $? |
| 217 | |
| 218 | 1 |
| 219 | |
| 220 | $ bin/hadoop dfs -test -z b/a.txt.zip |
| 221 | |
| 222 | $ echo $? |
| 223 | |
| 224 | 0 |
| 225 | |
| 226 | |
| 227 | }}} |