Bài báo cáo Tìm TopN các từ được sử dụng nhiều nhất trong các file logBài báo cáo Tìm TopN các từ được sử dụng nhiều nhất trong các file logBài báo cáo Tìm TopN các từ được sử dụng nhiều nhất trong các file logBài báo cáo Tìm TopN các từ được sử dụng nhiều nhất trong các file logBài báo cáo Tìm TopN các từ được sử dụng nhiều nhất trong các file logBài báo cáo Tìm TopN các từ được sử dụng nhiều nhất trong các file log
Trang 1Giáo viên hướng dẫn:
TS Phan Thượng Cang
Học viên thực hiện:
Lê Quang Nhường M2517011
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
Trang 2NỘI DUNG
2
Giải thuật tìm TOP-N
1
Demo chương trình
2
3
Mô tả bài toán
4
5
Hướng dẫn thực hành
6
Kết quả & Hạn chế
7
Tài liệu tham khảo
8
Trang 3• Input: Các file log
• Output: Top-n các từ được sử dụng nhiều nhất trong các file log
Mô tả bài toán
Trang 4nhuong an nhuong phuong ngan phuong ngan
nhuong 2
an 1 phuong 2 ngan 2
nhuong 2
an 1 phuong 2 ngan 2 nhuong 1
an 3 phuong 1 ngan 1
nhuong[2,1]
an[1,3]
phuong[2,1]
ngan[2,1]
an 4 nhuong 3 phuong 3 ngan 3
nhuong 1
an 3 phuong 1 ngan 1 nhuong an an phuong
an ngan
Trang 5Hà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;} }
Trang 6Hàm cleanup(data hashmap from function Map){
for(1->end hashmap){
emit( k2 : word[i] , v2 : value );
}
}
Hàm Cleanup-Map
Trang 7Hà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 Reduce
Trang 8Hà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ự;
}
Hàm Cleanup-Reduce & Hàm Sort
Trang 9Code
Trang 14Demo 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
Trang 15Kế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.
Trang 16Hạ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
Trang 17Tài liệu tham khảo
-
http://www.hadooptpoint.org/hadoop-setup-method-cleanup-method-example-in-mapreduce/
-
http://javarevisited.blogspot.it/2012/12/how-to-sort-hashmap-java-by-key-and-value.html
- https://viblo.asia/p/java-collections-sap-xep-collections-naQZRgvdlvx
Trang 18Xin cảm ơn!