Phân tích hiệu năng của kiến trúc tính toán song song trên nền Hadoop Framework

5 22 0
Phân tích hiệu năng của kiến trúc tính toán song song trên nền Hadoop Framework

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

Thông tin tài liệu

Bài viết sẽ đề xuất giải pháp sử dụng kiến trúc tính toán song song Hive trên nền Hadoop cho bài toán xử lý luồng gói tin trong mạng nhằm phát hiện sự có mặt của Virus đồng thời phân tích và đưa ra một số biện pháp cải tiến hiệu năng cho hệ thống tính toán.

ISSN 2354-0575 PHÂN TÍCH HIỆU NĂNG CỦA KIẾN TRÚC TÍNH TOÁN SONG SONG TRÊN NỀN HADOOP FRAMEWORK Nguyễn Minh Quý, Hồ Khánh Lâm, Nguyễn Xuân Trường, Nguyễn Đình Hân, Nguyễn Văn Hậu, Đỗ Anh Tuấn, Phạm Quốc Hùng Trường Đại học Sư phạm Kỹ thuật Hưng Yên Ngày tòa soạn nhận báo: 08/04/2019 Ngày phản biện đánh giá sửa chữa: 07/05/2019 Ngày báo duyệt đăng: 16/05/2019 Tóm tắt: Kiến trúc tính tốn song song dựa hệ thống cụm máy tính sử dụng Hadoop framework vài năm trở lại nhận quan tâm lớn khả tính tốn mở rộng hệ thống thuận lợi dễ dàng, đặc biệt xử lý liệu cực lớn lên tới hàng Tera-byte hay chí Peta-byte Tuy nhiên, hiệu kiến trúc phụ thuộc vào nhiều yếu tố cài đặt thuật toán, tối ưu hóa câu lệnh HiveQL, kiến trúc cluster, v.v… Bài báo đề xuất giải pháp sử dụng kiến trúc tính tốn song song Hive Hadoop cho tốn xử lý luồng gói tin mạng nhằm phát có mặt Virus đồng thời phân tích đưa số biện pháp cải tiến hiệu cho hệ thống tính tốn Từ khóa: Hadoop, big data, parallel processing, performance analysis, tính tốn song song I GIỚI THIỆU Trong lĩnh vực phân tích thơng tin di chuyển mạng (Network Traffic), phương pháp giám sát dựa luồng (Flow) phương pháp sử dụng rộng rãi Việc phân tích luồng giúp chúng ta: phát có mặt Virus, cơng DDoS, phát cân tải, mức độ sử dụng, v.v… Lý người ta sử dụng phương pháp khơng vào phân tích nội dung gói tin (Packet Content) mà vào phân tích thơng tin cơng khai liên quan đến luồng gói tin đó, ví dụ như: Địa nguồn, địa đích, cổng nguồn, cổng đích, loại giao thức, kích thước gói tin, v.v… Các thơng tin bắt (capture) router công cụ phần mềm theo dõi chun dụng Một số cơng cụ bắt gói tin dùng phổ biến [1,2,3] Tuy nhiên, công cụ phân tích theo phương pháp truyền thống gặp trở ngại lớn lưu lượng gói tin mạng lớn, lớn tới hàng Giga-byte chí hàng Tera-byte, Peta-byte tùy theo quy mơ mức độ sử dụng mạng Ví dụ [4], trung bình ngày, dung lượng thơng tin bắt vào khoảng 40 GB Với dung lượng lớn này, công cụ hành gần khơng thể phân tích trạm xử lý đơn lẻ Gần đây, hướng tiếp cận việc xử lý liệu lớn (big data) song song phân tán hóa q trình xử lý lưu trữ sử dụng Hadoop Framework Hadoop phát triển Google, Yahoo, Facebook,… cho kết khả quan Theo kết đánh giá năm 2013,… 24 Hadoop xếp 102.5 TB 4.328s với 2100 nodes [5] Trong báo này, chúng tơi đưa mơ hình xử lý luồng gói tin tảng Hadoop Framework phần II Phần III đề cập tảng khác Hive Framework [6] phát triển Hadoop để làm đơn giản hóa tương tác nhà phát triển Hadoop, sử dụng câu lệnh tương tác giống truy vấn SQL quen thuộc Phần IV đề xuất cách làm tăng hiệu xử lý kết nối bảng liệu Hive hàm tự định nghĩa Phần V tiến hành thử nghiệm đánh giá đề xuất đưa phần IV chứng minh tính hiệu hiệu hệ thống II XÂY DỰNG MƠ HÌNH XỬ LÝ LUỒNG GĨI TIN Luồng gói tin (Network Flow) Trong môi trường mạng, trạm trao đổi với cách gửi gói tin, gói tin ngồi nội dung bên ln kèm theo thơng tin định tuyến địa nguồn, địa đích, cổng nguồn, cổng đích, kích thước gói tin, kiểu gói tin, thời gian, loại giao thức sử dụng, v.v… Các thơng tin hồn tồn bắt phần mềm giám sát mạng Wireshark [6], TcpDump,… thiết bị phần cứng chuyên dụng [7] router Cisco đời có tính gọi “Flow Export” [8] Mơ hình xử lý Dưới mơ hình đề xuất cho việc bắt xử lý luồng gói tin, kết hợp Router Hadoop Khoa học & Công nghệ - Số 22/Tháng - 2019 Journal of Science and Technology ISSN 2354-0575 framework Tại đây, gói tin qua Router bắt lại Export tới địa đích cấu hình trước Các luồng gói tin lưu xử lý hệ thống Hadoop Kết xử lý hệ thống Hadoop kết xuất file text Hadoop Framework Hadoop [9] hệ thống cho phép lưu trữ liệu hệ thống file phân tán HDFS (Hadoop Distrbuted File System) nút (Node) xử lý liệu thơng qua framework MapReduce MapReduce có hai hàm hàm Map (Mapping) hàm Reduce Hai hàm người dùng viết lại tùy thuộc vào toán cụ thể Tuy nhiên, việc tùy biến sử dụng hàm lúc dễ dàng Vì vậy, để thuận tiện, Framework khác Hive [10] phát triển đóng vai trị trung gian nhà phát triển Hadoop nhằm đơn giản hóa việc viết hai hàm Map Reduce Nhà phát triển khai thác dễ dàng hệ thống Hadoop thông qua câu lệnh HiveQL với cú pháp tương tự ngôn ngữ truy vấn SQL III PHÂN TÍCH LUỒNG GĨI TIN VÀ PHÁT HIỆN VIRUS VỚI HIVE FRAMEWORK Phát có mặt Virus thơng qua phân tích luồng gói tin Nhờ vào việc phân tích thơng tin luồng gói tin, người ta hồn tồn đưa thơng tin có ích, như: Phát có mặt Virus, phát công DDoS, mức độ tải trạm hay báo cáo hữu ích khác cho người quản trị mạng 1.1 Phát có mặt Virus Thơng thường, ứng dụng chạy môi trường mạng sử dụng cổng định sẵn (80 cho web, 21 cho FTP, 23 cho Telnet, 110 cho POP3…) Hình Mơ hình xử lý luồng gói tin Khoa học & Cơng nghệ - Số 22/Tháng - 2019 Như vậy, kiểm tra gói tin có địa cổng đích khác với cổng định sẵn có khả gói tin chứa Virus Ví dụ: Virus WinCrash dùng cổng 3024,Virus MicroSpy dùng cổng 3031, Virus Delta Remote Access dùng cổng 3119 1.2 Phát công từ chối dịch vụ - DoS Bản chất cơng từ chối dịch vụ DoS việc nhiều máy tính gửi yêu cầu dịch vụ tới máy định Nói cách khác luồng gói tin có cổng nguồn giống có cổng đích giống Như vậy, để phát xem có kiểu cơng hay khơng kiểm tra xem tổng số trạm (địa nguồn) truy cập đến cổng địa đích có vượt qua ngưỡng cho phép hay khơng? Nếu số lớn q ngưỡng cho phép kết luận bị cơng DoS Phân tích luồng gói tin với HiveQL Với HiveQL, việc xử lý yêu cầu đơn giản câu lệnh HiveQL Giả thiết thông tin luồng lưu trữ bảng Hive tblFlows(SrcIP, DstIP, SrcPort, DstPort) danh sách Virus biết lưu trữ bảng tblVirus(VirusPort, VirusName) - Khi đó, để phát có mặt Virus luồng, dùng câu lệnh (i): SELECT DISTINCT SrcIP,DstIP, SrcPort, DstPort, Virusname FROM tblFlows F JOIN tblVirus V ON F.SrcPort=V.VirusPort - Để phát có cơng DoS hay khơng, dùng câu lệnh sau để đưa trạm sử dụng nhiều cổng (Thread) để truy xuất vào trạm đích Từ kết kết xuất theo thứ tự giảm dần biết máy nguồn khả nghi công DoS (ii): SELECT SrcIP, DstIP, DstPort, Count(*) C FROM tblFlows GROUP BY SrcIP, DstIP, DstPort ORDER BY C DESC LIMIT 100; IV ĐỀ XUẤT CẢI TIẾN HIỆU NĂNG BẰNG HÀM TỰ ĐỊNH NGHĨA Hàm tự định nghĩa HiveQL Ở đây, kích thước bảng tblFlows thường lớn (big huge), có hàng triệu chí hàng tỉ ghi, xuất câu lệnh kết nối với bảng khác tốc độ xử lý chậm tiêu tốn Journal of Science and Technology 25 ISSN 2354-0575 nhiều tài nguyên khiến cho hiệu chung toàn hệ thống giảm đáng kể Thật may mắn HiveQL cung cấp chế cho phép người dùng tự định nghĩa số hàm cho phép gọi hàm câu lệnh HiveQL, kiểu như: SELECT * FROM tblFlow WHERE MyFunction(DstPort) = 80; Trong đó: MyFunction hàm người dùng tự định nghĩa, viết ngôn ngữ Pert, Java… Cách định nghĩa gọi hàm tự định nghĩa tham khảo [11] Cải tiến hiệu với hàm người dùng tự định nghĩa Khi thực kết nối hai bảng trên, giả sử kích thước bảng lớn chứa N ghi bảng nhỏ chứa k ghi, chất, Hive quét toàn N ghi với ghi nhận so sánh với k ghi nhỏ Như số phép so sánh mà Hive thực câu lệnh SELECT N x k phép Do đó, với số N cực lớn dù k có nhỏ (cỡ hàng trăm nghìn ghi) số phép so sánh vơ lớn Để giảm số phép so sánh này, phương án mà báo đề xuất giảm thời gian so sánh ghi nhận N ghi với k ghi bảng nhỏ thơng qua chế hàm tự định nghĩa, việc so sánh thời gian số O(1) Lý thực điều k nhỏ nên ta hồn tồn đưa vào cấu trúc bảng băm (Hash Table) vậy, thời gian tìm kiếm so sánh O(1) Các bước thực sau: Bước 1: Xây dựng lớp (Class) Java Bước 2: Nạp bảng nhỏ chứa k ghi vào cấu trúc Hash hàm khởi tạo Bước 3: Cài đặt (Overload) hàm evaluate Java, nhận tham số giá trị khóa cần kiểm tra, trả true thấy khóa tồn Hash false ngược lại Bước 4: Khai báo hàm với tên bí danh (ví dụ IfExistInTable) Hive sử dụng Như vậy, câu lệnh kiểm tra xuất Virus trên: SELECT DISTINCT SrcIP,DstIP, SrcPort, DstPort, Virusname FROM tblFlows F JOIN tblVirus V ON F.SrcPort=V.VirusPort Có thể viết lại sau mà không cần kết nối bảng sau: 26 SELECT DISTINCT SrcIP,DstIP, SrcPort, DstPort, Virusname FROM tblFlows WHERE IfExistInTable(SrcPort) Theo cách này, ta áp dụng cho trường hợp kết nối bảng, bảng v.v… V THỬ NGHIỆM, ĐÁNH GIÁ Môi trường thử nghiệm Trong nghiên cứu này, tiến hành thử nghiệm: + Thử nghiệm thứ thấy khả xử lý liệu lớn hệ thống xử lý Hadoop so với công cụ thơng thường, ví dụ: Flow Tools + Thử nghiệm thứ hai cho thấy hiệu cải tiến rõ rệt phương án đề xuất so với tốc độ xử lý thơng thường có kết nối bảng câu lệnh HiveQL Môi trường phần cứng phần mềm dùng thử nghiệm: • Hadoop cluster: 1,2,4,8 nodes; Data node: Intel Xeon@2.4GHz, 12 GB RAM • Flow-tools: Version 1.6.8; Kết thử nghiệm 2.1 Kết thử nghiệm Flow Tools Hadoop Đưa danh sách cổng đích (Destination Port) sử dụng nhiều băng thơng (nhiều packets nhất) – u cầu cịn gọi “Destination Port Break Down”: - Câu lệnh công cụ Flow tools là: flow-stat –f5 –S2 < LogFile.flow - Câu lệnh HiveQL là: SELECT dstPort, count(*), sum(packets) P FROM FlowLog GROUP BY dstPort ORDER BY P desc; Hình So sánh khả xử lý cơng cụ hành với Hadoop Khoa học & Công nghệ - Số 22/Tháng - 2019 Journal of Science and Technology ISSN 2354-0575 2.2 Kết thử nghiệm dùng kết nối thông thường (gọi Common Join) kết nối thông qua hàm tự định nghĩa (gọi UDF Join) sử dụng cụm Cluster nút nút xử lý Hình So sánh tốc độ xử lý kết nối bảng Cluster nút Hình So sánh tốc độ xử lý kết nối bảng Cluster nút Đánh giá Ở Hình cho thấy, liệu nhỏ cơng cụ xử lý máy tính đơn lẻ Flow Tools cho hiệu tốt đưa kết gần tức Tuy nhiên, liệu trở lên lớn (trên 150 triệu ghi) cơng cụ khơng có khả xử lý bị treo Hình Hình 4, cho thấy hiệu xử lý tăng lên rõ rệt ta thực kết nối bảng theo đề xuất báo so với kết nối thông thường Thời gian tăng lên chậm kích thước đầu vào tăng mạnh Trong đó, kết nối thơng thường thời gian tăng đột biến đầu vào đạt ngưỡng định Hình cho thấy tính hiệu mặt tài nguyên nhớ sử dụng kết nối thông thường so với kết nối dùng hàm tự định nghĩa theo đề xuất báo VI KẾT LUẬN Bài báo cho thấy rõ khả áp dụng tảng Hadoop việc xử lý liệu lớn hướng hứa hẹn có nhiều ưu so với cơng cụ sẵn có Đặc biệt, kết hợp với Hive khả khai thác sức mạnh Hadoop tăng lên giải nhiều tốn thực tế, việc phân tích luồng gói tin mạng phục vụ cơng tác bảo mật, quản trị mạng ứng dụng tiêu biểu Đề xuất báo việc loại bỏ kết nối thơng qua chế hàm tự định nghĩa áp dụng để xử lý trường hợp có kết nối bảng, bảng v.v… ngồi áp dụng để xây dựng câu lệnh quen thuộc IN, NOT IN SQL HiveQL chưa hỗ trợ Hình Tài nguyên nhớ sử dụng UDF Join Common Join Tài liệu tham khảo [1] http://www.tcpdump.org [2] http://www.splintered.net [3] http://www.packet-sniffer.net/ [4] http://www.fukuda-lab.org/mawilab [5] http://sortbenchmark.org/ [6] www.wireshark.org [7] http://www.ti.com/tool/packet-sniffer [8] https://supportforums.cisco.com/docs/DOC-25009 [9] http://hadoop.apache.org Khoa học & Công nghệ - Số 22/Tháng - 2019 Journal of Science and Technology 27 ISSN 2354-0575 [10] http://hive.apache.org [11] http://www.cisco.com/web/go/netflow [12] L Deri, nProbe, “an Open Source NetFlow Probe for Gigabit Networks” TERENA Networking Conference, May 2003 [13] J Dean, MapReduce, “Simplified Data Processing on Large Cluster”, OSDI, 2004 [14] Youngseok Lee, Wonchul Kang, “An Internet Traffic Analysis Method with MapReduce” IEEE/IFIP Network Operations and Management Symposium Workshops, 2010 [15] J Dean, S Ghemawat, “MapReduce: Simplified Data Processing on Large Clusters,” In Proc of the 6th Symposium on Operating Systems Design and Implementation, San Francisco CA, Dec 2004 [16] A Gates, O Natkovich, S Chopra, P Kamath, S Narayanam, C Olston, B Reed, S Srinivasan, U Srivastava “Building a High-Level Dataflow System on top of MapReduce: The Pig Experience,” In Proc of Very Large Data Bases, vol no 2, 2009, pp 1414–1425 [17] S Ghemawat, H Gobioff, S Leung “The Google File System,” In Proc of ACM Symposium on Operating Systems Principles, Lake George, NY, Oct 2003, pp 29–43 [18] T White, Hadoop, “The Definitive Guide” O’Reilly Media, Yahoo! Press, June 5, 2009 PERFORMANCE ANALYSIS OF PARALLEL COMPUTING ARCHITECTURE USING HADOOP FRAMEWORK Abstract: Parallel computing architecture based on PC cluster systems using Hadoop Framework in the past few years received great attention because of the computing power and expansion of the system is quite favorable and easy, especially is in handling extremely large data amounting to Tera-bytes or even Peta-bytes However, the performance of this architecture depends on many factors, such as installing algorithm, HiveQL queries optimization, cluster architectures, etc This paper proposes solutions using parallel computing architecture Hive on Hadoop Framework for processing network packet flows in order to detect the presence of viruses and analyzed and givea number of solutions to improve performance of the computing system Keywords: Hadoop, HiveQL, Parallel processing, packet flow analysis, performance analysis 28 Khoa học & Công nghệ - Số 22/Tháng - 2019 Journal of Science and Technology ... tự ngôn ngữ truy vấn SQL III PHÂN TÍCH LUỒNG GĨI TIN VÀ PHÁT HIỆN VIRUS VỚI HIVE FRAMEWORK Phát có mặt Virus thơng qua phân tích luồng gói tin Nhờ vào việc phân tích thơng tin luồng gói tin,... 2354-0575 framework Tại đây, gói tin qua Router bắt lại Export tới địa đích cấu hình trước Các luồng gói tin lưu xử lý hệ thống Hadoop Kết xử lý hệ thống Hadoop kết xuất file text Hadoop Framework Hadoop. .. phân tán HDFS (Hadoop Distrbuted File System) nút (Node) xử lý liệu thơng qua framework MapReduce MapReduce có hai hàm hàm Map (Mapping) hàm Reduce Hai hàm người dùng viết lại tùy thuộc vào toán

Ngày đăng: 25/04/2021, 10:39

Từ khóa liên quan

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

Tài liệu liên quan