Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
1,92 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN MƠN HỌC: AN TỒN HỆ ĐIỀU HÀNH Đề tài: Tìm hiểu tảng tính tốn phân tán Hadoop Giảng viên hướng dẫn: TS Hoàng Xuân Dậu Nhóm thực hiện: 05 Thành viên nhóm: Phạm Khánh Hưng – B19DCAT096 Phan Thế Hưng – B19DCAT097 Phạm Ngọc Khánh – B17DCAT105 Nguyễn Thị Khuyên – B19DCAT109 Lê Đức Long – B19DCAT114 Nguyễn Hải Long – B19DCAT115 Kiều Minh Hữu – B19DCAT211 Hà Nội 18/03/2022 NHẬT KÝ HOẠT ĐỘNG NHÓM Thành viên Nguyễn Hải Long – B19DCAT115 Phạm Ngọc Khánh – B17DCAT105 Phan Thế Hưng – B19DCAT097 Kiều Minh Hữu – B19DCAT211 Lê Đức Long – B19DCAT114 Nguyễn Thị Khuyên – B19DCAT109 Phạm Khánh Hưng – B19DCAT096 MỤC LỤC: I Giới thiệu khái quát Hadoop: ………………………………………… Khái niệm Hadoop gì? Kiến trúc Hadoop ………………………………….………………… II Nội dung: …………………………………………………………… ……… Các thành phần Hadoop… …………………………………… Cơ chế hoạt động……………………………………………………… 12 Cài đặt ………………………………………………………… ……… 14 Những ưu điểm & nhược điểm Hadoop mang lại …………… …………….18 III Kết luận: ………………………………………………………… ………… 19 IV Tài liệu tham khảo: …………………………………………… ………… 19 I Giới thiệu khái quát Hadoop Hadoop gì? Hadoop Apache framework mã nguồn mở viết Java, cho phép phát triển ứng dụng phân tán có cường độ liệu lớn miễn phí Nó cho phép ứng dụng làm việc với hàng ngàn node khác hàng petabyte liệu Hadoop phát triển dựa ý tưởng từ công bố Google mơ hình Map-Reduce hệ thống file phân tán Google File System (GFS) Và có cung cấp cho môi trường song song để thực thi tác vụ Map-Reduce Hadoop viết Java Tuy nhiên, nhờ chế streaming, Hadoop cho phép phát triển ứng dụng phân tán java lẫn số ngôn ngữ lập trình khác C++, Python, Pearl Kiến trúc Hadoop Hadoop có kiến trúc Master-Slave để lưu trữ liệu xử lý liệu phân tán phương pháp MapReduce HDFS Có node chạy NameNode, note chạy JobTracker Có nhiều node slave, node thường đóng vai trị: DataNode, hai TaskTracker NameNode DataNode chịu trách nhiệm vận hành hệ thống file phân tán HDFS với vai trò: • NameNode: master, quản lý meta-data hệ thống, quản lí danh sách slave tình trạng hoạt động DataNode thông qua hearbeat, điều hướng trình đọc/ghi liệu từ client lên DataNode • DataNode: chứa block liệu thực file HDFS, chịu trách nhiệm đáp ứng yêu cầu đọc/ghi liệu từ client, đáp ứng yêu cầu tạo/xoá block liệu từ NameNode JobTracker TaskTracker chịu trách nhiệm trì máy MapReduce, nhận thực thi MapReduce Job Vai trò cụ thể sau: - II • JobTracker: tiếp nhận yêu cầu thực thi MapReduce job, phân chia job thành task phân công cho taskTracker thực hiện, quản lý tình trạng thực task TaskTracker phân cơng lại cần • TaskTracker: nhận task từ JobTracker thực task Ngoài Hadoop cluster cịn có SecondaryNameNode • SecondaryNameNode: trì meta-data NameNode dùng để phục hồi lại NameNode có NameNode bị hư hỏng Nội dung Các thành phần Hadoop Ngày nay, HDFS MapReduce, Hadoop cịn có dự án sau: • MapReduce (MapReduce Engine): framework phát triển ứng dụng phân tán MapReduce cách dễ dàng mạnh mẽ, chạy cluster lớn với nhiều node • HDFS: Hệ thống file phân tán, lưu trữ liệu khổng lồ, tối ưu hố việc sử dụng băng thơng node, sử dụng để chạy cluster lớn với hàng chục ngàn node • Core: cung cấp công cụ giao diện cho hệ thống phân tán tiện ích I/O Đây phần lõi để xây dựng nên HDFS MapReduce • HBase: Cơ sở liệu phân tán, theo hướng cột (colunm-oriented), sử dụng HDFS lưu trữ liệu bên dưới, cung cấp khả tính tốn song song dựa MapReduce • Hive: Một data warehouse phân tán, quản lý liệu lưu trữ HDFS cung cấp ngôn ngữ truy vấn dựa SQL • Chukwa: Hệ thống tập hợp phân tích liệu, chạy collector (các chương trình tập hợp liệu), collector lưu trữ liệu HDFS sử dụng MapReduce để phát sinh báo cáo • Pig: Ngơn ngữ luồng liệu cấp cao framework thực thi dùng cho tính tốn song song Tuy nhiên, chúng em tập trung vào hai phần quan trọng Hadoop, HDFS MapReduce Hadoop Distributed File System (HDFS)- Hệ thống phân tán Hadoop Một cluster có Namenode có hay nhiều Datanode Namenode đóng vai trị master, chịu trách nhiệm trì thông tin cấu trúc phân cấp file, thư mục hệ thống file metadata khác hệ thống file Cụ thể, Metadata mà Namenode lưu trữ gồm có: • File System Namespace: - Là hình ảnh thư mục hệ thống file thời điểm - Thể tất các file, thư mục có hệ thống file quan hệ chúng • Thơng tin để ánh xạ từ tên file thành danh sách block: - Với file, ta có danh sách có thứ tự block file đó, Block đại diện Block ID • Nơi lưu trữ block: -Các block đại diện Block ID Với block ta có danh sách DataNode lưu trữ block -Namenode chịu trách nhiệm điều phối thao tác truy cập (đọc/ghi liệu) client lên hệ thống HDFS Cơ chế hoạt động HDFS - Đọc File HDFS: + Client mở file cần đọc cách gửi yêu cầu đọc file đến NameNode Sau NameNode thực kiểm tra xem file yêu cầu đọc có tồn khơng, hay file cần đọc có trạng thái “khoẻ mạnh” không Nếu thứ ổn, NameNode gửi danh sách block (đại diện Block ID) file với địa DataNode chứa block +Tiếp theo, client mở kết nối tới DataNode, thực RPC để yêu cầu nhận block cần đọc đóng kết nối với DataNode + Client thực việc đọc block lặp lăp lại block cuối file đọc xong - Ghi File HDFS • Đầu tiên, client gửi yêu cầu đến NameNode tạo file entry lên File System Namespace File tạo rỗng, tức chưa có block • Sau đó, NameNode định danh sách DataNode chứa file cần gửi lại cho client Client chia file thành block với block client đóng gói thành packet • Client gửi packet cho DataNode thứ nhất, DataNode thứ nhận packet tiến hành lưu lại thứ block Tiếp theo DataNode thứ gửi packet cho DataNode thứ hai để lưu thứ hai block Tương tự DataNode thứ hai gửi packet cho DataNode thứ ba Cứ vậy, DataNode lưu block hình thành ống dẫn liệu data pile • Sau DataNode cuối nhận packet, gửi lại cho DataNode thứ hai gói xác nhận lưu thành cơng Và gói thứ hai lại gửi gói xác nhận tình trạng thành cơng hai DataNode DataNode thứ • Client nhận báo cáo xác nhận từ DataNode thứ cho tình trạng thành công tất DataNode data pile • Nếu có DataNode bị lỗi trình ghi liệu, client tiến hành xác nhận lại DataNode lưu thành công block thực ghi lại block lên DataNode bị lỗi • Khi block file ghi lên DataNode, client thực hiên thông điệp báo cho NameNode nhằm update lại danh sách block file vừa tạo Thông tin Mapping từ Block ID sang danh sách DataNode lưu trữ NameNode tự động update cách định kỳ DataNode gửi báo cáo cho NameNode danh sách block mà quản lý Hadoop MapReduce Theo Google định nghĩa rằng: “MapReduce mơ hình lập trình thực thi song song xử lý phát sinh tập liệu lớn” Ngồi ra, MapReduce mơ hình áp dụng hệ thống máy tính kết nối với cài đặt chương trình MapReduce, thường kèm theo hệ thống chia sẻ file phân tán, để thực thao tác xử lý cách song song đồng thời, MapReduce sử dụng hai thao tác cho việc thực thi cơng việc ban đầu từ người dùng hàm Map hàm Reduce • Hàm Map Người dùng đưa cặp liệu (key,value) làm input cho hàm Map, tùy vào mục đích người dùng mà hàm Map đưa danh sách cặp liệu (intermediate key,value) • Hàm Reduce Hệ thống gom nhóm tất value theo intermediate key từ output hàm Map, để tạo thành tập cặp dự liệu với cấu trúc (key, tập value key) Dữ liệu input hàm Reduce cặp liệu gom nhóm sau thực xử lý trả cặp liệu (key, value) output cuối cho người dùng Cơ chế hoạt động MapReduce: + Đầu tiên, client yêu cầu thực job kèm theo liệu input tới JobTracker JobTracker sau tiếp nhận job này, thông báo ngược client tình trạng tiếp nhận job Khi client nhận thơng báo tình trạng tiếp nhận hợp lệ tiến hành phân rã input thành split, split ghi xuống HDFS Sau client gửi thơng báo sẵn sàng để JobTracker biết việc chuẩn bị liệu thành công tiến hành thực job + Khi nhận thông báo từ client, JobTracker đưa job vào stack mà lưu job mà client yêu cầu thực Tại thời điểm JobTracker thực job Sau job hoàn thành hay bị block, JobTracker lấy job khác stack (FIFO) thực Trong cấu trúc liệu mình, JobTracker có job scheduler với nhiệm vụ lấy vị trí split từ HDFS chương trình client tạo, sau tạo danh sách task để thực thi Với split tạo maptask để thực thi, số lượng maptask với số lượng split Còn reduce task, số lượng reduce task xác định chương trình client Bên cạnh đó, JobTracker cịn lưu trữ thơng tin trạng thái tiến độ tất task + Ngay JobTracker khởi tạo thông tin cần thiết để chạy job, bên cạnh TaskTracker hệ thống gửi heartbeat đến JobTracker Hadoop cung cấp cho TaskTracker chế gửi heartbeat đến JobTracker theo chu kỳ thời gian đó, thơng tin bên heartbeat cho phép JobTrack biết TaskTracker thực thi task hay khơng Nếu TaskTracker cịn thực thi JobTracker cấp task vị trí split tương ứng đến TaskTracker để thực + Việc TaskTracker thực thi task chia thành loại: TaskTracker thực thi maptask, TaskTracker thực thi reduce task + Khi TaskTracker nhận thực thi maptask, kèm theo vị trí input split HDFS Nó nạp liệu split từ HDFS vào nhớ, dựa vào kiểu format liệu input client chọn parse split để phát sinh tập record, record có trường: key value Với tập record này, tasktracker chạy vòng lặp để lấy record làm input cho hàm map để trả output liệu gồm intermediate key value Dữ liệu output hàm Map ghi xuống nhớ chính, xếp trước bên nhớ + Trước ghi xuống local disk, liệu output phân chia vào partition (region) dựa vào hàm partition, partition ứng với liệu input reduce task 10 sau Và bên partition, liệu xếp (sort) tăng dần theo intermediate key, chương trình client có sử dụng hàm combine hàm xử lý liệu partition xếp Sau thực thành cơng maptask liệu output partition ghi local, lúc TaskTracker gửi trạng thái completed maptask danh sách vị trí partition output localdisk đến JobTracker + TaskTracker thực reduce task với liệu input danh sách vị trí region cụ thể output ghi localdisk maptask Điều có nghĩa với region cụ thể, JobTracker thu thập region output maptask thành danh sách vị trí region + Do biết số lượng map task reduce task, nên TaskTracker cách định kỳ hỏi JobTracker vị trí region mà phân bổ cho nó nhận đầy đủ vị trí region output tất map task hệ thống.Với danh sách vị trí này, TaskTracker nạp (copy) liệu region map task mà output chứa region hoàn thành vào nhớ Và TaskTracker cung cấp nhiều tiểu trình thực nạp liệu đồng thời để gia tăng hiệu suất xử lý song song + Sau nạp thành cơng tất region TaskTracker tiến hành merge liệu region theo nhiều đợt mà đợt thực cách đồng thời để làm gia tăng hiệu suất thao tác merge Sau đợt merge hoàn thành tạo file liệu trung gian xếp Cuối file liệu trung gian merge lần 11 để tạo thành file cuối TaskTracker chạy vòng lặp để lấy record làm input cho hàm reduce, hàm reduce dựa vào kiểu format output để thực trả kết output thích hợp Tất liệu output lưu vào file file sau ghi xuống HDFS Cơ chế hoạt động Hadoop Giai đoạn Một user hay ứng dụng submit job lên hệ thống Hadoop (hadoop job client) với yêu cầu xử lý thông tin gồm: + Nơi lưu (location) liệu input, output hệ thống liệu phân tán + Các java class định dạng jar chứa dòng lệnh thực thi hàm map reduce + Các thiết lập cụ thể liên quan đến job thông qua thông số truyền vào Giai đoạn Hadoop job client submit job (file jar, file thực thi) thiết lập cho JobTracker Sau đó, master phân phối tác vụ đến máy slave để theo dõi quản lý tiến trình máy này, đồng thời cung cấp thơng tin tình trạng chẩn đốn liên quan đến job-client Giai đoạn TaskTrackers node khác thực thi tác vụ MapReduce trả kết output lưu hệ thống file Cài đặt Hadoop a Cài đặt JDK 1.8 Sử dụng link sau để downloads : https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html Sau hoàn tất trình tải jdk, ta tiến hành cài đặt Khi xuất hình tức hồn tất q trình cài đặt JDK 12 b Thiết lập biến môi trường cho Java JDK Chuột phải-> Computer -> Properties->Advanced System Settings-> Environment Variables Tại User variables for PC -> New, cập nhật thông tin ảnh: Trên Systems variables ->path -> edit -> new -> nhập: C:\Java\jdk1.8.0_301\bin -> OK Kết quả: c Cài đặt cấu hình Hadoop Bước 1: - Tải Hadoop 3.3.0 máy, giải nén file 13 Bước 2: Thiết lập môi trường Hadoop ( tương tự thiết lập môi trường JDK) Bước 3: Cấu hình tập tin cho Hadoop Trong thư mục C:/Hadoop-3.3.0/etc/hadoop chỉnh sửa file: + core-site.xml + hdfs-site.xml + mapred-site.xml + yarn-site.xml + hadoop-env.cmd Cấu hình core-site.xml hình đây: Cấu hình mapred-site.xml đây: 14 Cấu hình hdfs-site.xml đây: • • • Tạo thư mục “data” “C:\Hadoop-3.3.0” Tạo thư mục “datanode” “C:\Hadoop-3.3.0\data” Tạo thư mục “namenode” “C:\Hadoop-3.3.0\data” Sau cấu hình hdfs-site.xml sau: 15 Cấu hình yarn-site.xml đây: Cấu hình hadoop-env.cmd: Bước 4: - Cập nhật Hadoop Configurations: + Tải apache-hadoop-3.1.0-winutils-master.zip (GitHub - s911415/apache-hadoop- 3.1.0-winutils: HADOOP 3.1.0 winutils) + Giải nén thấy thư mục bin bên apache-hadoop-3.1.0-winutilsmaster.zip Chép đè thư mục bin thư mục bin C:\hadoop-3.3.0\bin Sau format lại namenode datanode: mở command line lên, gõ lệnh sau: hdfs namenode –format hdfs datanode –format 16 Để kiểm tra Hadoop, mở command line di chuyển tới thư mục C:\hadoop-3.3.0\sbin Sau gõ lệnh: Start-all.cmd 17 Ưu điểm nhược điểm Hadoop Ưu điểm • Khả mở rộng cao: Hadoop tảng lưu trữ có khả mở rộng cao lưu trữ phân phối liệu lớn hàng trăm máy chủ hoạt động song song Hadoop cho phép doanh nghiệp chạy ứng dụng hàng ngàn node liên quan tới hàng ngàn Terabyte liệu • Chi phí hiệu quả: Hadoop cung cấp giải pháp lưu trữ hiệu chi phí cho liệu doanh nghiệp Được thiết kế kiến trúc quy mơ có chi phí thấp lưu trữ tất liệu công ty để sử dụng sau… • Linh hoạt: Khơng giống hệ quản trị sở liệu truyền thống, Hadoop giúp lưu trữ liệu tùy thích phép định cách sử dụng chúng sau Bao gồm liệu phi cấu trúc văn bản, hình ảnh video… • Nhanh: Phương pháp lưu trữ độc đáo Hadoop dựa hệ thống tập tin phân phối theo “bản đồ” liệu Nếu làm việc với khối liệu lớn phi cấu trúc, Hadoop xử lý hiệu tetabyte liệu vài phút petabye vài • Khả chịu lỗi: Xử lý liệu ứng dụng bảo vệ khỏi lỗi phần cứng Nếu nút gặp trục trặc, công việc tự động chuyển sang nút khác để đảm bảo tính tốn phân tán không bị lỗi Đồng thời liệu lưu trữ tự động • Miễn phí dễ mở rộng: Đây framework mã nguồn mở nên hồn tồn miễn phí Ngồi ra, bạn dễ dàng phát triển hệ thống để xử lý nhiều liệu cách thêm nút • Hadoop khơng có mơ hình bảo mật tính phức tạp cao • Hadoop khơng cung cấp lưu trữ mã hóa liệu mức mạng, mối quan tâm lớn liệu ứng dụng đối tượng khách hàng cần độ bảo mật thơng tin phủ, ngân hàng… • HDFS không hiệu để xử lý tập tin nhỏ • MapReduce khơng thích hợp để sử dụng trường hợp có nhu cầu truy cập liệu thời gian thực • MapReduce khó biểu diễn liệu đầu theo nhu cầu cần sử dụng III Kết luận Qua trình nghiên cứu báo cáo tìm hiểu tảng tính tốn phân tán Hadoop cho chúng em thấy Hadoop framework cho phép người dùng nhanh chóng viết kiểm tra hệ thống phân tán Đây cách hiệu cho phép phân phối liệu công việc xuyên suốt 18 máy trạm nhờ vào chế sử lý song song lõi CPU Đi sâu tìm hiểu thành phần, cách thức hoạt động chế quản lý tệp tin HDFS Các server thêm vào gỡ bỏ từ cluster cách linh hoạt hoạt động mà khơng bị ngắt qng Ngồi mã nguồn mở cịn có khả tương thích tất tảng phát triển Java Trên báo cáo nhóm khơng tránh khỏi thiếu sót Rất mong Thầy thơng cảm Nhóm em xin chân thành cảm ơn! IV Tài liệu tham khảo N (2022, February 17) What is Hadoop? Intellipaat Blog https://intellipaat.com/blog/what-is-hadoop/ Team, D (2021, August 25) History of Hadoop – The complete evolution of Hadoop Ecosytem DataFlair https://data-flair.training/blogs/hadoop-history/ P (2019, September 10) Kiến trúc Hadoop GMO-Z.Com Vietnam Lab Center Technology Blog https://blog.vietnamlab.vn/kien-truc-hadoop/ Kiwi, C (2021, March 4) Tìm hiểu kiến trúc hệ sinh thái Hadoop Cloud Geeks Vietnam https://cloudgeeks.net/tim-hieu-ve-kien-truc-hadoop-ecosystem/ Taylor, D (2022b, February 12) What is Hadoop? Introduction, Architecture, Ecosystem, Components Guru99 https://www.guru99.com/learn-hadoop-in-10-minutes.html 19 ... liệu thời gian thực • MapReduce khó biểu diễn liệu đầu theo nhu cầu cần sử dụng III Kết luận Qua trình nghiên cứu báo cáo tìm hiểu tảng tính tốn phân tán Hadoop cho chúng em thấy Hadoop framework... framework thực thi dùng cho tính tốn song song Tuy nhiên, chúng em tập trung vào hai phần quan trọng Hadoop, HDFS MapReduce Hadoop Distributed File System (HDFS)- Hệ thống phân tán Hadoop Một cluster... DataNode thứ cho tình trạng thành cơng tất DataNode data pile • Nếu có DataNode bị lỗi trình ghi liệu, client tiến hành xác nhận lại DataNode lưu thành công block thực ghi lại block lên DataNode