TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BIG DATA
TOP-N CÁC TỪ ĐƯỢC SỬ DỤNG
NHIỀU NHẤT TRONG CÁC FILE LOG
Học viên thực hiện:
Lê Quang Nhường M2517011
Hứa Phước An
M2517007
Giáo viên hướng dẫn:
TS. Phan Thượng Cang
NỘI DUNG
1
Mô tả bài toán
2
Giải thuật tìm TOP-N
3
4
Demo chương trình
Kết quả & Hạn chế
5
Tài liệu tham khảo
6
Hướng dẫn thực hành
7
8
2
Mô tả bài toán
• Input: Các file log
• Output: Top-n các từ được sử dụng nhiều
nhất trong các file log
nhuong an nhuong
phuong ngan phuong
ngan
nhuong 2
an 1
phuong 2
ngan 2
nhuong[2,1]
an[1,3]
phuong[2,1]
ngan[2,1]
nhuong an an phuong
an ngan
nhuong 1
an 3
phuong 1
ngan 1
nhuong 2
an 1
phuong 2
ngan 2
nhuong 1
an 3
phuong 1
ngan 1
an 4
nhuong 3
phuong 3
ngan 3
Hàm Map
hàm map(k1:id of row in the file,
v1: a line of text in the file){
đọc và chuẩn hóa dữ liệu;
tách ra từng từ;
if (từ đã xuất hiện) {
cộng giá trị cho nó thêm 1;
lưu lại giá trị trong hashmap;
}
else{ gán giá trị cho nó bằng 1;
lưu lại giá trị trong hashmap;}
}
Hàm Cleanup-Map
Hàm cleanup(data hashmap from function Map){
for(1->end hashmap){
emit(k2: word[i],v2: value);
}
}
Hàm Reduce
Hàm reduce( k2:the word,
v2:list value of word k2 in hashmap,
TopN: limit value display) {
tổng hợp giá trị theo từng khóa;
lưu giá trị vào 1 hashmap;//kiểu hashmap trong java
lấy giá trị n;// số kết quả cần lấy đầu tiên
if (hashmap.size() >= n+1 ){
sắp xếp hashmap;
giữ lại n phần tử đầu tiên của hashmap;
}
}
Hàm Cleanup-Reduce & Hàm Sort
Hàm cleanup(data hashmap from function Reduce){
lấy giá trị n;// số kết quả cần lấy đầu tiên
for(1->n in hashmap){
emit(k3:Word , v3:total value of word);
}
}
hàm sort(data hashmap){
sắp xếp hashmap;
trả về 1 hashmap có thứ tự;
}
Code
Code
Code
Code
Code
Demo chương trình
Dữ liệu demo:
+ Số lượng: 2000 files
+ Số từ : ~1,200,000
+ Định dạng : Plain text (txt)
Thiết bị:
+ 1 máy giả lập (Ubuntu 16) đã cài đặt và cấu hình
Hadoop
Kết quả đạt được
- Bước đầu tiếp cận hướng phân tích và thiết kế chường trình
theo mô hình MapReduce.
- Đã cài đặt được chương trình tìm Top N từ trong các file
log theo mô hình MapReduce trên Hadoop.
Hạn chế
- Thời gian tìm hiểu và code chương trình khá dài
- Chỉ áp dụng trên máy tính đơn , hạn chế rất nhiều về
phần cứng và dữ liệu chạy thử
- Chưa có điều kiện chạy thử trên mô hình mạng phân tán
thật.
Tài liệu tham khảo
- />- />- a/p/java-collections-sap-xep-collectionsnaQZRgvdlvx
Xin cảm ơn!