Hadoop實戰 明星搜尋指數統計,找出人氣王

2021-08-19 21:51:18 字數 2615 閱讀 3180

本專案我們使用明星搜尋指數資料,分別統計出搜尋指數最高的男明星和女明星。

基於專案的需求,我們通過以下幾步完成:

3、編寫 partitioner 類,按性別,將結果指定給不同的 reduce 執行。

4、編寫 reducer 類,分別統計出男、女明星的最高搜尋指數。

5、編寫 run 方法執行 mapreduce 任務。

設計的mapreduce如下所示:

map =

reduce =

map

每次呼叫map(longwritable key, text value, context context)解析一行資料。每行資料儲存在value引數值中。然後根據'\t'分隔符,解析出明星姓名,性別和搜尋指數。

public void map(object key, text value, context context) throws ioexception, interruptedexception

}map()函式期望的輸出結果map =

combiner

對 map 端的輸出結果,先進行一次合併,減少資料的網路輸出。

public static class actorcombiner extends reducer< text, text, text, text> 

} text.set(name+"\t"+maxhotindex);

context.write(key, text);

}}

partitioner

public static class actorpartitioner extends partitioner< text, text> 	 

}

reduce呼叫reduce(key, iterable< text> values, context)方法來處理每個key和values的集合。我們在values集合中,計算出明星的最大搜尋指數。

public static class actorreducer extends reducer< text, text, text, text> 

} context.write(new text(name), new text( key + "\t"+ maxhotindex));

}}

reduce()函式期望的輸出結果reduce =

run 驅動方法

在 run 方法中,設定任務執行各種資訊。

public int run(string args) throws exception 

job job = new job(conf, "star");//新建乙個任務

job.setjarbyclass(star.class);//主類

job.setnumreducetasks(2);//reduce的個數設定為2

job.setpartitionerclass(actorpartitioner.class);//設定partitioner類

job.setmapoutputkeyclass(text.class);//map 輸出key型別

job.setmapoutputvalueclass(text.class);//map 輸出value型別

job.setcombinerclass(actorcombiner.class);//設定combiner類

job.setreducerclass(actorreducer.class);//reducer

job.setoutputkeyclass(text.class);//輸出結果 key型別

job.setoutputvalueclass(text.class);//輸出結果 value型別

fileinputformat.addinputpath(job, new path(args[0]));// 輸入路徑

fileoutputformat.setoutputpath(job, new path(args[1]));// 輸出路徑

job.waitforcompletion(true);//提交任務

return 0;

}

1、myclipse將專案編譯和打包為star.jar,使用ssh將 star.jar上傳至hadoop的$hadoop_home目錄下。

2、使用cd $hadoop_home切換到當前目錄,通過命令列執行hadoop作業

hadoop jar star.jar zimo.hadoop.star.star
你可以在dfs locations介面下檢視輸出目錄。

統計明星的搜尋指數

一 目的 根據給出的資料樣本,統計出搜尋指數最高的男明星和女明星。二 思路分析 三 部分資料 四 編寫程式 1.map函式解析資料集 map函式 key gender,value name hotindex public static class mapextends 2.combiner函式,對m...

Hadoop實戰應用

1 雲盤儲存系統通過hdfs實現 2 hadoop三大發行版本 1 apache 基礎版本,實際企業使用比較少 2 cloudera cdh cloudera的hadoop發行版 clouderamanager 集群軟體分發及管理監控 3 hortonworks hdp hortonworks da...

python TGI指數分析實戰

本次實戰的目的主要是了解tgi指數的定義,並在使用者訂單資訊資料集上利用python實現簡單的tgi指數偏好分析 tgi指數 目標群體中具有某一特徵的群體所佔的比例 總體中具有相同特徵的群體所佔的比例 100 關鍵字 特徵,總體,目標群體 因最近正退出一款客單價較高的產品,需要篩選出哪些城市具有高客...