2011-11-24 77 views

回答

0

請參考網址。它應該有所幫助。 Link

0

假設您已經創建了「MyMapper」和「MyReducer」類,並將它們放入「mymr.jar」jar文件中。您可以通過流媒體這樣使用它們:

FROM (
FROM src 
MAP inkey, inval 
USING 'java -cp myjar.jar 
com.myco.mymr.MyMapper' 
AS k, v 
CLUSTER BY k) mapout 
REDUCE k, v 
USING 'java -cp myjar.jar 
com.myco.mymr.MyReducer' 
1

你可以開始編寫你自定義的映射和減速繼@Moiz阿拉法特提供的Link

之後,製作一個罐子(比如說myjar.jar)。

這樣的自定義Mapper和Reducer的工作需要hive-contrib.jar,它可以在您的配置單元安裝的lib文件夾中找到。

在運行使用這些Mapper/Reducer的查詢之前,應該將這兩個jar添加到配置單元中。

hive> add file path/to/hive-contrib.jar; 
    hive> add file path/to/myjar.jar; 

請使用添加文件和NOT 添加罐子。現在

,你可以寫你的查詢,如:

hive> FROM (
    FROM src 
    MAP inkey, inval 
    USING 'java -cp myjar.jar:hive-contrib.jar com.myco.mymr.MyMapper' 
    AS k, v 
    CLUSTER BY k) mapout 
    REDUCE k, v 
    USING 'java -cp myjar.jar:hive-contrib.jar com.myco.mymr.MyReducer' 
+0

+1強調使用添加文件,而不是添加罐子。這是很容易犯的錯誤。 – javadba

相關問題