Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
3,2 MB
Nội dung
ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG CẢNH BÁO TRÊN LUỒNG TIN TUYỂN DỤNG THU THẬP TỪ INTERNET: KHỐI CÔNG VIỆC SỐ NGUYỄN VĂN TIẾN tien.nv173401@sis.hust.edu.vn Ngành Công nghệ thông tin Chuyên ngành Khoa học máy tính Giảng viên hướng dẫn: TS Trần Việt Trung Trường: Công nghệ Thông tin Truyền thông – Đại học Bách khoa Hà Nội HÀ NỘI, 12/2021 Chữ ký GVHD ĐỀ TÀI TỐT NGHIỆP Thông tin sinh viên Họ Tên: NGUYỄN VĂN TIẾN Điện thoại liên lạc: 0966288130 Email: tien.nv173401@sis.hust.edu.vn Lớp: KHMT.03 – K62 Hệ đào tạo: Kỹ sư quy Đồ án tốt nghiệp thực tại: Trường Công nghệ Thông tin Truyền thông - Đại học Bách khoa Hà Nội Thời gian thực đồ án: Học kỳ 20211 Mục đích nội dung ĐATN Thiết kế, xây dựng triển khai hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập từ internet Các nhiệm vụ cụ thể ĐATN • Xây dựng mô-đun xử lý, quản lý liệu hỗ trợ truy vấn liệu việc làm • Thiết kế xây dựng giao diện website hỗ trợ người dùng tương tác với hệ thống Lời cam đoan sinh viên Em tên Nguyễn Văn Tiến xin cam đoan đề tài ĐATN: “xây dựng hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập từ internet: Khối công việc số 1” cơng trình nghiên cứu độc lập hướng dẫn giáo viên hướng dẫn: TS Trần Việt Trung Ngồi khơng có chép người khác Đề tài, nội dung báo cáo thực tập sản phẩm mà em nỗ lực nghiên cứu trình học tập trường Các số liệu, kết trình bày báo cáo hoàn toàn trung thực, em xin chịu hoàn tồn trách nhiệm, kỷ luật mơn nhà trường đề có vấn đề xảy ra.” Giáo viên hướng dẫn Ký ghi rõ họ tên Lời cảm ơn Chặng đường năm học Bách khoa chuẩn bị tới hồi kết, cảm xúc lúc thật lẫn lộn Vừa vui chinh phục trường tiếng “tạch môn chuyện thường”, vừa tự hào chưa bị “tạch” mơn nơi Để hoàn thành đồ án này, động viên, đóng góp ý kiến từ gia đình, thầy cô bạn bè thiếu sinh viên non trẻ Lời em xin dành lời cảm ơn chân thành đến TS Trần Việt Trung anh Nguyễn Hoàng Long tận tình bảo, hướng dẫn định hướng suốt quãng thời gian em thực đồ án để đồ án hoàn thành cách tốt Con cảm ơn mẹ tần tảo gánh vác trọng trách bố để nuôi ăn học 16 năm Cảm ơn mẹ đặt niềm tin nơi con, quan tâm động viên suốt tháng ngày học tập xa nhà Cảm ơn anh em chí cốt (Bách, Trang, Lim…) mái nhà Hội Sinh viên, người bạn quãng thời gian sinh viên ngắn ngủi Tiếp theo tập thể lớp CNTT11, đồng chí siêu lầy tình cảm, đồn kết làm đánh tan suy nghĩ lên đại học không thân với lớp, danh nghĩa khơng cịn chung lớp chắn cịn mãi anh em Cảm ơn người anh em LamTran Company bên cạnh tơi kì cuối đại học, nhóm tồn người giỏi làm tơi áp lực quý anh em năm học không dài đủ em trải nghiệm quý giá, mối quan hệ mà suốt qng đời cịn lại khơng tìm Suốt hành trình, phần tốt có, phần dở có, quan trọng hết học mang lại Xin cảm ơn Bách khoa, cảm ơn người nơi tạo nên Bách khoa “chất” đến Hy vọng lần bảo vệ đồ án tốt nghiệp diễn thuận lợi, để sau gặp khó khăn, tơi tự tin "Đến Bách Khoa cịn tốt nghiệp ngán việc cả" Xin cảm ơn tất cả! Tạm biệt hẹn gặp lại Hà Nội, ngày 23 tháng 01 năm 2022 Nguyễn Văn Tiến Tóm tắt nội dung đồ án Thị trường việc làm Việt Nam ngày phát triển cách nhanh chóng đa dạng với thời kỳ đổi mới, hội nhập sâu rộng, mở nhiều hội cho người lao động Cùng với, thời đại công nghệ 4.0 có nhiều ứng dụng thực tiễn, người dùng tìm kiếm internet cơng việc ứng với thân Tuy nhiên, thực tế, phận lớn người tìm việc chưa tìm cơng việc phù hợp với nhu cầu, với việc nhiều thời gian, cơng sức để tìm kiếm Để giải vấn đề này, đồ án hướng tới việc xây dựng hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập từ internet Với mục tiêu giảm bớt cơng sức, thời gian cho người tìm việc, đồ án đóng vai trị tảng cho phép người dùng tùy biến, tìm kiếm cách tự động thông tin tuyển dụng Để thực điều này, đồ án sử dụng kiến thức liên quan đến liệu lớn Apache Spark, Apache Kafka công cụ xây dựng website FastAPI, Angular Tuy triển khai quy mô nhỏ kết đạt đồ án phần chứng minh khả giải vấn đề vừa đặt phía Sinh viên thực Ký ghi rõ họ tên MỤC LỤC MỤC LỤC v DANH MỤC HÌNH VẼ vii DANH MỤC BẢNG ix CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề 1.1.1 Thực trạng thị trường tuyển dụng lao động 1.1.2 Website việc làm yourway khó khăn việc tìm kiếm liệu 1.2 Mục tiêu phạm vi đề tài 1.2.1 Mục tiêu đồ án 1.2.2 Phạm vi đề tài 1.3 Định hướng giải pháp 1.4 Bố cục đồ án CHƯƠNG CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 2.1 Hệ thống phân tán 2.2 Nền tảng Spark: tính tốn cụm liệu lớn 2.2.1 Lý thuyết xử lý luồng liên tục 2.2.2 Apache Spark 2.2.3 Giới thiệu Spark Structured Streaming 10 2.3 Nền tảng Kafka: truyền tải thông điệp phân tán 13 2.3.1 Giới thiệu Kafka 13 2.3.2 Mơ hình cấu trúc Kafka 14 2.4 Framework FastAPI: xây dựng hệ thống API 15 2.5 Angular: xây dựng giao diện website 17 CHƯƠNG XÂY DỰNG ỨNG DỤNG WEB TƯƠNG TÁC NGƯỜI DÙNG 18 3.1 Phân tích thiết kế 18 3.1.1 Phân tích ca sử dụng 18 3.1.2 Phân tích quy trình nghiệp vụ 26 3.1.3 Phân tích sơ đồ lớp 28 3.1.4 Thiết kế giao diện mô 29 3.1.5 Lựa chọn kiến trúc phần mềm 31 3.2 Triển khai hệ thống website 32 3.3 Giao diện ứng dụng 33 3.3.1 Giao diện thêm luồng liệu 33 3.3.2 Giao diện quản lý luồng liệu 34 3.3.3 Giao diện quản lý công việc liên tục 35 3.3.4 Các giao diện chức khác 35 CHƯƠNG THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ, XỬ LÝ DỮ LIỆU 38 4.1 Kiến trúc tổng quan hệ thống 38 4.2 Phát triển hệ thống quản lý xử lý liệu 40 4.2.1 Kết nối luồng liệu đầu vào 42 4.2.2 Tạo lược đồ luồng liệu 44 4.2.3 Xử lý truy vấn luồng liệu công việc Spark 47 4.2.4 Chuẩn bị liệu kết để gửi đến người dùng 48 4.3 Triển khai hệ thống quản lý, xử lý liệu 50 4.4 Kết đánh giá 51 CHƯƠNG KẾT LUẬN 55 5.1 Kết luận 55 5.2 Hướng phát triển tương lai 55 TÀI LIỆU THAM KHẢO 56 DANH MỤC HÌNH VẼ Hình 1.1: Lực lượng lao động Việt Nam theo quý, năm 2020 2021 Hình 2.1: Minh họa stream processing Hình 2.2: Thành phần Spark Hình 2.3: Mơ hình liệu Structured Streaming 10 Hình 2.4: Mơ hình hoạt động chương trình Strucuted streaming 11 Hình 2.5: Vai trị Apache Kafka hệ thống 13 Hình 2.6: Mơ hình cấu trúc kafka đơn giản 14 Hình 2.7: Mơ hình cấu trúc kafka chi tiết 14 Hình 2.8: Giao diện quản lý api ứng dụng viết FastAPI 15 Hình 2.9: Kiến trúc angular 17 Hình 3.1: Biểu đồ use case tổng quan hệ thống web (Màu xanh use case sinh viên thực hiện, màu tím use case thực sinh viên Vũ Minh Hiếu) 18 Hình 3.2: Biểu đồ use case thêm luồng liệu 20 Hình 3.3: Biểu đồ use case quản lý cơng việc liên tục 23 Hình 3.4: Biểu đồ use case quản lý luồng liệu 24 Hình 3.5: Biểu đồ use case “Thêm luồng liệu” 26 Hình 3.6: Biểu đồ use case “Thêm luồng liệu” 27 Hình 3.7: Biểu đồ use case “Quản lý luồng liệu” 27 Hình 3.8: Sơ đồ lớp ca sử dụng “Thêm luồng liệu” 28 Hình 3.9: Sơ đồ lớp ca sử dụng “Quản lý công việc liên tục” 28 Hình 3.10: Sơ đồ lớp ca sử dụng “Quản lý luồng liệu” 29 Hình 3.11: Mơ giao diện kết nối sở liệu 29 Hình 3.12: Mơ giao diện thêm luồng liệu 30 Hình 3.13: Mơ giao diện quản lý luồng liệu 30 Hình 3.14: Mơ giao diện quản lý cơng việc liên tục 30 Hình 3.15: Kiến trúc client – server 31 Hình 3.16: Mơ hình MVC (Model – View – Controller) 31 Hình 3.17: Giao diện thêm luồng liệu 33 Hình 3.18: Giao diện quản lý luồng liệu 34 Hình 3.19: Giao diện xem ghi luồng liệu 34 Hình 3.20: Giao diện quản lý công việc liên tục 35 Hình 3.21: Giao diện cấu hình hệ thống 36 Hình 3.22: Giao diện thêm câu truy vấn 36 Hình 3.23: Giao diện quản lý câu truy vấn 37 Hình 4.1: Kiến trúc tổng quan hệ thống quản lý, xử lý liệu (Màu hồng đậm phần chức sinh viên thực hiện, màu vàng phần chức thực sinh viên Vũ Minh Hiếu) 38 Hình 4.2: Kiến trúc mô-đun Công cụ xử lý liệu phân tán 40 Hình 4.3: Vai trò Job Spark hệ thống 40 Hình 4.4: Cách hoạt động Mô-đun Công cụ xử lý liệu phân tán 41 Hình 4.5: Vai trò Kafka hệ thống 42 Hình 4.6: Đoạn mã đọc liệu đầu vào từ Kafka 44 Hình 4.7: Đoạn mã tạo lược đồ liệu công việc Spark 45 Hình 4.8: Đoạn mã tạo tự động lược đồ từ bảng liệu 46 Hình 4.9: Đoạn mã đọc liệu SQL job Spark 48 Hình 4.10: Chuẩn bị liệu kết 48 Hình 4.11: Đoạn mã cấu hình gửi liệu đầu 49 Hình 4.12: Gửi trả liệu đầu 49 Hình 4.13: Thêm luồng liệu cơng việc 51 Hình 4.14: Kết luồng liệu thêm 52 Hình 4.15: Thêm truy vấn 52 Hình 4.16: Kết thêm truy vấn 52 Hình 4.17: Quản lý cơng việc Spark 53 Hình 4.18: Khởi động cơng việc thành cơng 53 Hình 4.19: Kết gửi đến người dùng qua email 54 DANH MỤC BẢNG Bảng 2.1: So sánh FastAPI, Django Flask 16 Bảng 3.1: Đặc tả use case “Thêm luồng liệu” 21 Bảng 3.2: Mô tả trường lược đồ liệu 22 Bảng 3.3: Đặc tả use case “Quản lý công việc liên tục” 24 Bảng 3.4: Đặc tả use case “Quản lý luồng liệu” 25 Bảng 3.5: Chi tiết gói, thư viện cài đặt cho hệ thống 32 Bảng 4.1: Các gói, thư viện cần cho cài đặt hệ thống quản lý, xử lý liệu 50 DANH SÁCH THUẬT NGỮ VÀ TỪ VIẾT TẮT Thuật ngữ Ý nghĩa, mô tả CSDL Cơ sở liệu RDD Resilient Distributed Datasets Tập liệu phân phối có khả phục hồi SQL Structured Query Language Framework Khung làm việc thực hiện, hệ thống cho phép người dùng tùy chỉnh mơ-đun Spark khởi động lại) 4.2.1 Kết nối luồng liệu đầu vào Việc có nhiều luồng liệu đổ vào hệ thống khiến cho việc kiểm soát, quản lý luồng thật khó khăn! Cần phải biết luồng liệu xuất phát từ đâu không bị nhầm lẫn luồng Vấn đề mô-đun “Công cụ truyền tải liệu phân tán” với vai trò kênh giao tiếp với liệu cụ thể Kafka giải tốt Tại đây, liệu lưu dạng “message” topic, luồng liệu tương ứng với topic Những topic chứa liệu đầu vào đưa đến công việc spark hoạt động máy chủ Spark Sau liệu xử lý chuyển đến topic khác Kafka Từ consumer thực công việc lấy liệu xử lý xong đưa đến người dùng qua mơ-đun “Tiến trình nhận, gửi kết truy vấn” Hình mơ tả việc lấy liệu từ Kafka hệ thống chạy: Hình 4.5: Vai trị Kafka hệ thống Trong đó: • Producer 1, 2, 3, thực thể gửi liệu đến cho luồng liệu Một topic có nhiều producer gửi liệu đến Trên hình Producer nhận nhiệm vụ gửi liệu công việc đến topic job_yourway, Producer 2, gửi liệu cv đến topic cv_yourway Producer gửi liệu đăng đến cho topic post_yourway • Kết nối luồng liệu đầu vào: nhận nhiệm vụ giao tiếp với luồng liệu với câu truy vấn người dùng Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 42 Mỗi luồng liệu đầu vào truyền qua topic Kafka chọn trước Dữ liệu truyền dạng json ghi sở liệu, ví dụ: { "id": 23, "company_name": "Yourway", "company_address": "Hai Ba Trung", "salary": 30, "ages": "25-30", "education_level": "Đại học", "position": "IT technician", "job_attribute": "Toàn thời gian", "year_experiences": 3, "application_deadline": "02/02/2022" } Với trường: • • • • • • • • • • “id”: Mã định danh công ty “company_name”: tên công ty “company_address”: địa công ty “salary”: mức lương “ages”: độ tuổi u cầu “education_level”: trình độ học vấn “position”: vị trí cơng việc “job_attribute”: loại cơng việc (bán thời gian/tồn thời gian) “year_experiences”: số năm kinh nghiệm “application_deadline”: Thời hạn ứng tuyển Đầu tiên để lấy liệu từ Kafka, Spark sử dụng cú pháp ngắn gọn dễ hiểu, thể Hình 4.6 sau: Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 43 Hình 4.6: Đoạn mã đọc liệu đầu vào từ Kafka Ban đầu, cần khởi tạo thực thể “spark” SparkSession để giao tiếp với máy chủ Spark Sau cấu hình số đặc tính LogLevel để giới hạn mức độ nhật ký cơng việc Spark hỗ trợ tính readStream giúp cho Job Spark đọc luồng liệu liên tục từ Kafka Ngồi ra, readStream cịn đọc từ số định dạng khác Socket, Tệp, … Như Hình 4.6 ta cần khai báo định dạng nguồn topic Kafka đọc liệu từ Như Hình 4.4 trình bày, có luồng liệu khởi động lại, Spark tự động cấu hình thêm luồng Do đó, nhân rộng để đọc từ nhiều topic, từ việc kết nối liệu từ luồng liệu giải 4.2.2 Tạo lược đồ luồng liệu Spark Structured Streaming coi luồng liệu từ Kafka bảng liệu với liệu liên tục thêm vào Để coi bảng liệu, ghi đọc từ Kafka cố định trường liệu trước Tuy nhiên, trường liệu chứa thông tin tin nhắn Kafka trường tin nhắn Như vậy, để xử lý liệu công việc mong muốn, cần phải đọc liệu dạng lược đồ tương ứng với liệu truyền tới Lược đồ lưu lược đồ bảng CSDL ứng với luồng liệu việc làm Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 44 Hình 4.7: Đoạn mã tạo lược đồ liệu cơng việc Spark Trên Hình 4.7 biểu diễn việc chuyển đổi liệu đọc từ Kafka thành dạng bảng với lược đồ định sẵn • Bước 1: định nghĩa lược đồ dựa theo lược đồ bảng liệu ứng với luồng lưu CSDL • Bước 2: Vì gửi dạng tin nhắn Kafka Structured Streaming đọc liệu dạng bảng nên lúc bảng liệu tồn cột key, value, offset, partition, timestamp, timestampType, topic thông tin tin nhắn Do đó, muốn xử lý liệu ta cần bước chuyển liệu sang dạng bảng với hàm from_json Từ đây, với cột data tự động tạo thêm cột schema_job định nghĩa, cột chứa giá trị trường tương ứng chuỗi json Vì sau sinh viên không sử dụng thông tin tin nhắn nên lựa chọ trường có lược đồ qua hàm “select” (select("data.*")) • Bước 3: Tạo bảng tạm thời TempView có tên “job_yourway” (trùng tên với topic Kafka) để phục vụ truy vấn Để tạo lược đồ cố định tệp cơng việc Spark Hình 4.7, tạo tệp này, cần phải đọc lược đồ từ bảng lưu lược đồ luồng liệu Mỗi khởi động lại mô-đun Spark, hệ thống kiểm soát việc thêm luồng xoá luồng liệu cách kiểm tra bảng CSDL với tên có tiền tố “dbstreaming_streaming_” Mỗi bảng ứng với luồng liệu, lược đồ lấy dựa lược đồ bảng tương ứng CSDL Đoạn mã Hình 4.8 thể việc này: Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 45 Hình 4.8: Đoạn mã tạo tự động lược đồ từ bảng liệu • Đầu tiên dựa vào phương thức Inspector.get_columns - thư viện sqlalchemy (python3), lấy thơng tin cột bảng định Có nhiều thơng tin tương ứng với trường hệ thống cần lấy kiểu liệu trường Ví dụ thơng tin cột company_name: Trên thông tin với trường liệu kiểu VARCHAR o “name”: tên trường o “type”: kiểu liệu sqlalchemy o “default”: liệu mặc định Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 46 o “comment”: ghi o “nullable”: có cho phép trống hay khơng • Từ thơng tin này, với cột hệ thống sử dụng từ điển có trước (MAP_SQLALCHEMY_TYPE_TO_SPARK_SQL_TYPE) để ánh xạ kiểu liệu trường phù hợp với pyspark 4.2.3 Xử lý truy vấn luồng liệu công việc Spark Để thao tác với liệu cách mượt mà, dễ dàng nhất, người ta sử dụng ngôn ngữ đặc thù SQL Cũng mà để Spark công cụ mạnh thao tác với liệu khơng thể thiếu mơ-đun Spark SQL Và Structured Streaming thừa kế từ Spark SQL nên tất nhiên có tính thao tác với SQL Dựa vào tính này, hệ thống cung cấp chức tương ứng, cho phép người dùng tạo câu truy vấn có dạng SQL để truy vấn lên “bảng” liệu lấy phần trước Và cách xử lý liệu đơn giản đưa phương thức truy vấn nhiều bảng có sẵn SQL Như trình bày phần trước, Spark khởi động lại theo lịch cố định Khi khởi động lại Spark tải lại truy vấn xóa truy vấn người dùng xóa khởi động lại Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 47 Hình 4.9: Đoạn mã đọc liệu bằng SQL job Spark Như hình, ta thấy bước để truy vấn liệu job Spark: • Bước 1: Thực thi câu truy vấn người dùng qua phương thức sql – tính Spark SQL Từ biến “data” lưu kết mong muốn người dùng • Bước 2: Để gửi lại đến Kafka, cần phải chuyển lại liệu theo định dạng key – value Ta có hàm ngược lại to_json thực cơng việc nén cột lại thành chuỗi json làm giá trị cho cột value Tương tự với cột key hệ thống lấy mặc định giá trị cột query_x với x định danh câu truy vấn CSDL 4.2.4 Chuẩn bị liệu kết để gửi đến người dùng Ở phần đề cập đến việc xử lý liệu SQL, việc lại chuyển liệu đầu đến topic Kafka định nghĩa Hình 4.10: Chuẩn bị liệu kết Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 48 Mỗi câu truy vấn cơng việc, Spark gửi trả topic độc lập chọn trước Trên đây, hai topic output_query_1 output_query_2 topic chứa kết câu query_1, query_2 trình bày phía Hình 4.11: Đoạn mã cấu hình gửi liệu đầu Trên Hình 4.11, đoạn mã trình bày việc Spark sử dụng phương thức writeStream, với format Kafka truyền liệu topic tương ứng Dữ liệu gửi mơ-đun “Tiến trình nhận, gửi kết truy vấn” sinh viên Hiếu thực xử lý tiếp Cụ thể trình bày Hình 4.12 Hình 4.12: Gửi trả liệu đầu Mỗi câu truy vấn tương ứng với “lịch” hệ thống Ngay sau thêm câu truy vấn, tiến trình lập để đợi đến thời điểm thực thi cơng việc lấy liệu từ topic Kafka Sau trả cho người dùng qua phương tiện tùy theo lựa chọn ban đầu tạo câu truy vấn người dùng Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 49 4.3 Triển khai hệ thống quản lý, xử lý liệu Sau phân tích thiết kế hệ thống quản lý, xử lý liệu hoàn tất, sinh viên thực cài đặt thử nghiệm hệ thống máy tính cục với cấu hình: • 01 CPU intel Core i5 10400, lõi • 02 RAM, tổng dung lượng 16GB • Hệ điều hành MacOS phiên Bigsur 11.1 Ngoài ứng dụng liệu lớn cài đặt: • Apache Spark: phiên 3.1.2 với lệnh cài đặt: brew install spark • Apache Kafka: phiên 2.8.0 với lệnh cài đặt: brew install kafka Để tương tác với ứng dụng liệu lớn, hệ thống sử dụng python3.7 làm cơng cụ triển khai hệ thống Các gói, thư viện cần cài đặt là: STT Tên gói, thư viện Lệnh cài đặt Pyspark pip3 install pyspark==3.1.2 Confluent-kafka pip3 install confluent-kafka sqlparse pip3 install sqlparse Bảng 4.1: Các gói, thư viện cần cho cài đặt hệ thống quản lý, xử lý liệu Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 50 4.4 Kết đánh giá Một luồng hoàn chỉnh để người dùng sử dụng hệ thống nhận kết thực theo bước sau: • Bước 1: Kết nối sở liệu: • Bước 2: Thêm luồng liệu, cụ thể luồng liệu công việc Hình 4.13: Thêm luồng liệu công việc Sau thêm, kết hiển thị sau: Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 51 Hình 4.14: Kết luồng liệu thêm • Bước 2: Thêm câu truy vấn lọc công việc có địa khu vực Hai Bà Trưng mức lương 18 triệu Hình 4.15: Thêm truy vấn Kết thêm truy vấn Hình 4.16: Kết thêm truy vấn Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 52 • Bước 3: Sau có luồng truy vấn câu truy vấn luồng, thực khởi động công việc Spark: Hình 4.17: Quản lý cơng việc Spark • Bước 4: Kiểm tra cơng việc khởi động thành cơng khơng có lỗi Hình 4.18: Khởi động cơng việc thành cơng • Bước 5: Sau thực luồng liệu hệ thống hoàn chỉnh, kết câu truy vấn ghi liệu, thông tin mong muốn gửi đến người dùng qua phương thức người dùng chọn (mail, telegram, ) Hình biểu thị kết gửi dạng email cho người dùng Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 53 Hình 4.19: Kết gửi đến người dùng qua email • Do hạn chế tài chính, hệ thống triển khai dạng standalone máy tính sinh viên Hệ thống chịu tải xấp xỉ 1000 câu truy vấn 20 luồng liệu liên tục, không bị ngắt chừng Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 54 CHƯƠNG KẾT LUẬN 5.1 Kết luận Như vậy, theo mục tiêu đặt ban đầu đồ án, sinh viên nghiên cứu phát triển thành công hệ thống cảnh báo dựa luồng liệu việc làm Mặc dù sản phẩm chưa triển khai nhiều cụm máy chủ để phát huy rõ lực công cụ phân tán Spark chưa thực nghiệm nhiều thực tế Tuy nhiên kết tồn cơng sức hiểu, nghiên cứu học hỏi sinh viên suốt trình thực đồ án tốt nghiệp Kết từ đồ án tiền đề, móng cho sinh viên phát triển cải tiến hệ thống tương lai Qua trình làm đồ án sinh viên tự học gặt hái số thành Về kiến thức • Tìm hiểu áp dụng thư viện công nghệ xử lý phân tán Spark, công nghệ xử lý liệu liên tục kafka, cho mô-đun xử lý liệu phân tán • Kỹ xây dựng triển khai tác vụ xử lý môi trường phân tán • Kỹ thiết kế hệ thống cho sở liệu hỗ trợ phân tích • Kỹ lập trình web, UI/UX Về sản phẩm • Mơ-đun phân tích liệu có khả xử lý tập liệu lớn • Xử lý liệu liên tục trả kết cho người dùng dạng email • Giao diện website thân thiện, dễ hiểu, đáp ứng tính cho hệ thống 5.2 Hướng phát triển tương lai Từ mô-đun triển khai, thời gian tương lai, sinh viên mong muốn cải tiến mở rộng thêm số lượng máy chủ thực tác vụ, chức phân tích giúp mơ hệ thống phục vụ tốt cho việc đưa số liệu tốt thị trường tuyển dụng lao động Việt Nam, nhằm đưa đến nhiều thông tin giá trị cho người lao động nhà tuyển dụng Một số công việc định hướng để phát triển mơ-đun tương lai là: • Đưa hệ thống lên môi trường tảng đám mây (như AWS, Google cloud, Azure …) Xây dựng cụm máy chủ kiểm thử hiệu hệ thống • Phục vụ thêm nhiều dạng câu truy vấn select để người dùng tùy biến nhiều với liệu có Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 55 TÀI LIỆU THAM KHẢO [1] N Naem, “Tổng quan hệ phân tán - Distributed Systems,” Available: https://viblo.asia/p/serie-he-phan-tan-1-tong-quan-ve-he-phan-tan-distributedsystems-924lJxAXKPM [Đã truy cập 01 2022] [2] T C T KÊ, “Thơng cáo báo chí tình hình lao động việc làm quý III tháng năm 2021,” [Trực tuyến] Available: https://www.gso.gov.vn/du-lieu-va-so-lieu-thongke/2021/10/thong-cao-bao-chi-tinh-hinh-lao-dong-viec-lam-quy-iii-va-9-thang-nam2021/ [Đã truy cập 01 2022] [3] Gavin, "Khái niệm Stream Processing," Available: https://viblo.asia/p/khainiem-ve-stream-processing-GrLZDexelk0 [Đã truy cập 2022] [4] Đ H Long, "Vì chọn FastAPI," Available: https://viblo.asia/p/vi-sao-chonfastapi-gGJ59M6D5X2 [Đã truy cập 2022] [5] N C S B, “Giới thiệu tổng quan Angular,” Available: https://viblo.asia/p/gioithieu-tong-quan-ve-angular-07LKX9j2ZV4 [Đã truy cập 2022] [6] T D , J T , B Y , S Z , R X A G , I S , M Z Michael Armbrust, "Structured Streaming: A Declarative API for Real-Time Applications in Apache Spark," 2018 [7] Loki, "Giới thiệu Apache Kafka," 10 2018 Available: https://123host.vn/tailieu/kb/vps/gioi-thieu-ve-kafka.html [Đã truy cập 2022] [8] M M I MateiZaharia, “Spark: Cluster Computing with Working Sets,” USENIXHotCloud, 2010 [9] "Structured Streaming Programming Guide," Available: https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 56