Hadoop streaming 排序、分桶參數設置


編寫hadoop任務經常需要用到partition和排序。這里記錄一下幾個參數。

1. 概念

Partition:分桶過程,用戶輸出的key經過partition分發到不同的reduce里,因而partitioner就是分桶器,一般用平台默認的hash分桶也可以自己指定。
Key:是需要排序的字段,相同分桶&&相同key的行排序到一起。

2. 參數設置

在streaming模式默認中, hadoop會把map輸出的一行中遇到的第一個設定的字段分隔符前面的部分作為key,后面的作為value,如果輸出的一行中沒有指定的字段分隔符,則整行作為key,value被設置為空字符串。streaming中默認字段分割符是tab

2.1 reduce收到數據內的排序(實際上在map結果數據落時候已經排序)

我們知道,一個reduce收到的數據是經過排序的。

如下設置,reduce收到的數據如何排序: 字段分割符是'.',按照前2個字段排序

stream.num.map.output.key.fields=2

stream.map.output.field.separator=.

2.2 map數據輸出數據partition

我們知道可以指定partition參數使得符合條件的數據被后續的同一個reduce處理。

如下設置,指定字段分隔符是'.', 按照第一個字段進行pattition

map.output.key.field.separator=.

num.key.fields.for.partition=1

 

參考: http://www.dreamingfish123.info/?p=1102

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM