2011-12-26 37 views
0

當你使用pigServer.registerFunction時,你不應該明確地調用pigServer.registerJar,而是讓豬使用jarManager.findContainingJar自動檢測jar。嵌入式hadoop-pig:UDF使用自動addContainingJar的正確方法是什麼?

但是,我們有一個複雜的UDF,它的類依賴於來自多個罐子的其他類。所以我們用maven-assembly創建了一個jar-with-dependencies。但是這會導致整個罐子進入pigContext.skipJars(因爲它包含pig.jar本身)並且沒有被髮送到hadoop服務器:(

這裏有什麼正確的方法嗎?我們必須手動爲每個罐子調用registerJar ?取決於

回答

0

不知道什麼是認證方式,但這裏的一些指針:

  • 當您使用pigServer.registerFunction豬會自動檢測包含的UDF,它還會自動發送信息給JobTracker
  • 豬罐子檢測到包含PigMa的jar pReduce類(JarManager.createJar),並從中提取org/apache/pigorg/antlr/runtime等開始並將它們發送信息給JobTracker以及
  • 所以,如果你的UDF在同一個罐子坐作爲PigMapReduce傻冒類擰,因爲它不會被髮送
  • 我們的結論:不使用的jar-具有依賴性

HTH

相關問題