Nghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại MobifoneNghiên cứu xây dựng mô hình giải pháp mã nguồn mở Cloudera phục vụ triển khai ứng dụng big data tại Mobifone
Trang 1PHẠM XUÂN LỘC
NGHIÊN CỨU XÂY DỰNG MÔ HÌNH GIẢI PHÁP
MÃ NGUỒN MỞ CLOUDERA PHỤC VỤ TRIỂN KHAI
ỨNG DỤNG BIG DATA TẠI MOBIFONE
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI - 2019
Trang 2PHẠM XUÂN LỘC
NGHIÊN CỨU XÂY DỰNG MÔ HÌNH GIẢI PHÁP
MÃ NGUỒN MỞ CLOUDERA PHỤC VỤ TRIỂN KHAI
ỨNG DỤNG BIG DATA TẠI MOBIFONE
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả luận văn ký và ghi rõ họ tên
Phạm Xuân Lộc
Trang 4LỜI CẢM ƠN
Tôi xin trân trọng cảm ơn toàn thể các thầy cô trong Khoa Quốc tế và Đào tạo Sau Đại học – Khoa Công nghệ thông tin – Học viện Công nghệ Bưu chính Viễn thông đã tạo điều kiện cho tôi có một môi trường học tập tốt đồng thời truyền đạt cho tôi một vốn kiến thức quý báu một tư duy khoa học để phục vụ cho quá trình học tập và công tác của tôi
Tôi xin gửi lời cảm ơn đến các bạn trong lớp Cao học Hệ thống thông tin M17CQIS01-B khóa 2017- 2019 đã giúp đỡ tôi trong suốt thời gian học tập vừa qua Đặc biệt, tôi xin được bày tỏ lòng biết ơn sâu sắc đến PGS.TS HÀ HẢI NAM
đã tận tình chỉ bảo cho tôi trong suốt quá trình học tập và nghiên cứu, giúp tôi có nhận thức đúng đắn về kiến thức khoa học, tác phong học tập và làm việc
Tôi cũng xin được gửi lời cảm ơn tới gia đình, đồng nghiệp, người thân đã động viên, giúp đỡ tôi trong quá trình hoàn thành luận văn
Cuối cùng tôi xin kính chúc các thầy cô và toàn thể các bạn học viên trường Học viện Công nghệ Bưu chính Viễn thông một sức khỏe dồi dào, đạt được những thành công trên con đường học tập và nghiên cứu khoa học Chúc trường ta sẽ sớm trở thành ngọn cờ đầu của giáo dục nước nhà và Quốc tế
Xin trân trọng cảm ơn!
Hà Nội, ngày tháng năm 2018
Tác giả luận văn
Phạm Xuân Lộc
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH SÁCH BẢNG vii
DANH SÁCH HÌNH VẼ viii
MỞ ĐẦU 1
CHƯƠNG 1: GIỚI THIỆU VỀ BIG DATA VÀ GIẢI PHÁP CLOUDERA ÁP DỤNG XÂY DỰNG BIG DATA 3
Tóm tắt chương 3
1.1 Định nghĩa “Hệ thống Big Data” 3
1.2 Xu hướng phát triển của công nghệ Big Data 6
1.2.1 Tình hình phát triển và nhu cầu sử dụng công nghệ Big Data trong tương lai 6
1.2.2 So sánh, đánh giá các giải pháp mã nguồn mở áp dụng cho Big Data 9
1.3 Giới thiệu về Cloudera 11
1.4 Kiến trúc các thành phần mã nguồn mở trên nền tảng Cloudera 16
1.4.1 Hadoop 18
1.4.2 Hệ quản trị CSDL: HBase 27
1.4.3 Học máy Apache Mahout 28
1.4.4 Tính toán trong bộ nhớ, streaming: Apache Spark 29
1.4.5 Truy vấn song song như: Apache Impala 30
1.4.6 Một số Apache dùng để tổ chức lưu trữ, truy vấn dữ liệu trong Hadoop 31 1.5 Một số case study điển hình đã triển khai thành công Cloudera 32
CHƯƠNG 2: TRIỂN KHAI XÂY DỰNG HỆ THỐNG CLOUDERA PHỤC VỤ XÂY DỰNG BIG DATA TẠI MOBIFONE 34
Tóm tắt chương 34
2.1 Hiện trạng triển khai áp dụng công nghệ Big Data tại MobiFone 34
Trang 62.1.1 Hiện trạng tài nguyên máy chủ lưu trữ dữ liệu Big Data 34
2.1.2 Hiện trạng công nghệ phân tích dữ liệu cho Big Data tại MobiFone 35
2.2 Nhu cầu áp dụng công nghệ mã nguồn mở cho Big Data tại MobiFone 37
2.3 Thiết kế hệ thống Cloudera phục vụ xây dựng BIG DATA tại MobiFone 38
2.3.1 Bài toán triển khai 38
2.3.2 Mô hình triển khai 40
2.4 Triển khai cài đặt, cấu hình hệ thống 42
2.4.1 Cài đặt JDK 43
2.4.2 Cài đặt Database 43
2.4.3 Cài đặt Cloudera Manager Server 44
2.4.4 Cài đặt Cloudera Manager Agent 44
2.4.5 Cài đặt CDH và Manager Service Software 46
2.4.6 Khởi tạo, cấu hình và khởi động CDH và Managed Services 48
CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC KHI XÂY DỰNG HỆ THỐNG CLOUDERA TẠI MOBIFONE 49
Tóm tắt chương 49
3.1 Kết quả xây dựng hệ thống Cloudera tại MobiFone 49
3.1.1 Quản lý các thành phần trên hệ thống bằng giao diện Cloudera 49
3.1.2 Áp dụng Spark để giải quyết bài toán phân khúc thuê bao 52
3.2 Kinh nghiệm cài đặt, triển khai hệ thống Cloudera 57
3.2.1 Một số tồn tại, khó khăn khi triển khai 57
3.2.2 Các giải pháp khắc phục 58
KẾT LUẬN 59
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 60
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Chữ viết tắt Tiếng Anh Tiếng Việt
API Application Programming
Interface Giao diện lập trình ứng dụng
FIFO first-in, first-out vào trước-ra trước
HDFS Hadoop Distributed File
System Hệ thống lưu trữ file của Hadoop
IoT Internet of Things Mạng lưới vạn vật kết nối
Internet LZO Lempel–Ziv–Oberhumer Thuật toán nén dữ liệu
NFC Near-Field
Communications Công nghệ giao tiếp tầm ngắn
ODBC Open Database
Connectivity
một phương pháp truy xuất cơ sở
dữ liệu chuẩn
OS Operating system Hệ điều hành
OTT Over The Top
Giải pháp cung cấp nội dung cho người sử dụng dựa trên nền tảng Internet
REST Representational State
Transfer
Một bộ quy tắc để tạo ra một ứng dụng Web Service
RFID Radio Frequency
Identification
Nhận dạng bằng tần số của sóng
vô tuyến SMS Short Message Services Dịch vụ tin nhắn ngắn
Trang 8SPSS Statistical Package for the
Social Sciences
Một phần mềm máy tính phục vụ công tác phân tích thống kê
Trang 9DANH SÁCH BẢNG
Bảng 1.1: So sánh cloudera Xpress và Enterprise 16Bảng 3.1: Bảng so sánh các thành phần giải pháp Cloudera và giải pháp IBM 57
Trang 10DANH SÁCH HÌNH VẼ
Hình 1.1: Các loại dữ liệu phổ biến người dùng hiện nay 4
Hình 1.2: Luồng xử lý dữ liệu lớn 6
Hình 1.3: Mô hình đoán áp dụng Big Data của google về dịch cúm 2009 8
Hình 1.4: Tổng quan các thành phần trong cloudera 17
Hình 1.5: Kiến trúc của HDFS 19
Hình 1.6: Luồng đọc dữ liệu trong HDFS 20
Hình 1.7: Luồng ghi dữ liệu trong HDFS 21
Hình 1.8: Kiến trúc MapReduce 23
Hình 1.9: Cơ chế hoạt động của MapReduce 24
Hình 1.10: Giao tiếp JobTracker và TaskTracker 25
Hình 1.11: Quá trình thực hiện maptask 26
Hình 1.12: Quá trình reduce task 27
Hình 1.13: Cách đọc ghi trên map-reduce 30
Hình 1.14: Cách đọc ghi trên spark 30
Hình 1.15: Mô hình kiến trúc tính toán song song impala 31
Hình 2.1 : Kiến trúc triển khai tổng thể 36
Hình 2.2: Mô hình phân khúc khách hàng trả trước của PWC 39
Hình 2.3: Mô hình logic triển khai Cloudera 41
Hình 2.4: Cài đặt cloudera Manager agent 45
Hình 2.5: Cài đặt cloudera theo cụm host từ giao diện 45
Hình 2.6: Cài đặt các gói apache từ giao diện cloudera 46
Hình 2.7: Kết quả cài đặt các apache trên cloudera home 47
Hình 2.8: Khởi tạo cấu hình và khởi động CDH 48
Hình 3.1: Giám sát trạng thái mỗi server trong cụm từ cloudera manager 50
Hình 3.2: Giám sát tổng quan toàn bộ các cụm server từ cloudera manager 51
Hình 3.3: Các tham số cấu hình từ giao diện cloudera manager 51
Hình 3.4: Kiểm tra log hệ thống cloudera 52
Hình 3.5: Quy trình xử lý dữ liệu bài toán phân khúc thuê bao 52
Trang 11Hình 3.6: Kiểm tra dữ liệu nạp vào hadoop 53
Hình 3.7: Cách thực hiện coding bài toán phân khúc dùng spark trong cloudera 54
Hình 3.8: Kết quả phân khúc dùng Mllib, spark trong cloudera 54
Hình 3.9: Kết quả phân khúc theo biểu đồ 1 55
Hình 3.10: Kết quả phân khúc theo biểu đồ 2 55
Hình 3.11: Kết quả phân khúc theo biểu đồ 3 56
Hình 3.12: Kết quả phân khúc theo biểu đồ 4 56
Trang 12MỞ ĐẦU
1 Tính cấp thiết của đề tài
Thị trường viễn thông di động tại Việt Nam đang dần trở nên bão hòa, doanh thu từ thoại và SMS từng bước giảm, sự bùng nổ của các sản phẩm OTT, các mạng
xã hội,… cùng với hạ tầng Internet phát triển, xu hướng công nghệ IoT, Big Data bùng nổ, mạng WIFI khá phổ biến và cung cấp miễn phí tại nhiều nơi tại Việt Nam đang thực sự là những thách thức không nhỏ đối với các nhà mạng viễn thông.Việc kinh doanh các dịch vụ truyền thống thoại, sms, data… mà không có tác động phân tích, tìm hiểu hành vi khách hàng, hiểu rõ nhu cầu thực sự của khách hàng ngày càng trở nên khó khăn
Đứng trước những thách thức và nguy cơ ở trên, MobiFone cần phải có tầm nhìn, tư duy và chiến thuật mới để sẵn sàng thích ứng với sự thay đổi, thích ứng với
sự cạnh tranh ngày càng quyết liệt từ các đối thủ
Đề tài nghiên cứu hy vọng với giải pháp mã nguồn mở Cloudera đã được nghiên cứu sẽ được triển khai rộng rãi, góp phần vào việc bổ sung hạ tầng lưu trữ
dữ liệu an toàn, lâu dài, tiết kiệm chi phí cho hệ thống Big Data, cũng như nắm bắt thêm các kỹ thuật, các công cụ mã nguồn mở để áp dụng, kế thừa sản phẩm từ cộng đồng thế giới vào hệ thống Big Data hiện tại…góp phần phát triển cộng nghệ Big Data trong MobiFone
2 Tổng quan về vấn đề nghiên cứu
Khảo sát và đánh giá nhu cầu triển khai Big Data ứng dụng các công nghệ
mã nguồn mở
Nghiên cứu và triển khai Big Data tại MobiFone ứng dụng Cloudera
Xây dựng và triển khai các bài toán phân tích dữ liệu dựa trên nền tảng hạ tầng Big Data ứng dụng Cloudera
Đánh giá kết quả đạt được và hướng phát triển tiếp theo
Trang 133 Mục đích nghiên cứu
Nghiên cứu tìm hiểu công nghệ mã nguồn mở Cloudera phục vụ triển khai Big Data
Xây dựng hệ thống Big Data dựa trên nền tảng Cloudera tại MobiFone
Cài đặt, phân tích và triển khai các chương trình khuyến mại và sản xuât kinh doanh tại MobiFone
4 Đối tượng và phạm vi nghiên cứu
Các sản phẩm mã nguồn mở hiện có trên thị trường về Big Data
Nghiên cứu chuyên sâu giải pháp Cloudera áp dụng xây dựng Big Data tại MobiFone
5 Phương pháp nghiên cứu
Phương pháp nghiên cứu là nghiên cứu lý thuyết kết hợp với thực nghiệm và phân tích, đánh giá kết quả
Trang 14CHƯƠNG 1: GIỚI THIỆU VỀ BIG DATA VÀ GIẢI PHÁP
CLOUDERA ÁP DỤNG XÂY DỰNG BIG DATA
Tóm tắt chương
Nội dung chương 1 giới thiệu định nghĩa về Big Data, xu hướng phát triển và nhu cầu sử dụng công nghệ Big Data, đồng thời giới thiệu nền tảng Cloudera trong việc triển khai Big Data đang phổ biến trên thế giới Tóm tắt lịch sử hình thành sản phẩm Cloudera cũng như đi sâu vào tìm hiểu kiến trúc của Cloudeara và chi tiết các thành phần Cuối cùng, giới thiệu những case study cụ thể đã triển khai áp dụng cloudera trong việc triển khai Big Data thành công tại Việt Nam và trên thế giới
1.1 Định nghĩa “Hệ thống Big Data”
Ngày nay, sự phát triển không ngừng của khoa học kỹ thuật, tiêu biểu như sự
ra đời của Internet và các thiết bị điện thoại, máy tính cá nhân, đã mang lại những đổi thay lớn lao trên mọi lĩnh vực đời sống Trong kỷ nguyên của IoT2 (internet of things 2) với việc ứng dụng và tích hợp sâu rộng các thiết bị di động như điện thoại
di động, ô tô, và máy móc công nghiệp góp phần vào việc tạo và chuyển dữ liệu, dẫn đến sự bùng nổ của dữ liệu có thể thu thập được Trong dòng thác dữ liệu liên tục được tạo ra từng giây, thuật ngữ Big Data (Dữ liệu lớn) được sử dụng để chỉ những bộ dữ liệu khổng lồ, chủ yếu không có cấu trúc, được thu thập từ nhiều nguồn khác nhau Tuy nhiên, Big Data lại chứa trong mình rất nhiều thông tin quý giá mà nếu trích xuất thành công, nó sẽ giúp rất nhiều cho việc kinh doanh, nghiên cứu khoa học, dự đoán các dịch bệnh sắp phát sinh và thậm chí là cả việc xác định điều kiện giao thông theo thời gian thực Trong công tác nghiên cứu khoa học, Big Data đang mang lại các nhà nghiên cứu cơ hội tiếp cận và giải quyết rất nhiều vấn
đề hóc búa mà trước đây không thể hoặc rất khó thực hiện
Big Data là thuật ngữ dùng để chỉ một tập hợp dữ liệu rất lớn và rất phức tạp đến nỗi những công cụ, ứng dụng xử lí dữ liệu truyền thống không thể nào đảm
Trang 15đương được Tuy nhiên, Big Data lại chứa trong mình rất nhiều thông tin quý giá
mà nếu trích xuất thành công, nó sẽ giúp rất nhiều cho việc kinh doanh, nghiên cứu khoa học, dự đoán các vấn đề, tình huống sẽ xảy ra Những dữ liệu này phải được thu thập, tổ chức, lưu trữ, tìm kiếm, chia sẻ theo một cách khác so với bình thường
do các hệ cơ sở dữ liệu lưu trữ truyền thống không đáp ứng được
Hình ảnh mô tả các loại dữ liệu phổ biến người dùng hiện nay
Hình 1.1: Các loại dữ liệu phổ biến người dùng hiện nay
Kích cỡ của Big Data đang từng ngày tăng lên, và tính đến năm 2015 thì nó
có thể nằm trong khoảng vài chục terabyte cho đến nhiều petabyte (1 petabyte =
1024 terabyte) chỉ cho một tập hợp dữ liệu nghiệp vụ nào đó mà thôi
Về khái niệm Big Data có thể được định nghĩa phổ biến như sau:
Big Data được hiểu là “Dữ liệu lớn” – là tập hợp dữ liệu có dung lượng của tất cả các lĩnh vực của đời sống xã hội; chúng vượt mức đảm đương của những ứng dụng và công cụ truyền thống trong việc thu thập, hiển thị, phân phối, quản lý
và xử lý Tương lai xa dữ liệu Big Data là không thể đếm được
Big Data được tạo ra từ nhiều nguồn dữ liệu như mạng xã hội; các dịch vụ ngân hàng, tài chính, viễn thông; các dịch vụ thương mại điện tử; internet … Big Data ra đời dựa trên yêu cầu tất yếu của quá trình phát triển dữ liệu số trên phạm vi
Trang 16toàn cầu; hầu hết các doanh nghiệp đầu tầu trong lĩnh vực công nghệ như: Microsoft, SAP, EMC, HP, Software AG, Oracle, IBM, Ebay, Amazon.com, Facebook… đều phải quản lý Big Data của mình sở hữu
Hàng ngày trang thương mại điện tử Amazon phải xử lý hàng triệu đơn hàng cùng với hàng trăm nghìn giao dịch phát sinh khác của hệ thống đối tác Để có thể
“chịu” được khối lượng data siêu khủng mà mình phải xử lý hãng đã huy động ba
cơ sở dữ liệu Linux lớn với dung lượng của mỗi cơ sở lần lượt là 7,8TB, 18,5TB và 24,7TB eBay cần hai trung tâm dữ liệu với dung lượng 40 petabyte để vận hành dữ liệu; 50 tỉ bức ảnh cùng hàng triệu video, dòng trạng thái mà người dùng upload cũng là một con số không nhỏ mà Facebook phải quản lý; Youtube và Google thì phải lưu lại hết các lượt truy vấn cùng vô số thông tin khác Với số lượng như vậy quá trình Khai phá dữ liệu (Data Mining) cũng sẽ gặp những khó khăn nhất định
Theo các chuyên gia, nhà chiến lược, tính tới thời điểm năm 2010 tổng giá trị của ngành công nghiệp Big Data đạt hơn 100 tỉ đô la và tăng 10% mỗi năm, nhanh gấp đôi so với tổng ngành công nghiệp phần mềm Điều đó cho thấy Big Data chính
là thách thức cũng như cơ hội lớn của nhiều doanh nghiệp
Theo tài liệu của Intel vào tháng 9/2013, hiện nay thế giới đang tạo ra 1 petabyte dữ liệu trong mỗi 11 giây và nó tương đương với một đoạn video HD dài
13 năm Bản thân các công ty, doanh nghiệp cũng đang sở hữu Big Data của riêng mình, chẳng hạn như trang bán hàng trực tuyến eBay thì sử dụng hai trung tâm dữ liệu với dung lượng lên đến 40 petabyte để chứa những truy vấn, tìm kiếm, đề xuất cho khách hàng cũng như thông tin về hàng hóa của mình
Còn theo tập đoàn SAS, chúng ta có một vài số liệu thú vị về Big Data như sau:
Các hệ thống RFID (một dạng kết nối tầm gần, như kiểu NFC nhưng có tầm hoạt động xa hơn và cũng là thứ dùng trong thẻ mở cửa khách sạn) tạo ra lượng dữ liệu lớn hơn 1.000 lần so với mã vạch truyền thống
Trang 17 Chỉ trong vòng 4 giờ của ngày “Black Friday” năm 2012, cửa hàng Walmart
đã phải xử lí hơn 10 triệu giao dịch tiền mặt, tức là khoảng 5.000 giao dịch mỗi giây
Dịch vụ chuyển phát UPS nhận khoảng 39,5 triệu yêu cầu từ khách hàng của mình mỗi ngày
Dịch vụ thẻ VISA xử lí hơn 172.800.000 giao dịch thẻ chỉ trong vòng một ngày mà thôi
Trên Twitter có 500 triệu dòng tweet mới mỗi ngày, Facebook thì có 1,15 tỉ thành viên tạo ra một mớ khổng lồ dữ liệu văn bản, tập tin, video…
Hình 1.2: Luồng xử lý dữ liệu lớn
(Nguồn : https://thegrid.ai/big-data-analytics/)
Big Data là thách thức đặt ra cho các tổ chức, doanh nghiệp trong thời đại số hiện nay Một khi làm chủ được dữ liệu lớn thì họ sẽ có cơ hội thành công lớn hơn trong bối cảnh cạnh tranh ngày nay, thế giới thì sẽ được hưởng lợi hơn từ việc trích xuất thông tin một cách chính xác hơn, hữu ích hơn với chi phí thấp hơn
1.2 Xu hướng phát triển của công nghệ Big Data
1.2.1 Tình hình phát triển và nhu cầu sử dụng công nghệ Big Data trong
tương lai
Tập đoàn SAS nói vấn đề thật sự không nằm ở việc bạn thu thập dữ liệu, thay vào đó, là bạn dùng Big Data để làm gì Nhìn chung, có bốn lợi ích mà Big
Trang 18Data có thể mang lại: Cắt giảm chi phí, giảm thời gian, tăng thời gian phát triển và tối ưu hóa sản phẩm, đồng thời hỗ trợ con người đưa ra những quyết định đúng và hợp lý hơn
Nếu để ý một chút, mọi người sẽ thấy khi mua sắm online trên eBay, Amazon hoặc những trang tương tự, trang này cũng sẽ đưa ra những sản phẩm gợi ý tiếp theo, ví dụ khi xem điện thoại, nó sẽ gợi ý cho bạn mua thêm ốp lưng, pin dự phòng; hoặc khi mua áo thun thì sẽ có thêm gợi ý quần jean, dây nịt Do đó, nghiên cứu được sở thích, thói quen của khách hàng cũng gián tiếp giúp doanh nghiệp bán được nhiều hàng hóa hơn
Vậy những thông tin về thói quen, sở thích này có được từ đâu? Chính là từ lượng dữ liệu khổng lồ mà các doanh nghiệp thu thập trong lúc khách hàng ghé thăm và tương tác với trang web của mình Chỉ cần doanh nghiệp biết khai thác một cách có hiệu quả Big Data thì nó không chỉ giúp tăng lợi nhuận cho chính họ mà còn tăng trải nghiệm mua sắm của người dùng, chúng ta có thể tiết kiệm thời gian hơn nhờ những lời gợi ý so với việc phải tự mình tìm kiếm và như vậy chính các Doanh nghiệm và người dùng cuối là khách hàng cũng sẽ được hưởng lợi cũng từ việc tối ưu hóa như thế,
Xa hơn một chút, ứng dụng được Big Data có thể giúp các tổ chức, chính phủ dự đoán được tỉ lệ thất nghiệp, xu hướng nghề nghiệp của tương lai để đầu tư cho những hạng mục đó, hoặc cắt giảm chi tiêu, kích thích tăng trưởng kinh tế, v/v thậm chí là ra phương án phòng ngừa trước một dịch bệnh nào đó, giống như trong phim World War Z, nước Israel đã biết trước có dịch zombie nên đã nhanh chóng xây tường thành ngăn cách với thế giới bên ngoài
Mà cũng không cần nói đến tương lai phim ảnh gì cả, vào năm 2009, Google
đã sử dụng dữ liệu Big Data của mình để phân tích và dự đoán xu hướng ảnh hưởng, lan truyền của dịch cúm H1N1 đấy thôi Dịch vụ này có tên là Google Flu Trends Xu hướng mà Google rút ra từ những từ khóa tìm kiếm liên quan đến dịch H1N1 đã được chứng minh là rất sát với kết quả do hai hệ thống cảnh báo cúm độc lập Sentinel GP và HealthStat đưa ra Dữ liệu của Flu Trends được cập nhật gần
Trang 19như theo thời gian thực và sau đó sẽ được đối chiếu với số liệu từ những trung tâm dịch bệnh ở nhiều nơi trên thế giới
Hình 1.3: Mô hình đoán áp dụng Big Data của google về dịch cúm 2009
(Nguồn:
https://www.linkedin.com/pulse/big-data-là-gì-và-người-ta-khai-thác-ứng-dụng-nó-vào-cuộc-nguyen ) Đường màu xanh là dự đoán của Google Flu Trends dựa trên số từ khóa tìm kiếm liên quan đến các dịch cúm, màu vàng là dữ liệu do cơ quan phòng chống dịch của Mỹ đưa ra
Còn theo Oracle, việc phân tích Big Data và những dữ liệu dung lượng lớn
đã giúp các tổ chức kiếm được 10,66$ cho mỗi 1$ chi phí phân tích, tức là gấp 10 lần! Một trường học ở một quận lớn tại Mỹ cũng có được sự tăng trưởng doanh thulà 8 triệu USD mỗi năm, còn một công ty tài chính ẩn danh khác thì tăng 1000% lợi nhuận trên tổng số tiền đầu tư của mình trong vòng 3 năm
Trong tương lai, chúng ta sẽ còn tiếp tục chứng kiến sự tăng trưởng của Big Data Hiện nay có thể bạn cũng đã nghe đến khái niệm Internet of Things, tức là mang Internet đến với mọi thứ trong đời sống hằng ngày Dữ liệu từ Internet of Things thực chất cũng là được thu thập từ một mạng lưới rất nhiều các cảm biến và thiết bị điện tử, và nó cũng là một trong những nguồn của Big Data Lượng dữ liệu khổng lồ này có thể cho các nhà nghiên cứu biết được hành vi tiêu dùng của khách hàng, từ đó tinh chỉnh những thiết bị Internet of Things cho phù hợp hơn, bắt chúng phục vụ đời sống hằng ngày của chúng ta một cách hiệu quả hơn Nó cũng có thể được dùng cho việc sản xuất, từ đó giảm sự liên quan của con người Như lời của Daniel Kaufman dự đoán thì “con người sẽ làm ít hơn” nhờ Big Data
Trang 201.2.2 So sánh, đánh giá các giải pháp mã nguồn mở áp dụng cho Big Data
Cloudera, một công ty cung cấp hỗ trợ, tư vấn và các công cụ quản lý cho Hadoop, hiện đã có kênh phân phối phần mềm được gọi là Cloudera’s Distribution bao gồm cả Apache Hadoop (CDH) CDH là một phần mềm mã nguồn mở, được cung cấp sẵn theo quy ước Apache Software License và miễn phí cho sử dụng cá nhân và thương mại Cũng như nhiều mã nguồn mở của các công ty phần mềm khác, Cloudera bắt đầu với một phiên bản Apache Hadoop chính thức phát hành, được sửa lỗi quan trọng, cung cấp thành các gói cho một số hoạt động khác nhau hệ thống Hạ tầng Cloudera bao gồm các thành phần Apache Hadoop và đảm bảo khả năng tương thích giữa các thành phần CDH hiện tại bao gồm Apache Hadoop, Apache HBase, Apache Hive, Apache Pig, Apache Sqoop, Apache Flume, Apache Zookeeper, Apache Oozie, Apache Mahout và Hue
Trên thế giới hiện nay cũng có có một số sản phẩm khác cạnh tranh trong việc lưu trữ, xử lý dữ liệu lớn như IBM InfoSphere BigInsights, Hortonworks và MapR Cloudera là sản phẩm có đầu tiên kể từ khi xuất hiện giải pháp lưu trữ dữ liệu Hadoop Hortonworks đến sau này Trong khi Cloudera và Hortonworks là 100% mã nguồn mở, thì hầu hết các phiên bản của MapR đi kèm với module độc quyền Đối ngược với sản phẩm mã nguồn mở thì IBM InfoSphere BigInsights là một nền tảng phần mềm dịch vụ được thiết kế để giúp các doanh nghiệp phát hiện
và phân tích những hiểu biết kinh doanh ẩn trong khối lượng lớn dữ liệu Sản phẩm IBM InfoSphere BigInsights kết hợp một số dự án mã nguồn mở (bao gồm Apache Hadoop) và một số công nghệ của IBM phát triển Mỗi nhà cung cấp, phân phối có sức mạnh độc đáo và những điểm yếu riêng trong từng sản phẩm của mình
Cloudera Inc được thành lập bởi những thiên tài dữ liệu lớn từ Facebook, Google, Oracle và Yahoo trong năm 2008 Đây là công ty đầu tiên phát triển và phân phối phần mềm Apache Hadoop và có số lượng người dùng lớn nhất với hầu hết khách hàng Mặc dù cốt lõi của phân phối dựa trên Apache Hadoop, nó cũng cung cấp một công cụ quản lý Cloudera Suite độc quyền để tự động hóa quá trình
Trang 21cài đặt và cung cấp dịch vụ khác để nâng cao sự tiện lợi của người sử dụng trong đó bao gồm việc giảm thời gian triển khai và đơn giản quá trình vận hành, sử dụng
Hortonworks, được thành lập vào năm 2011, đã nhanh chóng nổi lên như một trong những nhà cung cấp hàng đầu của Hadoop Việc phân phối cung cấp nền tảng mã nguồn mở dựa trên Apache Hadoop cho việc phân tích, lưu trữ và quản lý
dữ liệu lớn Hortonworks là nhà cung cấp thương mại duy nhất để phân phối hoàn toàn mã nguồn mở Apache Hadoop mà không cần phần mềm độc quyền bổ sung Sản phẩm Hortonworks Distribution HDP2.0 có thể được tải về trực tiếp từ trang web của họ miễn phí và rất dễ dàng để cài đặt
MapR là một tiêu chuẩn phiên bản mã nguồn mở, phần mềm Apache Hadoop
đi kèm với một số hạn chế và được khắc phục qua các vấn đề trong bản tiêu chuẩn qua các module độc quyền có phí
Trong việc xây dựng hệ thống Big Data, 2 sản phẩm Cloudera và Hortonworks được biết đến nhiều nhất với giấy phép 100% mã nguồn mở và có nhiều tính năng mạnh mẽ trong việc lưu trữ dữ liệu lớn, quản là tìm kiếm dữ liệu theo kỹ thuật Hadoop
Cloudera cũng như Hortonworks đều được xây dựng trên cùng một lõi của Apache Hadoop Như vậy, họ có điểm tương đồng nhiều hơn sự khác biệt
Cả hai đều cung cấp và phân phối sản phẩm Hadoop ở cấp độ doanh nghiệp (enterprise-ready Hadoop) Các bản phân phối đã được trải nghiệm qua thời gian của người tiêu dùng, bảo đảm tính an ninh và ổn định Bên cạnh đó, họ cung cấp dưới hình thức đào tạocó trả tiền và dịch vụ cho những người mới bước theo con đường của Big Data và Analytics
Cả hai hãng đã thành lập và xây dựng những cộng đồng để giúp đỡ các vấn đề gặp phải và những ví dụ mình hoạ khi xây dựng Big Data với các sản phẩm mã nguồn mở của hãng
Cả hai hãng đều sử dụng kiến trúc master-slave và tính toán trên những hạ tầng máy tính không chia sẻ
Trang 22 Quan trọng hơn cả là cả hai đều hỗ trợ phương thức MapReduce cũng như YARN trong cách lưu trữ dữ liệu
Về ưu điểm và sự khác biệt thì Cloudera có ưu thế hơn so với các sản phẩm khác bởi các lý do như sau:
Cloudera là sản phẩm đầu tiên xây dựng dựa trên nền tảng Apache Hadoop và hiện tại có số lượng người dùng lớn nhất với hầu hết khách hàng
Cloudera có một phần mềm quản lý độc quyền Cloudera Manager, hỗ trợ truy vấn dạng SQL xử lý truy vấn giao diện Impala, cũng như Cloudera Search
dễ dàng và truy cập dữ liệu
Cloudera đã có tên tuổi nhất trên thị trường, với hơn 350 khách hàng
và có một số phần mềm doanh nghiệp phủ lên trên các bản phân phối mã nguồn mở của mình để hỗ trợ người tiêu dùng
Có nhiều công cụ mạnh mẽ trong việc lưu trữ các loại dữ liệu như xử
lý batch job, ngôn ngữ phân tích truy vấn dữ liệu SQL, kỹ năng tìm kiếm NoSQL,
xử lý stream…Giải pháp nền tảng mã nguồn mở CDH được đánh giá cao trong việc lưu trữ, xử lý dữ liệu lớn và điển hình có sản phẩm Oracle Big Data Appliance (BDA) sử dụng toàn bộ giải pháp nền tảng CDH tích hợp trọn gói trong việc lưu trữ
xử lý dữ liệu
1.3 Giới thiệu về Cloudera
Cloudera là một Platform mã nguồn mở nhằm giúp cho các công ty xây dựng
hệ thống Big Data một cách linh hoạt, dễ dàng tích hợp các thành phần mã nguồn
mở, quản lý khối lượng và đa dạng dữ liệu nhanh chóng gia tăng trong doanh nghiệp Các sản phẩm và giải pháp của Cloudera cho phép chúng ta có thể triển khai, quản lý Apache Hadoop và các Apaches mã nguồn mở khác nhằm giúp thao tác truy vấn, phân tích dữ liệu, và giữ cho dữ liệu luôn luôn được an toàn và được bảo vệ
Cloudera cung cấp những sản phẩm và công cụ sau:
CDH (Cloudera Distribution Of Apache Hadoop): Là một phân bố của Apache Hadoop và các apaches mã nguồn mở liên quan bao gồm Cloudera
Trang 23Impala và Cloudera Search CDH còn cung cấp bảo mật và tích hợp với rất nhiều giải pháp phần cứng và phần mềm khác Hiện phiên bản mới nhất của CDH là 5
Cloudera Impala: Là một SQL engine phục vụ các xử lý song song với lượng dữ liệu lớn nhằm phân tích trong Big Data Việc tối ưu hóa kiến trúc trong Cloudera Impala giúp cho lý tưởng, phù hợp với các truy vấn truyền thống bằng cách phân nhỏ thành các truy vấn con Cloudera Impla có thể truy vấn các file
dữ liệu từ dữ liệu Hadoop từ nhiều nguồn khác nhau: như kết quả từ MapReduce hoặc kết quả từ các bảng cơ sở dữ liệu Hive Chúng ta có thể quản lý Impala cùng các thành phần khác của Hadoop thông qua giao diện của Cloudera Manager
Cloudera Search-Cung cấp truy vấn gần thời gian thực đến dữ liệu được lưu trữ xong hoặc đang được nạp vào Hadoop và HBase Cloudera Search cung cấp gần thời gian thực việc lập chỉ mục, lập chỉ mục hàng loạt, truy vấn toàn văn bản, thực hiện một cách đơn giản, giao diện văn bản đầy đủ mà không đòi hỏi
kỹ năng SQL hoặc lập trình Cloudera Search được tích hợp đầy đủ trong nền tảng
xử lý dữ liệu, tìm kiếm sử dụng hệ thống lưu trữ linh hoạt, khả năng mở rộng, và mạnh mẽ bao gồm với CDH Điều này giúp loại bỏ sự cần thiết phải di chuyển các tập dữ liệu lớn trên cơ sở hạ tầng để thực hiện nhiệm vụ phân tích kinh doanh
Cloudera Manager-Một ứng dụng tinh vi dùng để triển khai, quản lý, giám sát và chẩn đoán các vấn đề với các triển khai CDH Cloudera Manager cung cấp giao diện đồ họa Admin Console, một giao diện người dùng dựa trên web mà làm cho chính quyền của dữ liệu doanh nghiệp của bạn đơn giản và dễ hiểu Nó cũng bao gồm các API quản lý Cloudera, mà bạn có thể sử dụng để có được thông tin sức khỏe cụm và số liệu, cũng như cấu hình Cloudera Manager
Cloudera Navigator-Một công cụ quản lý dữ liệu end-to-end cho nền tảng CDH Cloudera Navigator cho phép quản trị, quản lý dữ liệu, và các nhà phân tích để khám phá những lượng lớn dữ liệu trong Hadoop Việc kiểm tra dữ liệu mạnh mẽ, quản lý dữ liệu, và quản lý vòng đời dữ liệu trong Cloudera Navigator cho phép các doanh nghiệp tuân thủ nghiêm ngặt và yêu cầu quy định trong việc phân bố dữ liệu vào hệ thống Cloudera
Trang 24Cloudera có nhiều phiên bản, trong đó phiên bản miễn phí CDH cung cấp đầy đủ tính năng và các mã nguồn mở được tích hợp vào nhằm phục vụ cho một công ty khởi đầu có thể dễ dàng xây dựng nền tảng Big Data Ngoài phiên bản miễn phí, một phiên bản có hỗ trợ support từ các chuyên gia của cloudera , thêm các tính năng mạnh mẽ hơn và phải trả phí là Cloudera Enterpise
Bảng sau so sánh giữa phiên bản CDH phiên bản Express và phiên bản Enterpise
Express
Cloudera Enterprise Cluster Management
Việc kiểm tra để xác định tính sẵn sàng của Host có có
Trang 25Xoay vòng nâng cấp CDH có Service and Configuration Management
Quản trị các dịch vụ: Accumulo, Flume, HBase,
HDFS, Hive, Hue, Impala, Isilon, Kafka, Kudu,
MapReduce, Oozie, Sentry, Solr, Spark, Sqoop,
YARN, and ZooKeeper
Quản lý tài nguyên: CDH 5 - HDFS, Hive Metastore,
Hue, Impala Llama ApplicationMaster, MapReduce
JobTracker, Oozie, YARN
Workflows (add, start, stop, restart, delete, and
decommission services, hosts, and role instances) có có
Trang 26Khôi phục cấu hình dùng API có
Mã hóa giữa Server và host Agents (TLS) có có
Monitoring and Diagnostics
Quản lý Service, host và các hoạt động có có Chủ động kiểm tra trạng thái hệ thống có có
Giám sát các MapReduce jobs, YARN
Giám sát hiệu suất hoạt động của Map-Reduce có có
Alert Management
Trang 27Người dùng định nghĩa các trigger có có
Tạo các script alert theo nhu cầu người dùng có
Advanced Management Features
Các báo cáo về truy cập file, tìm kiếm, cấp phát hạn
Báo cáo tình trạng sử dụng HBase, MapReduce,
Cloudera Navigator Data Management
1.4 Kiến trúc các thành phần mã nguồn mở trên nền tảng Cloudera
Trong phần tiếp theo chúng ta sẽ đi sâu vào tìm hiểu kiến trúc các thành phần của Platform Cloudera Như đã trình bày ở trên, Cloudera bao gồm nhiều mã nguồn
mở Apache framework độc lập kết hợp lại với nhau, mỗi Apache phục vụ một vai trò trong hệ thống Big Data
Trang 28Hình 1.4: Tổng quan các thành phần trong cloudera
(Nguồn:
https://www.cloudera.com/documentation/enterprise/5-6-x/topics/cdh_intro.html#xd_583c10bfdbd326ba 5a52cca-1476e7473cd 7f59)
Sơ đồ trên mô tả các kiến trúc các thành phần của ClouderaDistribution for Hadoop (CDH) trong phiên bản mới nhất CDH là một bản mã nguồn mở đầy đủ nhất, được kiểm tra trước và rất phổ biến của dự án Apache Hadoop cùng các thành phần dự án khác liên quan đến Big Data CDH cốt lõi là Hadoop nhằm có khả năng lưu trữ mở rộng và tính toán phân tán, cùng với một giao diện người dùng dựa trên web với việc tích hợp mở rộng với các doanh nghiệp Một số đặc điểm chính của Cloudera như sau:
Tính linh hoạt - Lưu trữ bất kỳ loại dữ liệu và thao tác với hàng loạt các frameworks tính toán khác nhau bao gồm cả xử lý theo lô, tương tác qua SQL, tìm kiếm văn bản miễn phí, Học máy và tính toán thống kê
Hội nhập - Dễ dàng tích hợp đầy đủ trên nền tảng Hadoop, hỗ trợ rất nhiều phần cứng và phần mềm hiện nay
Trang 29 An ninh - Xử lý và kiểm soát dữ liệu nhạy cảm
Khả năng mở rộng - Hỗ trợ rất nhiều ứng dụng và dễ dàng tích hợp nhiều ứng dụng khác cho phù hợp với yêu cầu của bạn
Có thể tóm tắt ngắn gọn về Hadoop như sau:
Là một framework cho phép phát triển các ứng dụng phân tán
Viết bằng Java tuy nhiên hỗ trợ được các ngôn ngữ khác như C++, Python, Perl bằng cơ chế streaming
Là một ứng dụng Linux-based (chỉ chạy trên môi trường Linux) Các thành phần chính của Hadoop:
Hadoop Distributed File System (HDFS) là hệ thống tập tin ảo Có sự khác biệt lớn giữa các hệ thống tập tin trên hệ điều hành và Hadoop, khi tạo thêm tập tin trên HDFS, nó tự động chia thành nhiều khối tập tin nhỏ, các khối nhỏ của tập tin sẽ được nhân rộng và lưu trữ trên nhiều máy chủ khác (thường là 3) để tăng sức chịu lỗi và tính sẵn sàng cao
Hadoop MapReduce: Khi có yêu cầu tính toán, máy chủ thường phân nhỏ công việc ra và tính toán cục bộ trên các máy tính trong cụm hadoop, khi yêu cầu tính toán hoàn tất, kết quả sẽ được tổng kết ở máy chủ và trả ra kết quả
Trang 30Sau đây chúng ta tìm hiểu rõ hơn về hai thành phần chính này trong Hadoop:
Kiến trúc HDFS:
Giống như các hệ thống file khác, HDFS duy trì một cấu trúc cây phân cấp các thư mục và file, trong đó các file sẽ đóng vai trò là các node lá Trong HDFS, mỗi file sẽ được chia ra làm một hay nhiều block và mỗi block này sẽ có một block
ID để nhận diện Các block của cùng một file (trừ block cuối cùng) sẽ có cùng kích thước và kích thước này được gọi là block size của file đó Mỗi block của file sẽ
được lưu trữ thành ra nhiều bản sao (replica) khác nhau vì mục đích an toàn dữ liệu
Hình 1.5: Kiến trúc của HDFS
(Nguồn: https://kipalog.com/posts/Su-khac-nhau-ve-HDFS-va-HDFS2)
HDFS có một kiến trúc master/slave, trên một cluster chạy HDFS có hai loại node là Namenode và Datanode Một cluster có duy nhất một Namenode và có một hay nhiều Datanode Namenode đóng vai trò là master, chịu trách nhiệm duy trì thông tin về cấu trúc cây phân cấp các file, thư mục của hệ thống file và các
Trang 31metadata khác của hệ thống file Cụ thể, các Metadata mà Namenode lưu trữ gồm có:
File System Namespace: là hình ảnh cây thư mục của hệ thống file tại một thời điểm nào đó File System namespace thể hiện tất các các file, thư mục có trên
hệ thống file và quan hệ giữa chúng
Thông tin để ánh xạ từ tên file ra thành danh sách các block: với mỗi file, ta
có một danh sách có thứ tự các block của file đó, mỗi Block đại diện bởi Block ID
Nơi lưu trữ các block: các block được đại diện một Block ID, với mỗi block
ta có một danh sách các DataNode lưu trữ các bản sao của block đó
Luồng đọc file trên HDFS:
Hình 1.6: Luồng đọc dữ liệu trong HDFS
(Nguồn : https://viblo.asia/dovv/posts/1ZnbRlNlG2Xo)
1) Đầu tiên, client sẽ mở file cần đọc bằng cách gửi yêu cầu đọc file đến NameNode (1).Sau đó NameNode sẽ thực hiện một số kiểm tra xem file được yêu cầu đọc có tồn tại không, hoặc file cần đọc có đang ở trạng thái “khoẻ mạnh” hay
Trang 32không Nếu mọi thứ đều ổn, NameNode sẽ gửi danh sách các block (đại diện bởi Block ID) của file cùng với địa chỉ các DataNode chứa các bản sao của block này 2) Tiếp theo, client sẽ mở các kết nối tới Datanode, thực hiện một RPC để yêu cầu nhận block cần đọc và đóng kết nối với DataNode (3) Lưu ý là với mỗi block ta
có thể có nhiều DataNode lưu trữ các bản sao của block đó Client sẽ chỉ đọc bản sao của block từ DataNode “gần” nhất
3) Client sẽ thực hiện việc đọc các block lặp đi lăp lại cho đến khi block cuối cùng của file được đọc xong Quá trình client đọc dữ liệu từ HDFS sẽ transparent với người dùng hoặc chương trình ứng dụng client, người dùng sẽ dùng một tập API của Hadoop để tương tác với HDFS, các API này che giấu đi quá trình liên lạc với NameNode và kết nối các DataNode để nhận dữ liệu
Luồng ghi file trên HDFS:
Hình 1.7: Luồng ghi dữ liệu trong HDFS
(Nguồn : https://viblo.asia/dovv/posts/1ZnbRlNlG2Xo)
1) Đầu tiên, client sẽ gửi yêu cầu đến NameNode tạo một file entry lên File System Namespace (1) File mới được tạo sẽ rỗng, tức chưa có một block nào Sau
Trang 33đó, NameNode sẽ quyết định danh sách các DataNode sẽ chứa các bản sao của file cần gì và gửi lại cho client (2)
2) Tiếp theo, client sẽ chia file cần gì ra thành các block, và với mỗi block client sẽ đóng gói thành một packet Lưu ý là mỗi block sẽ được lưu ra thành nhiều bản sao trên các DataNode khác nhau (tuỳ vào chỉ số độ nhân bản của file)
3) Tiếp nữa, client gửi gói tin cho DataNode thứ nhất, DataNode thứ nhất sau khi nhận được gói tin sẽ tiến hành lưu lại bản sao thứ nhất của block Tiếp theo DataNode thứ nhất sẽ gửi gói tin này cho DataNode thứ hai để lưu ra bản sao thứ hai của block Tương tự DataNode thứ hai sẽ gửi gói tin cho DataNode thứ ba Cứ như vậy, các DataNode cũng lưu các bản sao của một block sẽ hình thành một ống dẫn dữ liệu data pile, gửi lại cho DataNode thứ hai một bản tin xác nhận rằng đã lưu thành công (4) Và Datanode thứ 2 lại gửi bản tin xác nhận tình trạng thành công của hai DataNode về DataNode thứ nhất
4) Client sẽ nhận được các báo cáo xác nhận từ DataNode thứ nhất cho tình trạng thành công của tất cả DataNode trên data pile
5) Nếu có bất kỳ một DataNode nào bị lỗi trong quá trình ghi dữ liệu, client sẽ tiến hành xác nhận lại các DataNode đã lưu thành công bản sao của block và thực hiện một hành vi ghi lại block lên trên DataNode bị lỗi
6) Sau khi tất cả các block của file đều đã đươc ghi lên các DataNode, client sẽ thực hiên một thông điệp báo cho NameNode nhằm cập nhật lại danh sách các block của file vừa tạo Thông tin Mapping từ Block Id sang danh sách các DataNode lưu trữ sẽ được NameNode tự động cập nhật bằng các định kỳ các DataNode sẽ gửi báo cáo cho NameNode danh sách các block mà nó quản lý
Trang 34Kiến trúc MapReduce
Hình 1.8: Kiến trúc MapReduce
(Nguồn : https://viblo.asia/dovv/posts/1ZnbRlNlG2Xo)
Client Program: Chương trình Hadoop-MapReduce mà client đang sử dụng
và tiến hành chạy một MapReduce Job
JobTracker: Tiếp nhận job và đảm nhận vai trò điều phối job này, nó có vai trò như bộ não của Hadoop MapReduce Sau đó, nó chia nhỏ job thành các task,lên lịch phân công các task (map task, reduce task)đến các tasktracker để thực hiện JobTracker cũng có cấu trúc dữ liệu riêng của mình để sử dụng cho mục đích lưu trữ, ví dụ như nó sẽ lưu lại tiến độ tổng thể của từng job, lưu lại trang thái của các TaskTracker để thuận tiện cho thao tác lên lịch phân công task, lưu lại địa chỉ lưu trữ của các output của các TaskTracker thực hiện maptask trả về
TaskTracker:Tiếp nhận các maptask hay reducetask từ JobTracker để sau đó thực hiện, để giữ liên lạc với JobTracker, Hadoop Mapreduce cung cấp cơ chế gửi
"heartbeat" từ TaskTracker đến JobTracker cho các nhu cầu như thông báo tiến độ của task do TaskTracker đó thực hiện, thông báo trạng thái hiện hành của nó (idle, in-progress, completed)
Cơ chế hoạt động của MapReduce
Trang 35Hình 1.9: Cơ chế hoạt động của MapReduce
(Nguồn : https://viblo.asia/dovv/posts/1ZnbRlNlG2Xo)
1) Chương trình client sẽ yêu cầu thực hiện job và kèm theo là dữ liệu input tới JobTracker JobTracker sau khi tiếp nhận job này, nó sẽ thông báo ngược về chương trình client tình trạng tiếp nhận job Khi chương trình client nhận được thông báo nếu tình trạng tiếp nhận hợp lệ thì chương trình client sẽ tiến hành phân rã input này thành các split (khi dùng HDFS thì kích thước một split thường bằng với kích thước của một đơn vị Block trên HDFS) và các split này sẽ được ghi xuống HDFS Sau đó