Changes between Initial Version and Version 1 of Hinet131022/Lab5


Ignore:
Timestamp:
Oct 21, 2013, 8:25:46 PM (11 years ago)
Author:
jazz
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Hinet131022/Lab5

    v1 v1  
     1◢ <[wiki:Hinet131022/Lab4 實作四]> | <[wiki:Hinet131022 回課程大綱]> ▲ | <[wiki:Hinet131022/Lab6 實作六]> ◣
     2
     3= 實作五 Lab5 =
     4
     5{{{
     6#!html
     7<p style="text-align: center;"><big style="font-weight: bold;"><big>基本除錯技能(一) Bash 除錯<br/>Debug Skill (1) Bash debugging</big></big></p>
     8}}}
     9
     10[[PageOutline]]
     11{{{
     12#!text
     13請先連線至 nodeN.3du.me , N 為您的報名編號
     14}}}
     15
     16 * 首先,我們想要瞭解上述練習中一直使用到的指令 hadoop 是什麼。讓我們先用 which 指令,找出它所在的路徑
     17{{{
     18user@node1:~/hadoop_labs$ which hadoop
     19/home/user/hadoop/bin/hadoop
     20}}}
     21
     22 * 接著,讓我們用指令 file 來查出這個 hadoop 指令是什麼格式。
     23{{{
     24user@node1:~/hadoop_labs$ file `which hadoop`
     25/home/user/hadoop/bin/hadoop: a bash script, ASCII text executable
     26}}}
     27
     28 * 現在我們知道它是 bash script,那如何針對 bash script 進行除錯呢?我們可以用 bash -x 參數來進行除錯!
     29{{{
     30user@node1:~/hadoop_labs$ bash -x `which hadoop` fs -ls
     31.... 略 ....
     32adoop/libexec/../lib/slf4j-api-1.4.3.jar:/home/user/hadoop/libexec/../lib/slf4j-log4j12-1.4.3.jar:/home/user/hadoop/libex
     33ec/../lib/xmlenc-0.52.jar:/home/user/hadoop/libexec/../lib/jsp-2.1/jsp-2.1.jar:/home/user/hadoop/libexec/../lib/jsp-2.1/j
     34sp-api-2.1.jar org.apache.hadoop.fs.FsShell -ls
     35Found 3 items
     36drwxr-xr-x - user supergroup 0 2013-09-23 00:28 /user/user/input
     37drwxr-xr-x - user supergroup 0 2013-09-23 00:27 /user/user/tmp
     38drwxr-xr-x - user supergroup 0 2013-09-23 00:34 /user/user/toHDFS
     39}}}
     40
     41 * 從上面指令的執行結果,我們可以觀察到 hadoop fs 指令會幫忙補齊 Java CLASSPATH 的設定,最後會執行某個 Java Class
     42 * 讓我們來看一下其他的 hadoop 指令是使用哪個 Java Class
     43{{{
     44user@node1:~/hadoop_labs$ bash -x `which hadoop` jar
     45user@node1:~/hadoop_labs$ bash -x `which hadoop` fsck
     46}}}
     47
     48 * <舉一反三> 未來您想要找任何指令的 Java 原始碼入口,就可以使用這個技巧。例如: hadoop distcp 、 hadoop balancer
     49
     50== 實作習題 ==
     51
     52 * <問題 1> 請問 hadoop fs 指令是使用哪個 Java Class ?
     53{{{
     54#!text
     55    (A) FileSystem
     56    (B) FsShell
     57    (C) RunJar
     58    (D) DFSck
     59}}}
     60
     61 * <問題 2> 請問 hadoop jar 指令是使用哪個 Java Class ?
     62{{{
     63#!text
     64    (A) FileSystem
     65    (B) FsShell
     66    (C) RunJar
     67    (D) DFSck
     68}}}
     69
     70 * <問題 3> 請問 hadoop fsck 指令是使用哪個 Java Class ?
     71{{{
     72#!text
     73    (A) FileSystem
     74    (B) FsShell
     75    (C) RunJar
     76    (D) DFSck
     77}}}