1. Trang chủ
  2. » Tất cả

Báo cáo môn học hệ phân bố chương 4 apache hadoop

26 1 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 766,9 KB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC HỆ PHÂN BỐ CHƯƠNG 4 Apache Hadoop GVHD TS Nguyễn Thiên Bảo LỜI CẢM ƠN Lời nói đầu tiên, n[.]

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CƠNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC HỆ PHÂN BỐ CHƯƠNG 4: Apache Hadoop GVHD: TS Nguyễn Thiên Bảo LỜI CẢM ƠN Lời nói đầu tiên, nhóm thực xin gửi đến thầy Nguyễn Thiên Bảo – giảng viên môn lời cảm ơn chân thành sâu sắc Nhóm thực xin cảm ơn quan tâm giúp đỡ tận tình thầy suốt trình giảng dạy Cảm ơn thầy ln giải đáp thắc mắc đưa nhận xét, góp ý giúp nhóm thực cải thiện chất lượng cơng việc nhóm Vì khả cịn hạn chế nên q trình thực báo cáo khơng tránh khỏi sai sót, kính mong nhận ý kiến đóng góp từ thầy để nhóm cải thiện sau Nhóm thực xin chân thành cảm ơn Contents LỜI CẢM ƠN NỘI DUNG GIỚI THIỆU CHUNG VỀ APACHE HADOOP 1.1 Khái niệm 1.2 Lịch sử Hadoop 1.3 Hadoop dùng để làm .6 1.4 Vì nên sử dụng Hadoop 1.5 HADOOP BIGDATA 1.6 Ưu điểm HADOOP THÀNH PHẦN VÀ KIẾN TRÚC HADOOP 2.1 HDFS (Hadoop Distributed File System): 2.1.1 Kiến trúc HDFS 11 2.1.2 NameNode trình tương tác client HDFS 13 2.1.3 Quá trình đọc file .14 2.1.4 Khả chịu lỗi chẩn đoán lỗi HDFS 15 2.1.4.1 Khả phục hồi nhanh chóng .15 2.1.4.2 Nhân block 15 2.1.4.3 Toàn vẹn liệu HDFS 16 2.2 YARN 16 2.3 MapReduce 18 2.3.1 Phát triển ứng dụng theo mơ hình MapReduce với Hadoop MapReduce 19 2.3.2 Ứng dụng MapReduce 22 CÔNG DỤNG CỦA HADOOP .24 3.1 CÁC VẤN ĐỀ MÀ HADOOP CÓ THỂ GIẢI QUYẾT 24 CÁC GIAI ĐOẠN THỰC HIỆN CỦA HADOOP 24 ỨNG DỤNG CỦA HADOOP 25 TÀI LIỆU THAM KHẢO 27 NỘI DUNG GIỚI THIỆU CHUNG VỀ APACHE HADOOP 1.1 Khái niệm Apache Hadoop hay Hadoop software framework hỗ trợ ứng dụng phân tán liệu chuyên sâu theo giấy phép miễn phí Nó cho phép ứng dụng làm việc với hàng ngàn máy tính tính tốn độc lập petabyte liệu Hadoop bắt nguồn từ báo MapReduce Google Google File System (GFS) 1.2 Lịch sử Hadoop ● Nguồn gốc Hadoop đến từ viết File System Google xuất vào tháng 10 năm 2003 Bài viết nghiên cứu sản sinh từ Google ● MapReduce: Xử lý liệu đơn giản cluster lớn Bắt đầu phát triển dự án Apache Nutch, chuyển qua dự án Hadoop tháng năm 2006 Doug Cutting làm việc Yahoo! vào thời điểm đó, đặt tên Hadoop theo tên voi đồ chơi trai ● Hadoop 0.1.0 phát hành vào tháng năm 2006 tiếp tục phát triển nhiều người đóng góp đến dự án Apache Hadoop 1.3 Hadoop dùng để làm Hadoop sinh để giải hai vấn đề chính: ● Lưu trữ phân tán: Khi name node nhận yêu cầu phải lưu trữ file, chia file thành nhiều mảnh nhỏ để lưu xuống data node Thao tác đóng gói, tức bạn không cần quan tâm tới việc name node lưu file xuống data node nào, mà bạn cần quan tâm tới name node lưu file hay chưa File lưu trữ dạng filesystem ● Tính tốn phân tán: Khi name node nhận u cầu tính tốn (một job), chia job thành nhiều “job nhỏ” đưa xuống data node Tương tự thao tác lưu trữ, thao tác thực đóng gói 1.4 Vì nên sử dụng Hadoop Một số lý mà thấy cộng đồng nói nên sử dụng Hadoop gì: ● Nó miễn phí ● Nó Open source ● Nó hiệu việc lưu trữ phân tán tính tốn phân tán Hai lý dễ hiểu, cịn lý cuối chưa kiểm chứng, có hội làm việc với Hadoop, nên phải đánh giá Khi có nhìn rộng hơn, update lại phần 1.5 HADOOP BIGDATA ● Hadoop đơn giản hóa việc thực yêu cầu xử lý liệu mạnh mẽ, ứng dụng phân tán cấp cao ● Hadoop cung cấp cách thức tiết kiệm chi phí cho việc lưu trữ lượng lớn liệu cụm máy tính phần cứng chi phí thấp ● Có khác biệt với cách phương pháp phân tán khác ● Cung cấp chế mạnh mẽ cho phân tích liệu + Lưu trữ số lượng lớn + Xử lý phân tán truy cập liệu nhanh chóng + Tin cậy, chống chịu lỗi khả mở 1.6 Ưu điểm HADOOP ● 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 máy trạm nhờ vào chế xử lý song song lõi CPU ● Hadoop không dựa vào chế chịu lỗi phần cứng fault-tolerance and high availability (FTHA), thay thân Hadoop có thư viện thiết kế để phát xử lý lỗi lớp ứng dụng ● Hadoop phát triển lên nhiều server với cấu trúc master-slave để đảm bảo thực công việc linh hoạt không bị ngắt quãng chia nhỏ công việc cho server slave điều khiển server master ● Hadoop tương thích tảng Window, Linux, MacOs tạo từ Java THÀNH PHẦN VÀ KIẾN TRÚC HADOOP Kiến trúc Hadoop bao gồm bốn lớp chính: ● Common: Đây thư viện tiện ích cần thiết Java để module khác sử dụng Những thư viện cung cấp hệ thống file lớp OS trừu tượng, đồng thời chứa mã lệnh Java để khởi động Hadoop ● HDFS (Hadoop Distributed File System): Đây hệ thống lưu trữ quản lý file phân tán, đồng thời cung cấp truy cập thông lượng cao cho ứng dụng khai thác liệu ● Yarn: Đây framework để quản lý lập lịch job tài nguyên node ● MapReduce: Đây hệ thống dựa YARN dùng để xử lý song song tập liệu lớn Hiện Hadoop ngày mở rộng nhiều framework khác hỗ trợ Hive, Hbase, Pig Tùy vào mục đích sử dụng mà ta áp dụng framework phù hợp để nâng cao hiệu xử lý liệu Hadoop 2.1 HDFS (Hadoop Distributed File System): ● HDFS (Hadoop Distributed File System) thành phần quan trọng Hệ sinh thái Hadoop HDFS hệ thống lưu trữ Hadoop Hệ thống tệp phân tán Hadoop (HDFS) hệ thống tệp dựa java cung cấp khả mở rộng, khả chịu lỗi, lưu trữ liệu đáng tin cậy tiết kiệm chi phí cho Dữ liệu lớn HDFS hệ thống tệp phân tán chạy phần cứng hàng hóa HDFS định cấu hình với cấu hình mặc định cho nhiều cài đặt Hầu hết thời gian cho cấu hình cụm lớn cần thiết ● HDFS hệ thống quản lý liệu phân tán dựa tảng Java cung cấp giải pháp lưu trữ tin cậy, ổn định, truy cập nhanh chóng Với mục đích cách thức “write once, read many” sử dụng, cho phép liệu thường ghi lần HDFS, sau đọc nhiều lần Do việc sửa đổi liệu sau ghi thường hạn chế ● Ngoài ra, để lưu trữ liệu phân tán, liệu chia thành block (64/128 MB) phân phối tới node xử lý Mỗi block đồng thời chép đến server khác cụm cluster để đảm bảo tính tồn vẹn liệu Chức thành phần: ● Namenode: Là thành phần xử lý trung tâm master node quản lý toàn meta data data node Với chức Namenode quản lý vị trí block file journal file để phản hồi request thông tin file thời điểm ● Data node: slave node đảm nhận nhiệm vụ lưu trữ Data ● The Secondary Name Node: theo tên gọi để backup cho Name node thực tế khơng phải Nó thành phần trợ giúp tá vụ kết hợp block map journal log Name Node 2.1.1 Kiến trúc HDFS Giống hệ thống file khác, HDFS trì cấu trúc phân cấp file, thư mục mà file đóng vai trị node Trong HDFS, file chia làm hay nhiều block block có block ID để nhận diện Các block file (trừ block cuối cùng) có kích thước kích thước gọi block size file Mỗi block file lưu trữ thành nhiều (replica) khác mục đích an tồn liệu HDFS có kiến trúc master/slave Trên cluster chạy HDFS, có hai loại node Namenode Datanode 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: hình ảnh thư mục hệ thống file thời điểm File System namespace 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: block đại diện Block ID Với block ta có danh sách DataNode lưu trữ block Các Datanode chịu trách nhiệm lưu trữ block thật file hệ thống file phân tán lên hệ thống file cục Mỗi block lưu trữ file riêng biệt hệ thống file cục DataNode Kiến trúc HDFS thể qua sơ đồ đây: Hình 2-3 Kiến trúc HDFS 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 Và tất nhiên, Datanode nơi thật lưu trữ block file HDFS, nên chúng nơi trực tiếp đáp ứng thao tác truy cập Chẳng hạn client hệ thống muốn đọc file hệ thống HDFS, client thực request (thông qua RPC) đến Namenode để lấy metadata file cần đọc Từ metadata biết danh sách block file vị trí Datanode chứa block Client truy cập vào 22 Datanode để thực request đọc block Chi tiết trình đọc/ghi liệu client lên HDFS 10 2.1.3 Quá trình đọc file Sơ đồ sau miêu tả rõ trình client đọc file HDFS Hình 2-4 Quá trình đọc file HDFS Đầu tiên, client mở file cần đọc cách gửi yêu cầu đọc file đến NameNode (1).Sau NameNode thực số kiểm tra xem file yêu cầu đọc có tồn khơng, file cần đọc có trạng thái “khoẻ mạnh” hay 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 (3) Lưu ý với block ta 24 có nhiều DataNode lưu trữ block Client đọc block từ DataNode “gần” 12 Client thực việc đọc block lặp lăp lại block cuối file đọc xong Quá trình client đọc liệu từ HDFS transparent với người dùng chương trình ứng dụng client, người dùng dùng tập API Hadoop để tương tác với HDFS, API che giấu trình liên lạc với NameNode kết nối DataNode để nhận liệu Nhận xét: Trong trình client đọc file HDFS, ta thấy client trực tiếp kết nối với Datanode để lấy liệu không cần thực gián tiếp qua NameNode (master hệ thống) Điều làm giảm nhiều việc trao đổi liệu client NameNode, khối lượng luân chuyển liệu trải khắp cluster, tình trạng bottle neck khơng xảy Do đó, cluster chạy HDFS đáp ứng đồng thời nhiều client thao tác thời điểm 2.1.4 Khả chịu lỗi chẩn đoán lỗi HDFS 2.1.4.1 Khả phục hồi nhanh chóng Các NameNode DataNode thiết kế để phục hồi nhanh chóng Trong trường hợp NameNode ngừng hoạt động, ta cần phục hồi lại NameNode mà không cần phải restart tất DataNode Sau NameNode phục hồi tự động liên lạc lại với DataNode hệ thống lại phục hồi (thực chất NameNode đứng yên lắng nghe HeartBeat từ DataNode) Nếu DataNode bị ngừng hoạt động, ta cần khởi động lại DataNode tự động liên lạc với NameNode thông qua HeartBeat để cập nhật lại tình trạng NameNode 2.1.4.2 Nhân block Như trình bày phần trên, block liệu HDFS lưu trữ trùng lắp DataNode khác thuộc rack khác Người dùng (hoặc ứng dụng) gán số mức độ nhân (replication level) khác 13 cho file khác nhau, tuỳ vào mức độ quan trọng file đó, số mặc định ba Nhờ vậy, hay số DataNode bị ngừng hoạt động, ta cịn block 2.1.4.3 Toàn vẹn liệu HDFS HDSF đảm bảo tính tồn vẹn liệu cách thực tạo checksum5 tất liệu ghi lên kiểm tra lại checksum đọc liệu HDFS tạo checksum cho 512 bytes liệu ghi (ta cấu hình lại tham số thông qua property io.bytes.per.checksum, xem phụ lục ) DataNode chịu trách nhiệm kiểm tra tính tồn vẹn liệu cách kiểm tra checksum trước lưu trữ liệu checksum Điều thực DataNode nhận liệu từ client hay từ DataNode khác trình nhân block thông qua data pile Khi client đọc liệu từ DataNode, client thực kiểm tra checksum so sánh chúng với checksum lưu DataNode 2.2 YARN ● YARN hay Yet Another Resource Negotiator resource management layer Hadoop Các nguyên tắc đằng sau YARN để tách, quản lý tài nguyên chức công việc lập kế hoạch / giám sát vào daemon riêng biệt Trong YARN có global Resource Manager ApplicationMaster ứng dụng Ứng dụng cơng việc đơn lẻ chuỗi công việc phục thuộc vào ● Bên YARN, có hai trình quản lý ResourceManager NodeManager ResourceManager phân xử tài nguyên số tất ứng dụng cạnh tranh hệ thống Công việc Node Manager giám sát 14 việc sử dụng tài nguyên container báo cáo với ResourceManager Các tài nguyên CPU, memory, disk, network,… ● ApplicationMaster đàm phán tài nguyên với ResourceManager làm việc với Node Manager để thực thi giám sát cơng việc YARN có tính sau: ● Multi-tenancy: YARN cho phép nhiều công cụ truy cập (kể open source) liệu Hadoop Các cơng cụ truy cập xử lý hàng loạt, xử lý thời gian thực, xử lý lặp vv ● Cluster Utilization: Với phân bổ resource động, YARN cho phép sử dụng tốt cluster So với quy tắc MapReduce phiên trước Hadoop , cung cấp việc sử dụng cluster 15 ● Khả mở rộng: ResourceManager YARN tập trung vào lập lịch đối phó với cluster ngày mở rộng, xử lý petabyte liệu ● Khả tương thích: Chương trình MapReduce phát triển cho Hadoop 1.x sử dụng YARN Và điều khơng có gián đoạn quy trình hoạt động 2.3 MapReduce ● Ta cịn gọi phương pháp Phân tán liệu tách hết tập hợp liệu ban đầu thành liệu nhỏ xếp lại chúng để dễ dàng tìm kiếm truy xuất hơn, đặc biệt việc truy xuất liệu tương đồng ● Đây hệ thống dựa YARN dùng để xử lý song song tập liệu lớn Là cách chia vấn đề liệu lớn thành đoạn nhỏ phân tán nhiều máy chủ Mỗi máy chủ có tập tài nguyên riêng máy chủ xử lý liệu cục Khi máy chủ xử lý xong liệu, chúng gửi trở máy chủ ● MapReduce gồm single master (máy chủ) JobTracker slave (máy trạm) TaskTracker cluster-node Master có nhiệm vụ quản lý tài nguyên, theo dõi trình tiêu thụ tài nguyên lập lịch quản lý tác vụ máy trạm, theo dõi chúng thực thi lại tác vụ bị lỗi Những 16 máy slave TaskTracker thực thi tác vụ master định cung cấp thông tin trạng thái tác vụ (task-status) để master theo dõi MapReduce bao gồm 02 pha map reduce ● Hàm map: quét qua toàn liệu phân tán chúng thành liệu Các xử lý cặp (key, value) để sinh cặp (key, value) – key value trung gian Dữ liệu input vào hàm Reduce ● Hàm Reduce: thu thập liệu lại xếp lại chúng Tiếp nhận (key, value) trộn cặp (key, value) trung gian , lấy value có key 2.3.1 Phát triển ứng dụng theo mơ hình MapReduce với Hadoop MapReduce ● Sau tồn q trình phát triện ứng dụng theo mơ hình MapReduce với HadoopMapReduce (Hình 2-18: Phát triển ứng dụng MapReduce Hadoop) 17 Hình 2-18: Phát triển ứng dụng MapReduce Hadoop Quá trình phát triển phân rõ theo công việc người dùng thực can thiệp công việc bên framework tự làm Đối với người dùng, họ can thiệp vào việc phát triển ứng dụng qua giai đoạn sau: Thiết lập thơng số cấu hình hệ thống MapReduce Job Tiếp theo, truyền vào kiểu format cho cách thức đọc file (như file text, file kết hợp, file Database), kiểu format liệu input, điều 18 thật có ý nghĩa với việc sử dụng hàm map, với kiểu format mà từ với split cho tập record với giá trị key value khác Sau người dùng phải truyền vào đường dẫn liệu input Kế tiếp, phần việc quan trọng định nghĩa hàm map để từ cho kết output trung gian ý muốn Và để liệu output maptask format để reduce task thực người dùng phải chọn kiểu format cho key kiểu format cho value record output hàm map Rồi công việc không phần quan trọng có ý nghĩa lớn với liệu output maptask công việc thiết lập thông tin số lượng reduce task Từ thông tin mà hàm partition có sở để thực Kế đến, cơng việc quan trọng cịn lại cơng việc quan trọng nhắc trước (hàm map) hàm reduce Thêm vào người dùng chọn kiểu format cho record (key, value) liệu output hàm reduce Cuối công việc người dùng chọn kiểu format cho liệu output cuối (ví dụ như: output thành nhiều file) vị trí mà file output lưu Sau thứ tự công việc mà hệ thống (do framework làm) thực q trình phát triển ứng dụng: Với thơng tin cấu hình, hệ thống kiểm tra thơng tin liệu có hợp lệ hay khơng, để sau thơng báo người dùng ứng dụng bắt đầu 19 Sau đó, hệ thống dựa vào thông tin kiểu format (format đọc liệu format record input) đường dẫn liệu input để tiến hành tính tốn thực việc chia nhỏ liệu input thành input split Sau có tập liệu input split, hệ thống phân tán map task TaskTracker thực Hàm map trả record với format người dùng định nghĩa, với tập record hệ thống thực thao tác phân chia chúng vào vào partition (số lượng partition số lượng reduce task), thao tác xếp theo khóa thực partition Sau có tập liệu output maptask, hệ thống thực thao tác để lấy liệu partition ouput maptask, để sau hệ thống thực thao tác trộn liệu lại, tiến hành thao tác xếp tập record (key, danh sách value) để từ chạy hàm reduce task Reduce task trả record với kiểu format người dùng định nghĩa trước Với kiểu format liệu output cuối đường dẫn mà file lưu reduce task lưu liệu output theo thông tin 2.3.2 Ứng dụng MapReduce ● MapReduce mô hình áp dụng cho tất vấn đề Thực tế, mơ hình MapReduce áp dụng tốt cho trường hợp cần xử lý khối liệu lớn cách chia thành mảnh nhỏ xử lý song song ● Một số trường hợp sau thích hợp với MapReduce: ● Dữ liệu cần xử lý lớn, kích thước tập tin lớn 20 ... liệu Hadoop 2.1 HDFS (Hadoop Distributed File System): ● HDFS (Hadoop Distributed File System) thành phần quan trọng Hệ sinh thái Hadoop HDFS hệ thống lưu trữ Hadoop Hệ thống tệp phân tán Hadoop. .. CHUNG VỀ APACHE HADOOP 1.1 Khái niệm 1.2 Lịch sử Hadoop 1.3 Hadoop dùng để làm .6 1 .4 Vì nên sử dụng Hadoop 1.5 HADOOP BIGDATA 1.6 Ưu điểm HADOOP. .. ỨNG DỤNG CỦA HADOOP 25 TÀI LIỆU THAM KHẢO 27 NỘI DUNG GIỚI THIỆU CHUNG VỀ APACHE HADOOP 1.1 Khái niệm Apache Hadoop hay Hadoop software framework hỗ trợ ứng dụng phân tán liệu

Ngày đăng: 26/02/2023, 14:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w