close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": libtasn1.so.6: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Jun 19, 2009, 2:41:13 PM (16 years ago)
- Author:
-
waue
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v30
|
v31
|
|
27 | 27 | * hadoop目錄: /opt/hadoop |
28 | 28 | = 一、安裝 = |
29 | | * 安裝的部份沒必要都一模一樣,僅提供參考,反正只要安裝好java , hadoop , eclipse,並清楚自己的路徑就可以了 |
| 29 | |
| 30 | 安裝的部份沒必要都一模一樣,僅提供參考,反正只要安裝好java , hadoop , eclipse,並清楚自己的路徑就可以了 |
| 31 | |
30 | 32 | == 1.1. 安裝java == |
31 | | * java 基本套件 |
| 33 | |
| 34 | 首先安裝java 基本套件 |
| 35 | |
32 | 36 | {{{ |
33 | 37 | $ sudo apt-get install java-common sun-java6-bin sun-java6-jdk sun-java6-jre |
… |
… |
|
35 | 39 | |
36 | 40 | == 1.1.1. 安裝sun-java6-doc == |
37 | | * 1 將javadoc (jdk-6u10-docs.zip) 下載下來 |
| 41 | |
| 42 | 1 將javadoc (jdk-6u10-docs.zip) 下載下來 |
38 | 43 | [https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u10-docs-oth-JPR@CDS-CDS_Developer 下載點] |
39 | 44 | [[Image(1-1.png)]] |
40 | 45 | |
41 | | * 2 下載完後將檔案放在 /tmp/ 下 |
42 | | * 3 執行 |
| 46 | 2 下載完後將檔案放在 /tmp/ 下 |
| 47 | |
| 48 | 3 執行 |
43 | 49 | |
44 | 50 | {{{ |
… |
… |
|
54 | 60 | $ ssh localhost |
55 | 61 | }}} |
56 | | * 執行ssh localhost 沒有出現詢問密碼的訊息則無誤 |
| 62 | |
| 63 | 執行ssh localhost 沒有出現詢問密碼的訊息則無誤 |
57 | 64 | |
58 | 65 | == 1.3. 安裝hadoop == |
59 | | * 安裝hadoop0.20到/opt/並取目錄名為hadoop |
| 66 | |
| 67 | 安裝hadoop0.20到/opt/並取目錄名為hadoop |
60 | 68 | |
61 | 69 | {{{ |
… |
… |
|
153 | 161 | |
154 | 162 | == 2.1 安裝hadoop 的 eclipse plugin == |
| 163 | |
155 | 164 | * 匯入hadoop 0.20.0 eclipse plugin |
| 165 | |
156 | 166 | {{{ |
157 | 167 | $ cd /opt/hadoop |
158 | 168 | $ sudo cp /opt/hadoop/contrib/eclipse-plugin/hadoop-0.20.0-eclipse-plugin.jar /opt/eclipse/plugins |
159 | 169 | }}} |
| 170 | |
160 | 171 | {{{ |
161 | 172 | $ sudo vim /opt/eclipse/eclipse.ini |
162 | 173 | }}} |
| 174 | |
163 | 175 | * 可斟酌參考eclipse.ini內容(非必要) |
| 176 | |
164 | 177 | {{{ |
165 | 178 | #!sh |
… |
… |
|
178 | 191 | |
179 | 192 | == 2.2 開啟eclipse & 設定 == |
| 193 | |
180 | 194 | * 打開eclipse |
| 195 | |
181 | 196 | {{{ |
182 | 197 | $ eclipse & |
183 | 198 | }}} |
184 | | * 圖 2-1 一開始會出現問你要將工作目錄放在哪裡:在這我們用預設值 |
| 199 | |
| 200 | 一開始會出現問你要將工作目錄放在哪裡:在這我們用預設值 |
185 | 201 | [[Image(2-1.png)]] |
186 | 202 | ------- |
187 | | 之後的說明則是在eclipse 上的介面操作 |
188 | | |
189 | | * window -> open pers.. -> other.. -> map/reduce |
| 203 | |
| 204 | '''PS: 之後的說明則是在eclipse 上的介面操作''' |
| 205 | |
| 206 | ------- |
| 207 | || window -> || open pers.. -> || other.. -> || map/reduce|| |
| 208 | |
190 | 209 | [[Image(win-open-other.png)]] |
191 | | |
192 | | * 圖 2-2 設定要用 Map/Reduce 的視野 |
| 210 | |
| 211 | ------- |
| 212 | |
| 213 | 設定要用 Map/Reduce 的視野 |
193 | 214 | [[Image(2-2.png)]] |
194 | 215 | |
195 | | * 圖 2-3 使用 Map/Reduce 的視野後的介面呈現 |
| 216 | --------- |
| 217 | |
| 218 | 使用 Map/Reduce 的視野後的介面呈現 |
196 | 219 | [[Image(2-3.png)]] |
197 | 220 | |
198 | | * file -> new -> project -> Map/Reduce -> Map/Reduce Project -> next |
| 221 | -------- |
| 222 | |
| 223 | || file -> || new -> || project -> || Map/Reduce -> || Map/Reduce Project -> || next || |
199 | 224 | [[Image(file-new-project.png)]] |
200 | 225 | |
201 | | * 圖 2-4 建立mapreduce專案(1) |
| 226 | -------- |
| 227 | |
| 228 | 建立mapreduce專案(1) |
202 | 229 | [[Image(2-4.png)]] |
203 | 230 | |
204 | | * 圖 2-4 建立mapreduce專案的(2) |
| 231 | ----------- |
| 232 | |
| 233 | * 建立mapreduce專案的(2) |
205 | 234 | [[Image(2-4-2.png)]] |
206 | 235 | |
… |
… |
|
211 | 240 | Finish |
212 | 241 | }}} |
| 242 | -------------- |
213 | 243 | |
214 | 244 | 由於剛剛建立了icas這個專案,因此eclipse已經建立了新的專案,出現在左邊視窗,右鍵點選該資料夾,並選properties |
215 | 245 | |
216 | | * 圖 2-5 右鍵點選project的properties做細部設定 |
| 246 | -------------- |
| 247 | 1. 右鍵點選project的properties做細部設定 |
217 | 248 | [[Image(2-5.png)]] |
218 | 249 | |
219 | 250 | |
220 | | 進入專案的細部設定頁 |
221 | | |
222 | | * 圖 2-5-1 hadoop的javadoc的設定(1) |
| 251 | 2. 進入專案的細部設定頁 |
| 252 | |
| 253 | hadoop的javadoc的設定(1) |
223 | 254 | [[Image(2-5-1.png)]] |
224 | 255 | |
… |
… |
|
227 | 258 | * java Build Path -> Libraries -> hadoop-0.20.0-tools.jar |
228 | 259 | * 以 hadoop-0.20.0-core.jar 的設定內容如下,其他依此類推 |
| 260 | |
229 | 261 | {{{ |
230 | 262 | #!sh |
… |
… |
|
233 | 265 | }}} |
234 | 266 | |
235 | | * 圖 2-5-2 hadoop的javadoc的設定完後(2) |
| 267 | ------------ |
| 268 | 3. hadoop的javadoc的設定完後(2) |
236 | 269 | [[Image(2-5-2.png)]] |
237 | 270 | |
| 271 | ------------ |
| 272 | |
238 | 273 | * javadoc location -> 輸入:file:/usr/lib/jvm/java-6-sun/docs/api/ |
239 | 274 | |
240 | | * 圖 2-5-3 java本身的javadoc的設定(3) |
| 275 | 4. java本身的javadoc的設定(3) |
241 | 276 | [[Image(2-5-3.png)]] |
242 | 277 | |
243 | 278 | ----- |
244 | | 回到eclipse 主視窗 |
245 | | |
246 | | * 圖 2-6 視窗右下角黃色大象圖示"Map/Reduce Locations tag" -> 點選齒輪右邊的藍色大象圖示: |
| 279 | * 回到eclipse 主視窗 |
| 280 | |
| 281 | -------- |
| 282 | 1. 視窗右下角黃色大象圖示"Map/Reduce Locations tag" -> 點選齒輪右邊的藍色大象圖示: |
247 | 283 | [[Image(2-6.png)]] |
248 | 284 | |
249 | | 圖 2-6-1 進行eclipse 與 hadoop 間的設定(2) |
| 285 | ------------- |
| 286 | 2. 進行eclipse 與 hadoop 間的設定(2) |
250 | 287 | [[Image(2-6-1.png)]] |
251 | 288 | |
… |
… |
|
258 | 295 | Finish |
259 | 296 | }}} |
260 | | |
261 | | 圖 2-6-2 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構 |
| 297 | ---------------- |
| 298 | |
| 299 | 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構 |
262 | 300 | [[Image(2-6-2.png)]] |
| 301 | ------------- |
263 | 302 | |
264 | 303 | = 三、 撰寫範例程式 = |
… |
… |
|
273 | 312 | == 3.1 我的第一隻程式 == |
274 | 313 | |
275 | | * File -> new -> mapper |
| 314 | === 3.1.1 mapper.java === |
| 315 | |
| 316 | 1. new |
| 317 | |
| 318 | || File -> || new -> || mapper || |
276 | 319 | [[Image(file-new-mapper.png)]] |
277 | 320 | |
278 | | 圖 3-1 mapper.java |
| 321 | ----------- |
| 322 | |
| 323 | 2. create |
| 324 | |
279 | 325 | [[Image(3-1.png)]] |
280 | 326 | {{{ |
… |
… |
|
284 | 330 | Name -> : mapper |
285 | 331 | }}} |
286 | | |
287 | | * mapper.java的程式碼: |
| 332 | ---------- |
| 333 | |
| 334 | 3. modify |
| 335 | |
288 | 336 | {{{ |
289 | 337 | #!java |
… |
… |
|
313 | 361 | }}} |
314 | 362 | |
315 | | * 圖 3-2 建立mapper.java後,貼入程式碼 |
| 363 | 建立mapper.java後,貼入程式碼 |
316 | 364 | [[Image(3-2.png)]] |
317 | 365 | |
318 | | 建立reducer.java檔 |
| 366 | ------------ |
| 367 | |
| 368 | == 3.1.2 reducer.java === |
| 369 | |
| 370 | 1. new |
319 | 371 | |
320 | 372 | * File -> new -> reducer |
321 | 373 | [[Image(file-new-reducer.png)]] |
322 | 374 | |
323 | | 圖 3-3 reducer.java |
| 375 | ------- |
| 376 | 2. create |
324 | 377 | [[Image(3-3.png)]] |
325 | 378 | |
… |
… |
|
331 | 384 | }}} |
332 | 385 | |
333 | | * reducer.java的程式碼 |
| 386 | ----------- |
| 387 | |
| 388 | 3. modify |
334 | 389 | |
335 | 390 | {{{ |
… |
… |
|
360 | 415 | * File -> new -> Map/Reduce Driver |
361 | 416 | [[Image(file-new-mr-driver.png)]] |
362 | | |
363 | | |
364 | | 圖 3-4 建立WordCount.java,此檔用來驅動mapper 與 reducer,因此選擇 Map/Reduce Driver |
| 417 | ---------- |
| 418 | |
| 419 | === 3.1.3 WordCount.java (main function)=== |
| 420 | |
| 421 | 1. new |
| 422 | |
| 423 | 建立WordCount.java,此檔用來驅動mapper 與 reducer,因此選擇 Map/Reduce Driver |
365 | 424 | [[Image(3-4.png)]] |
| 425 | ------------ |
| 426 | |
| 427 | 2. create |
366 | 428 | |
367 | 429 | {{{ |
… |
… |
|
372 | 434 | }}} |
373 | 435 | |
374 | | * 編輯 WordCount.java 檔 |
| 436 | ------- |
| 437 | 3. modify |
375 | 438 | |
376 | 439 | {{{ |
… |
… |
|
412 | 475 | }}} |
413 | 476 | |
414 | | |
415 | | |
416 | | 圖3-5. 三個檔完成後並存檔後,整個程式建立完成 |
| 477 | 三個檔完成後並存檔後,整個程式建立完成 |
417 | 478 | [[Image(3-5.png)]] |
418 | 479 | |
| 480 | ------- |
419 | 481 | |
420 | 482 | * 三個檔都存檔後,可以看到icas專案下的src,bin都有檔案產生,我們用指令來check |
… |
… |
|
429 | 491 | |
430 | 492 | = 四、編譯 = |
| 493 | |
431 | 494 | * 由於hadoop 0.20 此版本的eclipse-plugin依舊不完整 ,如: |
432 | 495 | * 右鍵點選WordCount.java -> run as -> run on Hadoop :沒有效果 |
… |
… |
|
480 | 543 | |
481 | 544 | |
| 545 | |
482 | 546 | == 4.2. 執行 == |
| 547 | |
483 | 548 | * 執行Makefile,可以到該目錄下,執行make [參數],若不知道參數為何,可以打make 或 make help |
| 549 | * make 的用法說明 |
| 550 | |
484 | 551 | {{{ |
485 | 552 | $ cd /home/waue/workspace/icas/ |
486 | 553 | $ make |
| 554 | Usage: |
| 555 | make jar - Build Jar File. |
| 556 | make clean - Clean up Output directory on HDFS. |
| 557 | make run - Run your MapReduce code on Hadoop. |
| 558 | make output - Download and show output file |
| 559 | make help - Show Makefile options. |
| 560 | |
| 561 | Example: |
| 562 | make jar; make run; make output; make clean |
487 | 563 | }}} |
488 | 564 | |