Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
251,59 KB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN k{ss&ss{k BÀI TẬP LỚN MƠN: XỬ LÝ VÀ TÍNH TỐN SONG SONG Đề tài: Tìm hiểu cơng nghệ Hadoop xây dựng mơ hình song song hóa thuật tốn Kruskal GVHD: Trần Đình Tồn Nhóm: TP Hồ Chí Minh, ngày 23 tháng 08 năm 2021 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN k{ss&ss{k BÀI TẬP LỚN MƠN: XỬ LÝ VÀ TÍNH TỐN SONG SONG Đề tài: Tìm hiểu cơng nghệ Hadoop xây dựng song song hóa thuật tốn Kruskal GVHD: TRẦN ĐÌNH TỒN NHĨM Họ tên thành viên: Đặng Kim Ngân (TN)_2001190172 Trần thị Mỹ Tâm_2001190247 Thành phố Hồ Chí Minh, ngày 04 tháng 09 năm 2021 LỜI NÓI ĐẦU Quá trình thực đồ án, thời gian dài gây nhiều khó khăn với hai sinh viên chưa có kinh nghiệm chúng em Tuy vậy, suốt thời gian có giúp đỡ tận tình thầy Trần Đình Tồn Vì vậy, trang đầu này, chúng em muốn dành lời cám ơn sâu sắc tới thầy Chúng em cố gắng để hồn thành tốn đồ án, khơng tránh khỏi sai sót, em mong nhận thông cảm, bảo Thầy bạn Chúng em xin chân thành cảm ơn! Mục Lục Hadoop gì? 1.1 Kiến trúc Hadoop 1.2 Hadoop hoạt động nào? Giai đoạn 1: .6 Giai đoạn 2: .7 Giai đoạn 3: .7 1.3 Ưu điểm Hadoop 1.4 Chức nhiệm vụ Hadoop: 1.5 Kiến trúc Hadoop: .8 Module 1: Hadoop Distributed File System (HDFS) Module 2: Hadoop MapReduce Module 3: Hadoop Common Module 4: Hadoop YARN Lý chọn đề tài Trong tốn phân tích hệ gen người hay sinh vật bậc cao địi hỏi xử lý liệu có kích thước nhiều terabyte để mã hóa 25.000 gen với số lượng liệu mức pentabyte Hay lĩnh vực sinh học phân tử tin sinh học Thực tế, có nhiều tốn cần phải thực khối lượng tính tốn lớn nhiều liệu đầu vào Các tốn gặp nhiều lĩnh vực, từ tìm kiếm, truy hồi thơng tin đến tốn tin sinh học Ví dụ máy tìm kiếm (search engine) lớn Google Những vấn đề xử lý ngôn ngữ tự nhiên, nhận dạng, xử lý ảnh ba chiều, dự báo thời tiết đòi hỏi phải xử lý liệu với tốc độc cao, với khối lượng liệu lớn Để đáp ứng u cầu tính tốn xử lý lớn vậy, việc tính tốn máy tính riêng lẻ khơng đáp ứng yêu cầu Do cần có hệ thống máy tính mạnh mẽ để đáp ứng yêu cầu thực tế Ngày nhiều xử lý tăng nhanh tốc độ, giới hạn vật lý nên khả tính tốn chúng khơng thể tăng Vì tăng khả xử lý song song chúng muốn tăng khả tính tốn hệ thống máy tính Nhiều hệ thống đơn xử lý khơng đám ứng yêu cầu xử lý thời gian, phải xử dụng hệ thống đa xử lý đòi hỏi phải xử lý song song Song song hóa đẩy nhanh tốc độ thưc thi tiến trình thực nhiều mức, ví vật lý, thứ hai ứng dụng Năm 2004, Google giới thiệu mơ hình tốn (ở mức ứng dụng) MapReduce để hỗ trợ tính tốn phân tán tập liệu lớn cụm nhiều máy tính Apache Hadoop, Qizmt, Skynet Greenplum, làm cho MapReduce trở nên phổ biến theo Infoworld, MapReduce cơng nghệ doanh nghiệp có ảnh hưởng lớn (năm 2009) Trong phạm vi tập lớn, chúng em tìm hiểu Hadoop, giới thiệu thuật tốn Kruskal (thuật tốn trong lý thuyết đồ thị để tìm cây bao trùm nhỏ nhất của một đồ thị liên thơng có trọng số) Giới thiệu chung Có bạn băn khoăn lượng liệu công ty công nghệ lớn Facebook, Amazon, Google, thu thập ngày xử lý mà đảm bảo tốc độ truy cập cách nhanh chóng hiệu Big Data lĩnh vực màu mỡ ngành công nghệ Khối lượng liệu khổng lồ mà Big Data mang đến đóng vai trị vơ to lớn Big Data giúp dự đốn thị trường, phân tích nhu cầu, xu hướng, dự đốn dịch bệnh hay chí xác định điều kiện giao thơng tức thời Vì mang số lượng thơng tin lớn nên Big Data xử lý công cụ truyền thống Ngành công nghệ sử dụng cơng cụ phân tích Big Data chun dụng để xử lý lĩnh vực khó nhằn Một số Hadoop Trong hình học đầu kỷ 19 Jakob Steiner từ Berlin thiết lập nhiệm vụ để kết nối ba làng để chiều dài họ ngắn Sau đó, ơng tóm tắt vấn đề: cần thiết để tìm điểm mặt phẳng, khoảng cách từ đến n điểm khác thấp Trong kỷ 20, tiếp tục làm việc chủ đề Đó định để có vài điểm kết nối chúng theo cách mà khoảng cách chúng ngắn nhất, tất điều trường hợp đặc biệt vấn đề nghiên cứu Thuật toán Kruskal đề cập đến thuật tốn "tham lam" (cịn gọi gradient) Bản chất người - chiến thắng cao bước Khơng phải lúc nào, thuật tốn "tham lam" cung cấp giải pháp tốt cho vấn đề Có lý thuyết, cho thấy ứng dụng họ với nhiệm vụ cụ thể mà họ cung cấp cho giải pháp tối ưu Đây lý thuyết matroids Thuật toán Kruskal đề cập đến vấn đề Trong này, làm rõ cơng nghệ Hadoop song song hóa thuật toán Kruskal Từ cách cài đặt Hadoop, giới thiệu thuật tốn Kruskal, cách sử dụng hadoop song song hóa tốn với thuật tốn Kruskal, sau tiến hành cài đặt demo, qua đánh giá thời gian thực thi, độ xác thuật tốn vận hành chúng Hadoop gì? Hadoop là 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 Nói đơn giản cách khác giúp xếp liệu cho user dễ dàng sử dụng 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 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 chia nhỏ toán lớn thành khối liệu, phân phối nhân rộng phần cứng cluster để xử lý nhanh 1.1 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: Module 1: Hadoop Distributed 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) là 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 Module 2: 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ụ (taskstatus) để 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 Module 3: 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 Module 4: Hadoop YARN Quản lý tài nguyên hệ thống lưu trữ liệu chạy phân tích 1.2 Hadoop hoạt động nào? Giai đoạn 1: 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: Truyền liệu lên server(input) để bắt đầu phân tán liệu đưa kết (output) Các liệu chạy thơng qua hàm map reduce o Map: quét qua toàn liệu phân tán chúng thành liệu o Reduce: thu thập liệu lại xếp lại chúng 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 2: Hadoop job client submit job (file jar, file thực thi) bắt đầu lập lịch làm việc (JobTracker) đưa job vào hàng đợi Sau tiếp nhận yêu cầu từ JobTracker, server cha (master) phân chia công việc cho server (slave) Các server thực job giao trả kết cho server cha Giai đoạn 3: TaskTrackers dùng để kiểm tra đảm bảo MapReduce hoạt động bình thường kiểm tra kết nhận (quá trình output) 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ủ Các daemon bao gồm: NameNode DataNode SecondaryNameNode JobTracker TaskTracker Hình 1: Tương tác JobTracker TaskTracker Sau client gọi JobTracker bắt đầu công việc xử lý liệu, phân vùng JobTracker làm việc giao nhiệm vụ Map Recude khác cho TaskTracker cluster Hình 2: Cấu trúc liên kết nhóm Hadoop điển hình Đó kiến trúc master/slave NameNode JobTracker Master DataNode & TaskTracker slave 1.3 Ư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 Robus and Scalable – Có thể thêm node thay đổi chúng cần Affordable and Cost Effective – Không cần phần cứng đặc biệt để chạy Hadoop Adaptive and Flexible – Hadoop xây dựng với tiêu chí xử lý liệu có cấu trúc khơng cấu trúc Highly Available and Fault Tolerant – Khi node lỗi, tảng Hadoop tự động chuyển sang node khác 1.4 Chức nhiệm vụ Hadoop: Xử lý làm việc khối lượng liệu khổng lồ tính Petabyte Xử lý mơi trường phân tán, liệu lưu trữ nhiều phần cứng khác nhau, yêu cầu xử lý đồng Các lỗi xuất thường xuyên Băng thông phần cứng vật lý chứa liệu phân tán có giới hạn 1.5 Các kiểu liệu mà Hadoop hỗ trợ: Tên lớp Miêu tả BooleanWritable Lớp bao (wapper) biến kiểu Boolean chuẩn ByteWritable Lớp bao biến kiểu byte đơn DoubleWritable Lớp bảo biến kiểu Double FloatWritable Lớp bao biến kiểu Float IntWritable Lớp bao biến kiểu Integer LongWritable Lớp bao biến kiểu Long Text Lớp bao biến kiểu văn định dạng UTF-8 NullWritable Lớp để giữ chỗ mà key value không cần thiết Bảng 1: Danh sách kiểu liệu Hadoop 1.6 Mapper: Để tạo Mapper, lớp implements từ interface Mapper kế thừa từ lớp MapReduceBase[5] Lớp MapReduceBase, đóng vai trị lớp sở cho mapper reducer Nó bao gồm hai phƣơng thức hoạt động hiệu nhƣ hàm khởi tạo hàm hủy lớp: SVTH: Vũ Minh Ngọc D07CNPM1 13 Chƣơng Lập trình với mơ hình tốn MapReduce Hadoop Đồ án tốt nghiệp Đại học void configure(JobConf job) – hàm nay, bạn trích xuất thơng số cài đặt file XML cấu hình lớp ứng dụng bạn Gọi hàm trƣớc xử lý liệu void close() – Như hành động cuối trƣớc chấm dứt nhiệm vụ map, hàm nên đƣợc gọi kết thúc – kết nối sở liệu, file mở Giao diện Mapper chịu trách nhiệm cho bước xử lý liệu Nó sử dụng Java Generics mẫu Mapper chỗ mà lớp key lớp value mà implements từ interface WriteableComparable Writable Phương pháp để xử lý cặp (key/value) nhƣ sau: void map(K1 key, V1 value, OutputCollector output, Reporter reporter) throws IOException Phương thức tạo danh sách (có thể rỗng) cặp (K2, V2) từ cặp đầu vào (K1, V1) OuputCollector nhận kết từ đầu trình mapping, Reporter cung cấp tùy chọn để ghi lại thông tin thêm mapper nhƣ tiến triển công việc Hadoop cung cấu vài cài đặt Mapper hữu dụng Bạn thấy vài nhƣ 3.2 sau: Tên lớp Miêu tả IdentityMapper Với cài đặt Mapper ánh xạ đầu vào trực tiếp vào đầu InverseMapper Với cài đặt Mapper đảo ngƣợc cặp (K/V) RegexMapper Với cài đặ Mapper sinh cặp (match, 1) cho ánh xạ biểu thức phù hợp TokenCountMapper Với cài đặt Mapper sinh cặp (token, 1) giá trị đầu vào tokenized Bảng 2: Một vài lớp thực Mapper định nghĩa trước Hadoop ... HỌC CÔNG NGHIỆP THỰC PHẨM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN k{ss&ss{k BÀI TẬP LỚN MƠN: XỬ LÝ VÀ TÍNH TỐN SONG SONG Đề tài: Tìm hiểu cơng nghệ Hadoop xây dựng song song hóa. .. làm rõ công nghệ Hadoop song song hóa thuật tốn Kruskal Từ cách cài đặt Hadoop, giới thiệu thuật toán Kruskal, cách sử dụng hadoop song song hóa tốn với thuật tốn Kruskal, sau tiến hành cài đặt... vấn đề Có lý thuyết, cho thấy ứng dụng họ với nhiệm vụ cụ thể mà họ cung cấp cho giải pháp tối ưu Đây lý thuyết matroids Thuật toán Kruskal đề cập đến vấn đề Trong này, làm rõ công nghệ Hadoop song