從頭學習大數據培訓課程 hadoop 分散式計算框架(八) semijoin,distributedcache 使用,排序,

標題:mapreducer 編程,semijoin,distributedcache 使用,排序,writableComparator 使用

1. semijoin,distributedcache使用

semijoin的意思是在mapper端進行連接適合數據集小(一般為比較小的字典文件)與數據集大的連接。因為數據已經在maper端join了所以不需要運行reducer

使用時在客戶端用-Dmapreduce.job.cache.files或者-files通過命令行指定本地文件地址或者hdfs上的文件地址

過程是客戶端先把本地文件上傳到HDFS(如果指定的是HDFS路徑則省略這步),各運行任務節點再從HDFS把文件下載到本地,並創建指向文件的軟連接,然後通過軟鏈接訪問這個文件,任務運行完成會刪除這個軟鏈接

windows使用時需要關閉UAC,eclipse啟動使用管理員模式。否則提示找不到文件或者無法創建軟鏈接

mapper實現

job配置

輸入數據

輸入字典文件

輸出結果

2. 排序,writableComparator

(1)正序,因為reducer輸入的key已經是自然排序的,所以直接把輸入的key直接輸出就可以

mapper實現

reducer實現

job配置

輸入數據

運算結果

(2)倒序,需要實現自定義的writableComparator

要有構造方法並指定好key的類型。對父類的compare取反就可以

mapper和reducer實現和正序一樣

job配置

輸入數據和正序一樣

運算結果


推薦閱讀:

在當前大數據背景下,基於數據的歸納學習能否使得中醫重新獲得生命力?
藍色巨人IBM的變革與復興,大數據時代的人工智慧 IBM Watson
在多維數據分析模型的路上越走越遠
產品和運營,應該怎樣利用大數據做轉化分析

TAG:大数据 | 大数据分析 | Hadoop |