從頭學習大數據培訓課程 hadoop 分散式計算框架(八) semijoin,distributedcache 使用,排序,
02-03
標題: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
※在多維數據分析模型的路上越走越遠
※產品和運營,應該怎樣利用大數據做轉化分析