hadoop mr 全域性排序

2021-09-02 20:15:34 字數 1129 閱讀 6663

全域性排序

需求:根據使用者每月使用的流量按照使用的流量多少排序

介面->writablecomparable

排序操作在hadoop中屬於預設的行為。預設按照字典順序排序。

排序的分類:

1)部分排序

2)全排序

3)輔助排序 

4)二次排序

封裝類,直接完成排序

public class flowbean implements writalbecomparable

public flowbean(long upflow, long dfflow)

setter

getter

@override

public void readfields(datainput in) throws exception

@override

public void write(dataoutput out) throws exception

@override

public int compareto(flowbean o)

@override

public string tostring()

}public class flowsortreducer extends reducer

}//2、切割

string fields = line.split("\t");

//3、取出關鍵字段

long upflow = long.parselong(fields[1]);

long dfflow = long.parselong(fields[1]);

//4、寫出到reduce 階段

context.write(new flowbean(upflow,dfflow), new text(field[0]))}}

public class flowsortdriver

}分割槽加排序

public class phonenumpartitioner extends partitionerelse if("137".equals(phonenum))else ("138".equals(phonenum))

return partitioner;}}

diriver類

hadoop mr 輔助排序

輔助排序 需求 訂單資料 求出每個訂單中最貴的商品?訂單id正序,成交金額倒序。結果檔案三個,每個結果檔案只要一條資料 public class orderbean implements writablecomparable public orderbean int order id,double ...

Hadoop MR程式設計中main 函式引數注入

下面介紹mapreduce的主要的六個類,只有了解了這六個類的作用,才能在編寫程式中知道哪個類是要自己實現,哪些類可以呼叫預設的類,才能真正的做到游刃有餘,關於需要自己編寫的類 使用者制定類 可以參考 inputformat類。該類的作用是將輸入的檔案和資料分割成許多小的split檔案,並將spli...

MR 全域性排序 多reducer

在資料量大的情況下,使用單reducer進行全域性排序的方式明顯效率較低,可次採用多reducer的方式。在map中進行分桶,分桶方式自定。usr bin python import sys base count 10000 try for line in sys.stdin ss line.str...