Mô hình hóa và kiểm chứng hệ thống tệp phân tán hadoop (hdfs) bằng cách sử dụng các tiến trình tuần tự của truyền thông (cps)

68 3 0
Mô hình hóa và kiểm chứng hệ thống tệp phân tán hadoop (hdfs) bằng cách sử dụng các tiến trình tuần tự của truyền thông (cps)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỌ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGUYÊN TẤT THÀNH NGUYEN TAT THANH Lương Trường An MƠ HÌNH HÓA VÀ KIỂM CHỨNG HỆ THỐNG TỆP PHÂN TÁN HADOOP (HDFS) BẰNG CÁCH SỬ DỤNG CÁC TIẾN TRÌNH TUẦN Tự CỦA TRUYỀN THÔNG (CSP) LUẬN VĂN THẠC sĩ CÔNG NGHỆ THƠNG TIN Thành phố Hồ Chí Minh - 2023 Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGƯYÈN TẤT THÀNH NGUYEN TAT THANH Lương Trường An MƠ HÌNH HĨA VÀ KIẾM CHỨNG HỆ THỐNG TỆP PHÂN TÁN HADOOP (HDFS) BẰNG CÁCH SỬ DỤNG CÁC TIẾN TRÌNH TUẦN Tự CỦA TRUYỀN THƠNG (CSP) Chun ngành: Cơng nghệ thơng tin Mã số: 8480201 LUẬN VĂN THẠC sĩ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẦN KHOA HỌC: PGS TS PHAN CÔNG VINH Thành phố Hồ Chí Minh - 2023 i LỜI CAM ĐOAN Em cam đoan kết nghiên cứu trình bày luận văn hồn tồn trung thực Tất tài liệu tham khảo có nguồn gốc, xuất xír rõ ràng Luận văn đảm bảo tính độc lập khách quan theo quy định Khoa Thành Hồ Chỉ Minh, ngày 10 tháng 03 năm 2023 Tác giả luận văn Lương Trường An ii LỜI CẢM ƠN Trước trình bày nội dung luận văn Thạc sĩ, em xin câm ơn sâu sắc tới thầy PGS.TS Phan Cơng Vinh, Phó Trường khoa - khoa Công nghệ thông tin Trường Đại học Nguyền Tất Thành người tận tình dạy bảo, hướng dẫn em hồn thành tốt luận văn Em xin cảm ơn chân thành đen thầy TS Nguyền Kim Quốc, Trưởng khoa Công nghệ thông tin cố vấn học tập quý Thầy khoa Công nghệ thông tin, Viên sau đại học - Trường Đại học Nguyễn Tất Thành dạy bảo em suốt trình học tập Trường Nhân dịp em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè, đong nghiệp động viên, cô vũ, giúp đỡ em suốt trình học tập thực luận văn tốt nghiệp Thành Hồ Chi Minh, ngày 10 thảng 03 năm 2023 Học viên Lương Trường An iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH SÁCH CÁC HÌNH vi DANH MỤC KÝ HIỆU VÀ VIÉT TẮT vii CHƯƠNG 1: GIỚI THIỆU ĐÈ TÀI 1.1 Lý chọn đề tài 1.2 Mục đích nghiên cứu 1.2.1 Mục tiêu tổng quát 1.2.2 Mục tiêu cụ thể 1.3 Đối tượng nghiên cửu phạm vi nghiên cửu 1.3.1 Đối tượng nghiên cứu 1.3.2 Phạm vi nghiên cửu 1.4 Nhiệm vụ nghiên cứu 1.5 Phương pháp nghiên cứu 1.5.1 Phương pháp lí luận 1.5.2 Phương pháp thực tiễn 1.6 Những đóng góp đề tài 1.7 Dự kiến kế hoạch nghiên cứu CHƯƠNG 2: MÔ TÃ VÈ HỆ THÓNG TỆP PHÂN TÁN HADOOP, VÀ KIÉN THỨC NỀN TẢNG VÈ CSP VÀ PAT 2.1 Tổng quan HDFS iv 2.2 Giói thiệu tóm tắt CSP PAT • 2.2.1 Tổng quan ngơn ngữ đại số tiến trình CSP 2.2.2 Tong qt cơng cụ phân tích tiến trình PAT 19 2.2.3 Mô-đun CSP 24 CHƯƠNG 3: MƠ HÌNH HĨA HỆ THỐNG TỆP PHÂN TÁN HADOOP 35 3.1 Tổng quan mô hình 35 3.2 ClientNode 35 3.2.1 ClientRead 35 3.2.2 ClientWrite 37 3.3 DataNode 40 3.3.1 DataRead 40 3.3.2 DataWrite 40 3.3.3 DataHBeat 43 3.4 NameNode 44 3.4.1 NameRead 44 3.4.2 NameWrite 45 3.4.3 NameHBeat 46 CHƯƠNG 4: KIỂM CHƯNG MƠ HÌNH HỆ THỐNG TỆP PHÂN TÁN HADOOP 47 4.1 Cài đặt PAT 47 4.1.1 Các bảng 47 4.1.2 Các tiến trình 48 4.2 Các thuộc tính 52 4.2.1 Không bế tac(Deadlock Freedom) 52 V 4.2.2 Khoảng cách đường ngắn (Minimal Distance Scheme) 52 4.2.3 Loại trừ lẫn (Mutual Exclusion), 53 4.2.4 Lược đồ ghi lần (Write-Once Scheme) 53 4.2.5 Khả chịu lỗi (Robustness) 54 4.3 Kết đánh giá 54 CHƯƠNG 5: KÉT LUẬN .56 5.1 Kết luận 56 5.1 Hướng phát triển 56 TÀI LIỆU THAM KHẢO .57 vi DANH SÁCH CÁC HÌNH Hình 2.1: Tổng quan Kiến trúc HDFS Hình 2.2: Tong quan Đọc tệp Hình 2.3: Tong quan Ghi tệp Hình 2.4: Tong quan Cơ chế nhịp tim Hình 2.5: Kiến trúc PAT 21 Hình 2.6: Trình biên tập PAT 22 Hình 2.7: Chế độ chọn nhấp chuột hàng loạt 24 Hình 2.8: Mô-đun CSP 25 Hình 3.1: Truyền thơng DataNode (DataNodes) 41 Hình 3.2: Ba khả ghi liệu (DataWrite) 41 Hình 4.1: Mơ cho HDFS 51 Hình 4.2: Kết xác minh cho HDFS 55 vii DANH MỤC KÝ HIỆU VÀ VIÉT TẮT STT Chữ viết tắt HDFS Diễn giải tiếng Anh Hadoop Distributed File Diễn giải tiếng Việt Hệ thống tệp phân tán Hadoop System Communicating Sequential Các tiến trình Processes truyền thông CSP PAT Process Analysis Toolkit Bộ công cụ phân tích tiến trinh ID Index Chi mục LTL Linear Temporal Logic Logic thời gian tuyến tính HBeat Heart Beat Nhịp tim HBeatlnterval Heart Beat Interval Khoảng nhịp tim ws Web Service Dịch vụ web Optical Character Mô-đun nhận dạng ký tự OCR Module Recognition Module quang học Module Checker for Mô-đun kiêm tra mơ hình cho Sensor Networks mạng cảm biển 10 NesC Module 11 RTS Real-time System Hệ thống thời gian thực 12 GFS Google File System Hệ thống tệp Google CHƯƠNG 1: GIỚI THIỆU • ĐÈ TÀI 1.1 Lý chọn đề tài Hadoop khung tham chiếu mã nguồn mở phân tán dành cho ứng dụng tính tốn liệu qui mơ lớn [14, 15] Lấy cảm hứng từ nghiên cứu Google [6, 7], cung cấp mơ hình lập trình MapReduce hệ thống tệp phân tán Hadoop (Hadoop Distributed File System - HDFS) Hiện nay, nhiều công ty, Amazon, AOL, Yahoo!, Facebook New York Times [4, 5], sử dụng thành công Hadoop HDFS [2, 3, 9], nhu killing tham chiếu ứng dụng Hadoop, cung cấp khả truy xuất thông lượng cao cho dừ liệu cùa ứng dụng thích hợp cho ứng dụng có tập dừ liệu lớn Dưới khung tham chiếu này, liệu phân tán số lượng lớn máy có thê xử lý cách hiệu Luận văn phát triên ư'r báo PGS.TS.Phan Công Vinh [1] Nội dung đề tài tô chức sau Trong Chương 1, giới thiệu đề tài luận văn Chương mô tả Hệ thống tệp phân tán Hadoop, kiến thức tảng CSP PAT Chúng ta mơ hình hóa Hệ thống tệp phân tán Hadoop Chương Trong Chương 4, kiêm chứng mơ hình Hệ thống tệp phân tán Hadoop Cuối cùng, cung cấp nhận xét kết luận hướng phát triển Chương 1.2 Mục đích nghiên cứu 1.2.1 Mục tiêu tong qt Mơ hình hóa hệ thống tệp phân tán Hadoop ngơn ngữ đại số tiến trình CSP nhằm mục đích nghiên cứu cải thiện hạn chế cùa hệ thống tệp phân tán 1.2.2 Mục tiêu cụ thể Thơng qua việc mơ hình hóa kiêm chứng mạng Hệ thống tệp phân tán Hadoop ngơn ngữ đại số tiến trình CSP, hồn thành luận văn tốt nghiệp 45 getLocationifilelnfoy blockLocation := sortDistance(DList'); RrN\ blockLocation -> NameRead Tien trình NameRead có thê diễn giải nhir sau Đầu tiên, NameRead nhận thông tin tệp lấy vị trí cùa khối theo file Info, đây, DList đại diện cho vị trí khối tìm kiểm Thír hai, NameRead xếp DataNode theo thông báo DList theo khoảng cách tăng dần với đầu đọc gán kết cho blockLocation Cuối cùng, Name Read gửi thông báo blockLocation tới tiến trình Readerr 3.4.2 NameWrite Tien trình NameWrite hình thức hóa nliư sau: NameWrite =df WwN? fileName -> E := verifyE(fileNamef, (createFail NameWrite') L := veriLeaseựileNamey (waitLease NameWrite') (getLease -> DInfo := selectDataNode-, l¥wyv! DInfo -> WwN? Complete -> removeLease -> NameWritef) Tiến trình NameWrite diễn giải nhtĩ sau Đầu tiên, NameWrite nhận tên tệp ghi đánh giá xem tệp có tồn khơng gian tên hệ thống tệp hay không, đây, giá trị E có thê true false, true nghĩa tệp tồn false nghĩa tệp không tồn Neu E true, NameWrite từ chối tạo tệp cách thực tác vụ đồng createFail Ngược lại, E false , NameWrite thực thi hành động đồng createSuccess Khi tệp tạo thành công, NameWrite xác minh xem hợp đồng thuê tệp có bị chiếm máy khách khác hay khơng Neu L true, điều có nghĩa có khách hàng sờ hữu hợp đồng thuê tệp ghi tệp, NameWrite thực hành động đồng waitLease đê tỉr chối thiết lập họp đồng thuê tệp với người ghi Mặt khác, Nam e Write thực thi hành động đong getLease đê tạo họp đồng thuê 46 Trong trường hợp NameWrite tạo hợp đồng thuê tệp với máy khách thành cơng, chọn DataNode đê lưu trữ khối cùa tệp gừi thông tin DataNode cho Writerw Cuối cùng, NameWrite nhận thơng báo Complete tỉr Writerw xóa hợp đong thuê tệp với người viết, việc thực cách sử dụng hành động remove Lease 3.4.3 NameHBeat Tiến trình NameHBeat hình thức hóa sau: NamedHBeat =df DdN? heartbeat -» DdN\command -> NameHBeat Đối với tiến trình NameHBeat, nhận trái tim tìr DataNode gửi lệnh tới DataNode 47 CHƯƠNG 4: KIỀM CHỨNG MƠ HÌNH HỆ THĨNG TỆP • PHÂN TÁN HADOOP Trong phần này, sử dụng PAT đê triên khai mơ hình CSP xây dựng Phần Ngoài ra, minh họa số thuộc tính quan trọng xác minh PAT Tiếp theo tập trung vào việc xác minh số thuộc tính quan trọng, tàm mọng hóa tị u cầu HDFS Chúng ta kiêm tra tính đắn cùa mơ hình hình thức thơng qua mơ xác minh thuộc tính bang PAT Các mơ tả thuộc tính đưa Phần 4.2 4.1 Cài đặt PAT 4.1.1 Các bảng Tại đây, thông số khác cấu hình việc đọc tệp ghi tệp, sử dụng mơ phịng xác minh mơ hình Đọc tệp: hoạt động đọc, giả sử có hai trình đọc hai tệp tồn không gian tên hệ thống tệp Hơn nữa, có ba DataNode giao tiếp trực tiếp với người đọc người viết Chúng ta sử dụng số mảng đê ghi lại thông tin người đọc, tệp DataNode , liệt kê bên dưới: # define R 2; # de fine FR 2; # define D 3; # define B 1; # define replica 3; var fileblock[FR][B] = [0,1]; var bd[FR * B][replica] = [0,1,2,0,1,2]; var Dstate[D] = [0,1,1]; var disMin[R] = [3,3]; 48 var readSuc[R][FR] = [0,0,0,0]; R, FR, D B biêu thị so hrợng đầu đọc, tệp, DataNode khối tạo thành tệp tương ứng Bản biêu thị số lượng cho khối, ba theo mặc định hệ thống Mảng fileblock ghi lại ánh xạ từ tệp vào khối Và đồ hr khối đến DataNode ghi lại bời bd Mảng Dstate ghi trạng thái cho DataNode , có nghĩa DataNode không khả dụng viết tắt DataNode khả dụng Trạng thái ban đầu cho ba DataNode có thê đirợc đặt thành 0,1,1 Mảng disMin ghi ID cùa DataNode khả dụng, hru trữ khối tệp gần đầu đọc Mảng cuối readSuc ghi lại trạng thái trình đọc đọc tệp thành cơng hay chưa, nghĩa đọc thất bại đọc thành công Ghi tệp: hoạt động ghi, giả sử có hai người ghi hai tệp ghi Một số mảng sữ dụng liệt kê đây: # define w 2; ftdefine FW 2; var writeLease[FD] = [0,0]; var write Count [FW] = [0,0]; var writeSuc[W][FW] = [0,0,0,0]; w FW biêu thị số hrợng người ghi tệp ghi tương ứng WriteLea.se ghi lại sổ người ghi ghi tệp Giá trị ban đầu mảng đặt 0,0 đây, có nghĩa khơng có người ghi, đại diện cho người viết, ghi tắt hai người viết, v.v Chức mảng write Count tương tự nhtr đếm, sử dụng đê ghi lại số lượng mà tệp tạo Mảng cuối write Sue ghi lại trạng thái người viết ghi đầy đủ vào tệp thành công hay chưa, nghĩa ghi thất bại ghi thành công 4.1.2 Các tiến trình Chúng ta triên khai mơ hình CSP PAT Tất tiến trinh CSP mà 49 xác định Phần tương tự tiến trình PAT chi lấy tiến trình Reader, NameWrite hàm sortDistance tiến trình NameRead mà chi tiết khơng đưa mơ hình CSP hạn Chúng ta hiên thị mã Reader(f) = PRNỈr file -> RN[r]2 block, x.y.z -> verifyDstate{ if(Dstate[x] == l){disMin[r] = x} else if(Dstate[y] == i){disMin[r] = y} else (disMin[r] = z}} -> !W[disMin[r]]! block RD[disMin[r]]? blockData RD[disMin[r]]\checksumOk -» modify{readSuc[r][file] = 1;} —» Reader(r); Trình đọc gửi thơng tin nhận dạng tệp cùa tới Name Node thơng qua kênh cơng khai PRN Sau đó, nhận vị trí khối hr NameNode qua kênh riêng 7?2V[r] Chúng ta sử dụng chức verifyDstate đê triên khai liên kết máy khách DataNode Khi đầu đọc chọn DataNode khả dụng nút gần nhất, gửi thơng tin khối đến DataNode chọn Sau đó, nhận liệu khối hr DataNode Neu đầu đọc nhận liệu thành cơng, gửi thơng báo checksumOk tới DataNode chọn, đóng giao tiếp Cuối cùng, sử dụng chức sửa đôi đê sửa đôi mảng readSuc NameWriteQ = PWNlw.f -> if (write Count[f] == 0){ if(writeLease[f] == 0){ 50 modify Lease[writeLease[f] = writeLease[f] + 1} WN[w]\ idle -> WW[w]! 0.1.2 -> WN[w]? complete -> modifyCount{writeCount[f] = write Count [f] + 1; writeLease[f] = writeLease[f] — 1; } NameWrite()} else{WN[w]i occupied -» Name Write ()}} else{WN[w]i created NameWritef)}; Đầu tiên, NameWrite nhận thông tin nhận dạng người viết thông tin tệp ghi dọc theo kênh công cộng PWN Thứ hai, NameWrite xác minh xem tệp tạo hệ thống tệp hay chưa theo mảng writeCount ~WriteCount[f] == có nghĩa người viết có hội tạo tệp, trường hợp này, NameWrite cần xác minh xem người viết khác có cho thuê tệp hay khơng theo mảng wr iteLease WriteLease[f] == có nghĩa hợp đồng thuê tệp không hoạt động, trường hợp này, sử dụng chức modifyLease đê sửa đơi nếuy mảng writeLease Sau đó, NameWrite gừi tin nhan nhàn rỗi cho người viết, đây, thông báo có nghĩa người viết có thê thuê tệp Và NameWrite gửi thông tin cùa DataNode cho người viết DataNode sử dụng đê hru trữ dừ liệu tệp Sau đó, Name Write nhận thơng báo hồn thành từ người viết, đây, thơng báo có nghĩa người viết hồn thành tác vụ viết Sau đó, sử dụng hàm modifyCount để sửa đổi mảng writeCount writeLease Đối với trường hợp writeLease[f]# 0, NameWrite gửi thông báo chiếm dụng cho người viết, đây, thông báo có nghĩa người viết khác chiếm giữ hợp đồng thuê tệp Đối với trường hợp writeCount[/]# 0, NameWrite gửi thông báo tạo cho người viết, đây, thơng báo có nghĩa tệp tạo không gian tên hệ thống tệp 51 sortDistance(dl, d2, d3) = i/(dl < d2){ if(dl < d3){ if(d2 < d3){jml = dl; m2 = d2; m3 = d3; } else{ml = dl; m2 = d3; m3 = d2} }} else{ml = d3; m2 = dl; m3 = d2‘, }} else i/(d2 < d3){ i/(d3 < dl){ml = d2; m2 = c/3; m3 = dl; } else{ml = d2; m2 = dl; m3 = d3] }} else {ml = d3; m2 = d2; m3 = dl; } đây, tham so dl, d2 d3 đại diện cho ID cùa ba DataNode NameNode tìm kiem từ khơng gian tên hệ thống tệp tương ứng Sau tiến trình NameNode so sánh ID cùa DataNode xếp lại chúng theo khoảng cách với khách, đây, giả sử DataNode có ID thấp có khoảng cách nhỏ với máy khách Trong Hình 4.1, mơ phịng mơ hình CSP mà xây dựng đưa Hình 4.1: Mơ phịng cho HDFS 52 4.2 Các thuộc tính Trong chương này, tập trung vào việc xác minh số thuộc tính quan trọng, tóm tắt từ yêu cầu cùa HDFS Chúng ta kiêm tra tính đắn mơ hình hình thức thơng qua mơ xác minh thuộc tính PAT Mơ tả thuộc tính đưa bên 4.2.1 Không bế tac(Deadlock Freedom) Trong HDFS, nên tránh tinh trạng số máy khách chờ tài nguyên bị máy khách khác chiếm dụng vơ hạn Trong cơng cụ PAT, có hàm đê mơ tả tình này: ỉtassert HDFSf) deadlockfree; 4.2.2 Khoảng cách đường ngắn (Minimal Distance Scheme) Mỗi khối có ba theo mặc định hệ thống đặt DataNode khác Đê giảm thiêu mức tiêu thụ băng thơng tồn cầu độ trề đọc, HDFS cố gắng đáp ứng yêu cầu đọc từ gần đầu đọc Như mơ tả mơ hình PAT mình, mảng Dstate ghi lại trạng thái DataNode , viết tắt DataNode khả dụng nghĩa nút khơng khả dụng Mảng disMin ghi lại khoảng cách tối thiêu DataNode khả dụng đầu đọc đây, giả sử DataNode có ID thấp có khoảng cách nhỏ với đầu đọc Vì vậy, phải chứng minh mảng disMin ghi lại ID tối thiêu so ID DataNode có sẵn Khăng định thuộc tính định nghĩa sau: #define disMinpro( (DstatefO] == && disMin[0] == &.& disMin[l] == 0)11 53 (DstatefO] == &.& Dstate[l] == && disMin[O] == && disMin[l] == 1)11 (DstatefO] == &.& Dstate[l] == && Dstate[2] == && disMin[0] == 8i8z disMin[l] == 2)); tiassert HDFSQ reaches disMinpro; 4.2.3 Loại trừ lẫn (Mutual Exclusion), Tại thời điêm nào, tệp chi ghi bời người viết, có nghĩa người viết ghi tệp có ID 1, người khác không thê ghi tệp đây, chứng minh hệ thống không thê đạt đen trạng thái mà hai nhiều người viết ghi tệp có ID Như mô tả, mảng writeLease ghi lại số lượng người viết ghi tệp Do đó, nên đảm bảo giá trị mảng writeLease nhỏ Khăng định định nghĩa sau: Udefine mutualpro(writeLease[0]

Ngày đăng: 16/05/2023, 17:50

Tài liệu cùng người dùng

Tài liệu liên quan