Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
11,03 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN KẾT THÚC MƠN HỌC XỬ LÝ TÍNH TỐN SONG SONG Đề tài : Xây dựng HDFS (Hadoop Distributed File System) hệ quản lý file phân tán cung cấp truy cập thông lượng cao Mục lục I Hadoop gì? II Kiến trúc Hadoop .4 III MapReduce IV Hệ thống tệp phân tán Hadoop V Hadoop hoạt động nào? .9 VI Ưu điểm Hadoop VII Demo cài đặt Hadoop 10 VIII HDFS gì? 28 IX Các tính HDFS .29 X Kiến trúc HDFS .30 I Hadoop gì? Hadoop Apache framework mã nguồn mở cho phép phát triển ứng dụng phân tán (distributed processing) để lưu trữ quản lý tập liệu lớn Hadoop thực mơ hình MapReduce, mơ hình mà ứng dụng chia nhỏ thành nhiều phân đoạn khác chạy song song nhiều node khác Hadoop viết Java nhiên hỗ trợ C++, Python, Perl chế streaming Mục đích : Mong muốn danh nghiệp tận dụng việc lượng liệu khổng lồ để đưa định kinh danh, Hadoop giúp công ty xử lý khối lượng cỡ terabyte chí petabytes liệu phức tạp tương đối hiệu với chi phí thấp Các doanh nghiệp nỗ lực tìm kiếm thơng tin q giá từ khối lượng lớn dữliệu phi cấu trúc tạo web log, công cụ clickstream, sản phẩm truyền thơng xã hội Chính yếu tố dẫn làm tăng quan tâm đến công nghệ mã nguồn mởHadoop Hadoop, dự án phần mềm quản lý liệu Apache với nhân khung phần mềm MapReduce Google, thiết kế để hỗ trợ ứng dụng sử dụng số lượng lớn liệu cấu trúc phi cấu trúc Không giống hệ quản trị sở liệu truyền thống, Hadoop thiết kế để làm việc với nhiều loại liệu liệu nguồn Công nghệ HDFS Hadoop cho phép khối lượng lớn công việc chia thành khối liệu nhỏ nhân rộng phân phối phần cứng cluster để xử lý nhanh Công nghệnày sử dụng rộng rãi số trang web lớn giới, chẳng hạn Facebook, eBay, Amazon, Baidu, Yahoo Các nhà quan sát nhấn mạnh Yahoo nhà đóng góp lớn Hadoop II Kiến trúc Hadoop Một cụm Hadoop nhỏ gồm master node nhiều worker/slave node Toàn cụm chứa lớp, lớp MapReduce Layer lớp HDFS Layer Mỗi lớp có thành phần liên quan riêng Master node gồm JobTracker, TaskTracker, NameNode, DataNode Slave/worker node gồm DataNode, TaskTracker Cũng slave/worker node liệu node để tính tốn Hadoop framework gồm module: Hadoop Distriduted file system (HDFS): Đây hệ thống file phân tán cung cấp truy cập thông lượng cao cho ứng dụng khai thác liệu Hadoop Distributed File System (HDFS) hệ thống tập tin ảo Khi di chuyển tập tin HDFS, tự động chia thành nhiều mảnh nhỏ Các đoạn nhỏ tập tin nhân rộng lưu trữ nhiều máy chủ khác để tăng sức chịu lỗi tính sẵn sàng cao HDFS sử dụng kiến trúc master/slave, master gồm NameNode để quản lý hệ thống file metadata hay nhiều slave DataNodes để lưu trữ liệu thực Một tập tin với định dạng HDFS chia thành nhiều khối khối lưu trữ tập DataNodes NameNode định nghĩa ánh xạ từ khối đến DataNode Các DataNode điều hành tác vụ đọc ghi liệu lên hệ thống file Chúng quản lý việc tạo, huỷ, nhân rộng khối thông qua thị từ NameNode Hadoop MapReduce: Đâ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 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 JobTracker điểm yếu Hadoop Mapreduce Nếu JobTracker bị lỗi cơng việc liên quan bị ngắt quãng Hadoop 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 Hadoop YARN: Quản lý tài nguyên hệ thống lưu trữ liệu chạy phân tích III MapReduce MapReduce “mơ hình lập trình” (programming model), lần đầu báo cáo báo Jefferey Dean Sanjay Ghemawat hội nghị OSDI 2004 MapReduce ý tưởng, abstraction Để thực cần implementation cụ thể Google có implementation MapReduce C++ Apache có Hadoop, Implementation mã nguồn mở khác Java phải (ít người dùng dùng Hadoop qua Java interface) Khối liệu lớn tổ chức tập hợp gồm nhiều cặp (key, value) để xử lý khối liệu này, lập trình viên viết hai hàm map reduce Hàm map có input cặp (k1, v1) output danh sách cặp (k2, v2) Chú ý input output keys values thuộc kiếu liệu khác Như vập hàm Map viết cách hình thức sau: map(k1,v1) -> list(k2,v2) MR áp dụng hàm map (mà người dùng MR viết) vào cặp (key, value) khối liệu vào, chạy nhiều phiên map song song với máy tính cluster Sau giai đoạn có tập hợp nhiều cặp (key, value) thuộc kiểu (k2, v2) gọi cặp (key, value) trung gian MR nhóm cặp theo key, cặp (key, value} trung gian có k2 nằm nhóm trung gian Giai đoạn hai MR áp dụng hàm reduce (mà người dùng MR viết) vào nhóm trung gian Một cách hình thức, hàm mô tả sau: reduce(k2, list (v2)) -> list(v3) Trong k2 key chung nhóm trung gian, list(v2) tập values nhóm, list(v3) danh sách giá trị trả Reduce thuộc kiếu đữ liệu v3 Do Reduce áp dụng vào nhiều nhóm trung gian độc lập nhau, chúng lại lần chạy song song với Ví dụ MR đếm từ (Tiếng Anh) Rõ ràng toán quan trọng mà search engine phải làm Nếu có vài chục files dễ rồi, nhớ ta có nhiều triệu hay chí nhiều tỉ files phân bố cluster nhiều nghìn máy tính Ta lập trình MR cách viết hàm với pseudo-code sau: void map(String name, String document) : // name: document name // document: document contents for eạach word w in document: EmitTntermediate(w, ”1"); void reduce(String word, Iterator partialCounts) : // word: a word // partialCounts: a list of aggregated partlal counts int result = 0; for each pc in partialCounts: result += Parselnt(pc); Emit(AsString(result)): Chỉ với hai primitives này, lập trình viên có nhiều Flexibility để phân tích xử lý khối liệu khống lồ MR dùng để làm nhiều việc khác nhau, ví dụ Distributed Grep, Distributed Sort, Web Link-graph Reversal, Term-vector Per Host, Web Access Log Stats, Inverted Index Construction, Document Clustering, Machine Learning, Statistical Machine Translation, Large-scale Graph Computation IV Hệ thống tệp phân tán Hadoop Các vấn đề Hadoop giải • Hadoop có khả làm việc với khối lượng liệu vơ lớn • Hầu hết nguồn liệu có khả xử lý môi trường dạng phân tán, đồng lưu trữ nhiều phần cứng khác • Hadoop sở hữu khả băng thông lưu trữ phần cứng vật lý kho liệu có giới hạn cho phép Chính vậy, cần quản lý nâng cấp cho kịp thời Hướng giải Hadoop • Thực nhiệm vụ quản lý file phân tán: HDFS (Hadoop Distributed File System) giao nhiệm vụ chia nhỏ kho liệu thành nhiều phần khác liệu quản lý cho có hệ thống • Mơ hình MapReduce: Đây mơ hình quen thuộc Hadoop Nó phân cơng thực chia nhỏ task thành nhiều phần khác để dễ dàng xử lý Những task xử lý song song dựa Node CPU khác đồng với máy chủ quản lý Master Node V Hadoop hoạt động nào? Giai đoạn Một user hay ứng dụng submit job lên Hadoop (hadoop job client) với yêu cầu xử lý thông tin bản: 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 Khi “chạy Hadoop” có nghĩa chạy tập trình – Daemon, chương trình thường trú, máy chủ khác mạng bạn Những trình có vai trị cụ thể, số tồn máy chủ, số tồn nhiều máy chủ VI Ưu điểm Hadoop? Các điểm thuận lợi dùng Hadoop: • Hadoop có khả thêm nhiều node thay đổi cấu hình chúng cách dễ dàng • Các doanh nghiệp khơng cần phải đầu tư nhiều vào phần cứng mạnh đặc biệt chạy Hadoop Nhờ vậy, bạn tiết kiệm tối đa chi phí đầu tư ban đầu • Hadoop có khả xử lý hầu hết kho liệu có cấu trúc khơng có cấu trúc cách dễ dàng • Trong suốt trình hoạt động node hệ thống bị lỗi tảng Hadoop tự động di chuyển sang dạng node dự phòng khác Nhờ mà hệ thống hoạt động xun suốt ổn định • Hadoop mã nguồn mở, điều giúp tương thích nhiều cấu hình platform khác VII Demo cài đặt Hadoop+ Vào https://hadoop.apache.org/ để tải hadoop + Cài JAVA: Hadoop yêu cầu tối thiếu java 1.5.x Tuy nhiên , 1.6.x khuyến khích sử dụng cho hadoop 10 Tệp hdfs-site.xml nên chỉnh sửa Tệp mapred-site.xml nên chỉnh sửa : Tệp Yarn-site.xml nên chỉnh sửa 20 Tệp workers nên chỉnh sửa 21 + Tạo New folder có tên data Trong data tạo tiếp New folder datanode, namenode, temp 22 + Tạo thư mục có tên local Tải giải nén winutils-master Winutils-master cung cấp tiện ích dòng lệnh cho Hadoop Windows o o File System operation equivalent to HDFS - Fs Shell Hdfs Task and service operation Nó hoạt động với hadoop.dll để có quyền truy cập cục vào hệ thống tệp cục 23 Ở sử dụng 3.1.3 NHƯNG winutils-master khơng có 3.1.3 nên tụi sử dụng 3.1.2 nên sử dụng