Upload
canh
View
219
Download
0
Embed Size (px)
DESCRIPTION
gg
Citation preview
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINHKHOA CÔNG NGHỆ THÔNG TIN
B Á O C Á O M Ô N H Ọ C :
Đ I Ệ N T O Á N Đ Á M M Â Y
ĐỀ TÀI: SORT ( SỐ ÂM, DƯƠNG, NGUYÊN, KHÔNG NGUYÊN)
S V T H Ự C H I Ệ N :
1. Bùi Thị Lan Anh2. Nguyễn Phong Cảnh3. Nguyễn Ngân GiangGVHD: TS. Đặng Thanh Dũng
Nội dung báo cáo1. Tổng quan đề tài
2. Phân tích đề tàia. Cấu trúc File Input
b. Cấu trúc File Output
c. Cấu trúc dữ liệu MapperInput, MapperOutput
d. Cấu trúc dữ liệu ReducerInput, ReducerOutput
e. Thuật toán, mã giả của Mapper, Reducer và sơ đồ khối
f. Hàm Mapper
g. Hàm Reducer
3. Tổng kết
TỔNG QUAN ĐỀ TÀI
Tên đề tài: Sắp xếp các số âm , dương, nguyên, không nguyên theo thứ tự tăng dần
+ Input: Text files chứa các số (âm, dương, nguyên, không nguyên)+ Data: 1Mb+ CM CT chạy đúng+ Chạy trên cloud với data 20 Mb
Phân tích đề tài
a. Cấu trúc File Input:◦ File txt chứa nhiều dòng, mỗi dòng chứa nhiều số bao gồm: số
âm, dương, nguyên, không nguyên
b. Cấu trúc File Output:◦ File txt chứa nhiều dòng, mỗi dòng 1 số đã được sắp xếp theo thứ
tự tăng dần
Phân tích đề tài c. Cấu trúc dữ liệu MapperInput:
◦ Là danh sách các cặp (k,v), trong đó:◦ k là: documentID◦ v là: nội dung documentID
◦ Cấu trúc dữ liệu MapperOutput:◦ Là danh sách các cặp (k,v), trong đó:
◦ k là : số lấy ra từ file◦ v là : số lấy ra từ file
Phân tích đề tài d. Cấu trúc dữ liệu ReducerInput:
◦ Là danh sách các cặp (k,v), trong đó:◦ k là : số lấy ra từ file◦ v là : số lấy ra từ file
◦ Cấu trúc dữ liệu ReducerOutput:◦ Là giá trị của v trong cặp (k,v)
THUẬT TOÁN MAPPER
Value: nội dung document idline = convert(Value) to stringString itr[] = line.split();While(itr.next!=null){
t=itr.next;k=t;v=t;output(k,v)
}
f. Hàm Mapper:
public class SortMapper extends MapReduceBase implements
Mapper<LongWritable, Text, FloatWritable, Text> {
private Text text = new Text();private FloatWritable fW = new FloatWritable();
public void map(LongWritable key, Text value, OutputCollector<FloatWritable, Text> output, Reporter reporter)
throws IOException {
String line = value.toString();//Dua value ve thanh kieu String
StringTokenizer itr = new StringTokenizer(line);/*Tach line thanh cac chuoi nho*/
/*StringTokenizer giup tach mot String thanh nhung tokens*/
while(itr.hasMoreTokens()) {
String t=itr.nextToken();/*Lay phan tu tiep theo*/
fW.set(Float.parseFloat(t));//ep t ve kieu thuc va dat cho fW
text.set(t);//dat text cung la t
output.collect(fW, text );//key,value
} }
}
}
}
THUẬT TOÁN REDUCER
foreach( (k,v) : (key, value))Print (k,v);
g. Hàm Reducer:
public class SortReducer extends MapReduceBaseimplements Reducer<FloatWritable, Text, FloatWritable, Text> {
public void reduce(FloatWritable key, Iterator<Text> values,
OutputCollector<FloatWritable, Text> output, Reporter reporter)
throws IOException {
//TODO Auto-generated method stub
/*Goi hasNext() cua Iterator voi vai tro bieu thuc logicchay vong lap xem con phan tu nao de xu ly nua ko*/
while (values.hasNext()) {output.collect(key, values.next());/*Goi next() cua
Iterator de lay phan tu tiep theo moi lan di qua
vong lap*/ }
}
}
k v0.6 0.62.2 2.21000000000 10000000007.0 78.0 89.0 98.0 89.0 90.0 0
k v555.0 55515000
.015000
-9.99 -9.999.4 9.40.0 04.0 41.4 1.44.1 4.1
56.56 56.56
k v1.0 17.0 78.0 89.0 9-9999 -9999-2.3 -2.3-6.33 -6.33-9.0 -955.0 55
Input11 7 8 9 -9999 -2.3 -6.33 -9 55
Mapper
Input20.6 2.2 1000000000 7 8 9 8 9 0
Input3555 15000 -9.99 -9.4 0 4 1.4 4.1 56.56
Mapper Mapper
Shuffle and Sort
Reducer
-9999-9.99-9…….555150001000000000
CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ CHÚ Ý LẮNG NGHE !!!