2017-06-06 75 views
2

我的燙傷作業被轉換爲9個地圖縮減作業(m/r作業)。要理解每個m/r作業代表哪部分代碼並不容易。有什麼可以幫助我更好地理解我的工作嗎?如何將燙傷作業的步驟可視化

//這是從我們在Tapad的內部維基粘貼的&拷貝。隨時分享您的經驗!

回答

2

滾燙可以以.dot格式生成作業圖。它被觸發by this code。這裏是步驟:

sbt 
project mapreduce 

run-main com.twitter.scalding.Tool com.company.YourJobClass \ 
    --tool.graph \ 
    --hdfs 
    --arg1 value_1 
    --arg2 value_2 

你應該有2個文件生成以.dot結尾。他們是文本文件。一個是你的工作使用的所有級聯功能的非常詳細的圖表。以_steps.dot結尾的另一個文件是m/r作業的圖形。在您最喜歡的編輯器中打開它們,並嘗試查找節點及其連接。

可以使用graphviz從.dot生成pdf或png文件。以下是具體步驟:

#if you don't have graphviz installed you can get it from brew on mac 
brew install graphviz 

#generate a pdf file 
dot myjob_steps.dot -Tpdf myjob_steps.pdf 

#generate a png file (could be huge!) 
dot myjob_steps.dot -Tpng myjob_steps.png 

特別提示:它可能仍然很難搞清楚其中每個M/R的工作就是在你的代碼。向代碼添加說明將把它們添加到myjob_steps.dot文件中。試用此功能並重新生成.dot文件。這是沒有必要生成.pdf文件的地方。您可以在您最喜歡的編輯器中打開myjob_steps.dot,並使用搜索來查找用於標記代碼的描述。你可以在the scalding repo找到例子。

1

我一直在爲此使用Sahale。設置起來非常簡單,但要注意的是,它似乎只適用於scala 2.11.x和scaled 0.16.x(截至撰寫本文時爲止)。它使用與作業相關的燙印行號來可視化MapReduce作業流程。由於它是一個數據庫支持的Web應用程序,因此它存儲以前的運行,並且可以在開發時跟蹤工作性能。當我從IntelliJ運行跟蹤作業時,缺少一些指標,但是當我在真正的羣集上運行內容時,它們都在那裏。

這個article做了一個很好的參觀Sahale做什麼。

+1

感謝您的提示!看起來像Driven from Cascading具有類似的功能。我正在尋找一種快速的方式來獲得關於我的工作的某種*解釋*,而無需在羣集上運行它。這是'tool.graph'是有用的。 – Oleksii