close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": libsvn_subr-1.so.1: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Apr 27, 2009, 5:23:51 PM (17 years ago)
- Author:
-
jazz
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v4
|
v5
|
|
| 9 | 9 | * 某些情況下,後來的環境也許會跟之前配置的不同,比如說,原本只有五台機器架設hadoop,但是也許老闆今天心血來潮,又撥了五台電腦給你。在接續之前的環境動態的擴增節點的方法,請看以下作法。 |
| 10 | 10 | |
| 11 | | == 1.0 說明 == |
| | 11 | == 1.0 說明 == |
| | 12 | |
| 12 | 13 | * 要新增的節點上,hadoop版本與設定檔要與原先的相同 |
| 13 | 14 | * 是否能連到正確的位址取決於conf/hadoop-site.xml內的jobTracker, Namenode資訊是否正確 (目前測試結果與conf/slave、masters無關) |
| 14 | 15 | |
| 15 | | == 1.1 加入datanode == |
| | 16 | == 1.1 加入datanode == |
| 16 | 17 | |
| 17 | 18 | * 在要加入的節點上面下此指令 |
| … |
… |
|
| 24 | 25 | starting datanode, logging to /tmp/hadoop/logs/hadoop-waue-datanode-Dx7200.out |
| 25 | 26 | }}} |
| 26 | | == 1.2 加入 taskTracker == |
| | 27 | |
| | 28 | == 1.2 加入 taskTracker == |
| | 29 | |
| 27 | 30 | * 是否能連到正確的namenode取決於conf/hadoop-site.xml,目前測試結果與conf/slave、masters無關 |
| 28 | 31 | {{{ |
| … |
… |
|
| 36 | 39 | |
| 37 | 40 | ----- |
| | 41 | |
| 38 | 42 | = 狀況二: 怎麼讓我的HDFS內資料均勻分散於各個Node上 = |
| | 43 | |
| 39 | 44 | * 下面指令用於分析數據塊分佈和重新平衡!DataNode上的數據分佈 |
| 40 | 45 | {{{ |
| … |
… |
|
| 51 | 56 | Balancing took 186.0 milliseconds |
| 52 | 57 | }}} |
| | 58 | |
| 53 | 59 | ------ |
| 54 | 60 | |
| 55 | | = 狀況三:如何讓已上線服務的Hadoop進行升級並且不失去以前的資料 = |
| | 61 | = 狀況三:如何讓已上線服務的Hadoop進行升級並且不失去以前的資料 = |
| | 62 | |
| 56 | 63 | * 假設從原本的hadoop 0.16升級到hadoop 0.18 |
| 57 | 64 | * 如果把conf/這個資料夾至於$Hadoop_home目錄下的話,一旦換版本就連conf也被一併換掉,但無論hadoop的版本新舊,其實設定檔及其資訊是可以共用的。 |
| 58 | | == step 1. 停止hdfs == |
| | 65 | |
| | 66 | == step 1. 停止hdfs == |
| | 67 | |
| 59 | 68 | * 先看狀態 |
| 60 | 69 | {{{ |
| … |
… |
|
| 71 | 80 | }}} |
| 72 | 81 | |
| 73 | | == Step 2. 鍊結新版本hadoop == |
| | 82 | == Step 2. 鍊結新版本hadoop == |
| | 83 | |
| 74 | 84 | * 把conf 移至/opt/conf ,hadoop 0.16 與 hadoop 0.18用 ln 做捷徑代換。 |
| 75 | 85 | * 以下假設你已經下載好hadoop0.18並解壓縮後,資料夾名稱為hadoop-0.18.3 |
| … |
… |
|
| 81 | 91 | }}} |
| 82 | 92 | |
| 83 | | == step 3. 設置環境變數== |
| | 93 | == step 3. 設置環境變數 == |
| | 94 | |
| 84 | 95 | * 由於conf已不在hadoop_home內,因此記得匯入conf/hadoop-env.sh的參數 |
| 85 | 96 | * 填入hadoop-env.sh 內$HADOOP_CONF_DIR正確路徑,並匯入資訊 |
| … |
… |
|
| 88 | 99 | }}} |
| 89 | 100 | |
| 90 | | == step 4. 每個節點都部署新版本的Hadoop == |
| | 101 | == step 4. 每個節點都部署新版本的Hadoop == |
| | 102 | |
| 91 | 103 | * 若有多個node的話,則每個node的hadoop版本都要統一,否則會出現問題 |
| 92 | 104 | |
| 93 | | == step 5. 啟動 == |
| | 105 | == step 5. 啟動 == |
| | 106 | |
| 94 | 107 | {{{ |
| 95 | 108 | $ bin/start-dfs.sh -upgrade |
| … |
… |
|
| 99 | 112 | |
| 100 | 113 | ------- |
| 101 | | = 狀況四:如何讓已上線服務的Hadoop進行降級並且不失去以前的資料 = |
| | 114 | |
| | 115 | = 狀況四:如何讓已上線服務的Hadoop進行降級並且不失去以前的資料 = |
| | 116 | |
| 102 | 117 | * 此情況與狀況三相反,因此作法類似狀況三,下面的狀況假設設定檔已在/opt/conf內,並且/opt內也都有hadoop-0.16 與 hadoop-0.18.3 兩個資料夾,而且節點只有一台。 |
| 103 | | == step 1. 在原本停止集群 == |
| | 118 | |
| | 119 | == step 1. 停止 HDFS == |
| | 120 | |
| 104 | 121 | {{{ |
| 105 | 122 | $ cd /opt/hadoop |
| 106 | 123 | $ bin/stop-dfs.sh |
| 107 | 124 | }}} |
| 108 | | == step 2. 部署老版本的Hadoop == |
| | 125 | |
| | 126 | == step 2. 部署老版本的Hadoop == |
| | 127 | |
| 109 | 128 | {{{ |
| 110 | 129 | $ rm /opt/hadoop |
| … |
… |
|
| 112 | 131 | }}} |
| 113 | 132 | |
| 114 | | == step 3. 退回之前版本 == |
| | 133 | == step 3. 退回之前版本 == |
| | 134 | |
| 115 | 135 | {{{ |
| 116 | 136 | $ bin/start-dfs.sh -rollback |
| … |
… |
|
| 118 | 138 | |
| 119 | 139 | ----- |
| 120 | | = 狀況五:我的HDFS檔案系統是否正常 = |
| | 140 | |
| | 141 | = 狀況五:我的HDFS檔案系統是否正常 = |
| | 142 | |
| 121 | 143 | * 在此介紹HDFS文件系統檢查工具 "bin/hadoop fsck" |
| 122 | 144 | |
| … |
… |
|
| 178 | 200 | ----- |
| 179 | 201 | |
| 180 | | = 狀況六:我的系統似乎跑太多Job,我要幫他減肥 = |
| 181 | | |
| 182 | | == step 1. 把所有程序列出來 == |
| | 202 | = 狀況六:我的系統似乎跑太多Job,我要幫他減肥 = |
| | 203 | |
| | 204 | == step 1. 把所有程序列出來 == |
| | 205 | |
| 183 | 206 | * 可到JobTracker:50030網頁來看程序的Jobid |
| 184 | 207 | * 或用指令印出所有程序 |
| … |
… |
|
| 196 | 219 | job_200904021140_0006 2 1238658644666 waue |
| 197 | 220 | }}} |
| 198 | | == step 2. more detail == |
| | 221 | |
| | 222 | == step 2. more detail == |
| | 223 | |
| 199 | 224 | * 查看工作狀態 |
| 200 | 225 | {{{ |
| … |
… |
|
| 219 | 244 | ...略 |
| 220 | 245 | }}} |
| 221 | | == step 3. 殺很大、殺不用錢 == |
| 222 | | * 終止正在執行的程序,如 id為 job_200904021140_0001 |
| | 246 | |
| | 247 | == step 3. 殺很大、殺不用錢 == |
| | 248 | |
| | 249 | * 終止正在執行的程序,如 id 為 job_200904021140_0001 |
| 223 | 250 | {{{ |
| 224 | 251 | $ bin/hadoop job -kill job_200904021140_0001 |
| 225 | 252 | }}} |
| 226 | 253 | -------- |
| 227 | | = 狀況七:怎麼看目前的Hadoop版本 = |
| | 254 | |
| | 255 | = 狀況七:怎麼看目前的Hadoop版本 = |
| | 256 | |
| 228 | 257 | * 印出目前的hadoop 版本 |
| 229 | 258 | {{{ |
| … |
… |
|
| 238 | 267 | |
| 239 | 268 | ----- |
| 240 | | = 狀況八:我要設定HDFS的帳戶及配額 = |
| 241 | | == step 1. 先設定各使用者的預設資料夾,屬性及讀寫權限 |
| | 269 | = 狀況八:我要設定HDFS的帳戶及配額 = |
| | 270 | |
| | 271 | == step 1. 先設定各使用者的預設資料夾,屬性及讀寫權限 == |
| | 272 | |
| 242 | 273 | * hdfs的權限有owner, group, other三種 |
| 243 | 274 | * 而用戶的身份取決於client上的使用者 (用 whoami),群組為(bash -c groups) |
| … |
… |
|
| 259 | 290 | dfs.umask = 022 |
| 260 | 291 | }}} |
| 261 | | == step2. 設定配額 == |
| | 292 | |
| | 293 | == step2. 設定配額 == |
| 262 | 294 | |
| 263 | 295 | * 目錄配額是對目錄樹上該目錄下的名字數量做硬性限制 |