Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-08-12, 19:43

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 5 篇文章 ] 
發表人 內容
 文章主題 : 要如何能用wordcount分析統計單詞時,可以把"當初的來源檔檔案"顯示在統計過後的單詞數量後面"?
文章發表於 : 2013-06-22, 23:13 
離線

註冊時間: 2013-06-03, 12:40
文章: 15
To.各位高手!!!

要如何能用wordcount分析統計單詞時,可以把當初的來源檔檔案顯示在後面?(如附圖一:有黃色及紅色框)(自行設計的概念圖):


圖檔
黃色部分是代表我輸入file01、file02兩個檔案
紅色部分是代表我希望能在每個單詞統計數量的之後,還能顯示檔案來源!!


但是,按正常wordcount執行結果後應該會出現的output(如附圖二:白色箭號處),是完全不會顯示來源檔的。
圖檔

所以想請問:
現在不知道能修改什麼檔案? 還是新增程式碼在哪一個檔案裡? 還有程式內容? 才能現這個功能(即”顯示概念圖中紅色箭頭部分”的功能)的說?


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 要如何能用wordcount分析統計單詞時,可以把"當初的來源檔檔案"顯示在統計過後的單詞數量後面"?
文章發表於 : 2013-06-23, 00:07 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
rocker81317 寫:
想請問:
現在不知道能修改什麼檔案? 還是新增程式碼在哪一個檔案裡? 還有程式內容? 才能現這個功能(即”顯示概念圖中紅色箭頭部分”的功能)的說?


1. 修改什麼檔案、新增程式碼到哪一個檔案 - WordCount.java (路徑,我不想給,因為這個線索很明顯了)
2. 程式內容:不想給,我只能說,這個題目我們稱之為「Reverse Index」,因為是非常基礎的 Hadoop MapReduce 程式設計入門第一個作業,網路上也有答案,個人相信這是老師出的作業,因此不給答案。請自己努力!

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 要如何能用wordcount分析統計單詞時,可以把"當初的來源檔檔案"顯示在統計過後的單詞數量後面"?
文章發表於 : 2013-06-23, 02:10 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
請試著 google 一下 reverse index hadoop example
程式寫法第一頁就有。

當然啦,根據您的題目定義,看懂 Reverse Index 之後,得再做變形。

寫法跟邏輯至少有兩種,
一種是送出檔名(Text)當 Mapper 的 Output Value 型別(Type)。
此時,怎麼得到次數,就得在 Reducer 裏面動點腦筋了(提示:count)。

第二種作法,用 ArrayWritable 來存一組 <IntWritable, Text> 當作 Mapper 的 Output Value 型別。
這種寫法比較難,所以我自己是用第一種作法解。

修改 hadoop-examples.jar 的方法,同上次您問我怎麼修改 hadoop-core.jar 一樣。
http://forum.hadoop.tw/viewtopic.php?p=43407#p43407
舉一反三,自然會有你要的結果。

我只想給釣竿,不想給魚。我會這樣回答,跟選擇只給方向的原因,
是因為過去我太習慣給答案了,結果很多人就只想趕快拿到答案,而不是自己思考。
所以別太生氣,有些回答或許你現在看不懂,若能把不懂的部份,
多去 google 多從你看不懂的關鍵字去查,學到的知識就是你的。

腦袋裡的,誰也搶不走~

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 要如何能用wordcount分析統計單詞時,可以把"當初的來源檔檔案"顯示在統計過後的單詞數量後面"?
文章發表於 : 2013-07-04, 03:18 
離線

註冊時間: 2013-06-03, 12:40
文章: 15
To. Jazz

想請問一下,您說”修改 hadoop-examples.jar 的方法,同上次您問我怎麼修改 hadoop-core.jar 一樣。”

這問題我思考了很久,因為像上次您,提供了JobClient_Test這資料夾讓我做ant的更新動作,我是有成功。但是我始終不了解裡面資料夾的形成,也就是說我不知道每個資料夾下為什麼要有那些東西? 或是說必須要有哪些資聊夾? 才能構成ant的效果。

/home/redhat/JobClient_Testest
bin build.xml doc src

/home/redhat/JobClient_Test/bin/org/apache/hadoop/mapred
JobClient$1.class JobClient$NewSplitComparator.class
JobClient$2.class JobClient$RawSplit.class
JobClient.class JobClient$TaskStatusFilter.class
JobClient$NetworkedJob.class

/home/redhat/JobClient_Test/doc
allclasses-frame.html help-doc.html overview-tree.html
allclasses-noframe.html index-all.html package-list
constant-values.html index.html resources
deprecated-list.html org stylesheet.css

/home/redhat/JobClient_Test/doc/ resources
background.gif tab.gif titlebar_end.gif titlebar.gif

/home/redhat/JobClient_Test/doc/org/apache/hadoop/mapred
JobClient.html package-frame.html package-tree.html
JobClient.TaskStatusFilter.html package-summary.html

/home/redhat/JobClient_Test/src
JobClient.java

所以我把它列出來後,並觀察程式碼,查了資料,也看了您敘述前一個我問的問題。我發現build.xml這檔案如您所說的的確是更新關鍵,但是我還是不知道,每個資料夾形成的用意? 不知道能不能指導一下?

此外,因為我想做出Reverse Index,您叫我上網查看其他人的做法,看了覺得更是奇怪,因為我發現有人實作的都只有5個檔案,InvertedIndexMapper、InvertedIndexReducer、AppTest.java、InvertedIndexTest.java以及InvertedIndexJob,也就是看得出來只有5個檔案就完成,又或者是3個檔案就完成。所以這就讓我更不知道,上次Jazz您給我JobClient_Testest的檔案內容,為什麼會有那些那麼多檔案存在的用途與意義的說。


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 要如何能用wordcount分析統計單詞時,可以把"當初的來源檔檔案"顯示在統計過後的單詞數量後面"?
文章發表於 : 2013-07-04, 12:27 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
rocker81317 寫:
所以我把它列出來後,並觀察程式碼,查了資料,也看了您敘述前一個我問的問題。我發現build.xml這檔案如您所說的的確是更新關鍵,但是我還是不知道,每個資料夾形成的用意? 不知道能不能指導一下?

此外,因為我想做出Reverse Index,您叫我上網查看其他人的做法,看了覺得更是奇怪,因為我發現有人實作的都只有5個檔案,InvertedIndexMapper、InvertedIndexReducer、AppTest.java、InvertedIndexTest.java以及InvertedIndexJob,也就是看得出來只有5個檔案就完成,又或者是3個檔案就完成。所以這就讓我更不知道,上次Jazz您給我JobClient_Testest的檔案內容,為什麼會有那些那麼多檔案存在的用途與意義的說。


簡單回覆

1. 要下 ant 的基本需求是執行目錄(working directory, 下 pwd 的結果)中,有 build.xml
2. bin 與 doc 兩個目錄是「輸出」。是下完 ant 之後產生的。
bin 是根據 build.xml 產生的所有 java class 檔。
doc 目錄是根據 build.xml 產生的 java doc
3. 我寫的 build.xml 的輸入是 src 目錄,
src 目錄中的所有 *.java 程式碼都會使用 javac 搭配指定的 CLASSPATH 去進行編譯,
所以即便你要改寫 Reverse Index,也只需要把所有 java 原始碼放在 src 目錄中,就可以下 ant 編譯成 output.jar
4. Reverse Index 需要改變的是 hadoop-examples-*.jar,而我原本 build.xml 去更新(patch)的是 hadoop-core-*.jar
所以需要改 build.xml 裏面的字串。

--------------------------------------

至於 build.xml 到底在寫什麼,建議去 http://ant.apache.org 找資料。
有興趣深入研究 看「 Ant: The Definitive Guide 」,http://shop.oreilly.com/product/9780596001841.do
我自己是看 http://ant.apache.org/manual/index.html 學的,沒看書。
因為我以前用過 C 的 make (make 的輸入是 Makefile)
所以我可以很容易地對應 make 的概念到 ant
但很顯然不是每個人都有這些經驗,
所以以往為了降低大家的門檻,我只會說:請把原始碼放在 src 目錄底下,然後下 ant 就對了。

有太多東西是背景知識,你們也許用過 Visual Studio 這種開發介面,實際上它是可以產生 Makefile 給 C 的程式
Eclipse 也一樣可以產生 Ant 用的 build.xml,也可以從 build.xml 直接匯入到 Eclipse
這些都是用 Google 找來的技巧,http://orshalic.wikispaces.com/Import+an+Ant+project+into+Eclipse

分享我自己的程式學習過程,我一樣剛開始學程式都希望用 GUI 介面
大一學 VB
大二學 C/C++ 的時候,就想用 Visual Studio
大三學 Java 的時候用過 Netbean 跟 Visual J
但老師都只教我們要下指令(我是電機控制系的),
因為 GUI 太難一步一步教,太難控制每個人的操作行為。指令卻可以。
大三修專題,接觸 Unix 一開始不習慣,到了研一去修 Unix Network Programming 開始用 Linux
接下來就一整個全部改用 command line 了。
至今我已經離開學校十年了,也就是離我學習 make 的時間,至少有十年了。
我學習 Java 也已經是十四年以上的時間,學習 Hadoop 也已經5年了,
所以很多時候,我是無法體會或者已經淡忘「初學者」的痛苦了。

基於分享的熱情,持續不斷地,我在這個論壇耕耘。
但學習這種事情,很多時候「共同學習的夥伴」是很重要的。
你遇到的痛苦,網路上的人不見得有辦法完全理解,但你的夥伴會懂你。
所以多找些人變成你的夥伴吧(好像海賊王的台詞喔)

我儘量耐住性子回答這些問題,若有不清楚,就放膽問吧~
但也請把你的心靈準備好,有些回答不一定會讓你覺得舒服,
但別太容易受傷,因為溝通都跟個人經驗有很大的關聯。

- Jazz


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 5 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作