hadoop下的程序測試及調試信息

(http://youzitool.com 新博客,歡迎訪問)

今天不是什麼新的內容,主要介紹下0.20版本下hadoop的調試、計數器、調試信息輸出等內容。

相信很多人學習hadoop都是從hadoop權威指南開始的,但權威指南使用的hadoop版本是0.19版本的,而有部分人(其中包括我)使用的0.20版本的。相信大家都知道0.20版本相對於0.19版本有了重大的改變。提供了一系列新的API。具體哪些我這裏就不具體說了。其中一個跟測試、調試密切相關的就是在0.20版本出現了Context  object(上下文對象).所以本篇日誌就記錄一下我在0.20版本下的測試、調試程序。這裏有要特別提示下,這些方法都是我自己摸索的,不敢保證一定效果最好或者最簡潔,比如計數器那個我也見過其他實現方法。所以如果有錯請大家指出。先謝謝了。

 

先來說說測試,老規矩直接上代碼,註釋在代碼裏:

接着來討論下hadoopp的調試信息,我介紹兩種:計數器、直接打印調試信息

這裏我只給出主要代碼,main函數裏面的代碼十分簡單,我就不給出了。

使用上面代碼的效果,我現在來給大家指出:

1:我們上面使用了計數器,當我們提交作業運行完成後,可以通過namenode返回的信息查看計數器的值

當然我也可以通過hadoop提供的web頁面查看計數器的值

當然我們也可以查看每個map裏計數器的取值。

我前兩天看了一篇文章,也是在0.20中使用計數器的,那篇文章中說的是可以直接使用

Counter c = context.getCounter("Counter","Counter1");來設置計數器,應該有可以。這裏就算多提供了一種使用計數器的方法。

2: 我們程序中使用了System.out.println("map");  System.out.println("reduce"); //直接打印調試信息。

這裏我也有兩種查看方式,一種是在web頁面中查看

還有一種是直接在datanode的log目錄下查看

具體路徑是 hadoop-0.20/logs/userlogs/attempt-*****-*****/stdout文件中查看

3:程序中我們還使用了context.setStatus("this kk!!"); //設置狀態

這個也是在web中可以查看

今天這篇文章沒什麼技術含量。就當對新版本的學習了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章