Phát triển hệ thống giám sát và phân tích chất lượng nước ăn uống

60 75 0
Phát triển hệ thống giám sát và phân tích chất lượng nước ăn uống

Đ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

II. Đề tài nghiên cứu bộ thông số về chỉ tiêu chất lượng nước ăn uống được chỉ định trong tài liệu QCVN 01:2009/BYT để chọn lọc một bộ thông số tối thiểu cần thiết đảm bảo chất lượng nước ăn uống cho các hộ dân trên địa bàn thành phố. Đồng thời, đề tài cũng khảo sát mạng lưới cấp nước hiện tại đang được triển khai trên địa bàn thành phố nhằm xây dựng đồ hình cấp nước tương ứng cho hệ thống được đề xuất. Áp dụng công cụ xử lý Streaming data để xây dựng hệ thống giám sát chất lượng nước ăn uống ở các khu dân cư, khu chung cư, hộ dân để đưa ra các thông báo tức thời ở những điểm đo không đạt chất lượng, và đề xuất các phương pháp phân tích để đưa ra các dự báo về chất lượng nước ở các địa điểm khác trong mạng lưới cấp nước.

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA TRẦN CAO NGUYÊN PHÁT TRIỂN HỆ THỐNG GIÁM SÁT VÀ PHÂN TÍCH CHẤT LƯỢNG NƯỚC ĂN UỐNG CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH MÃ SỐ: 60.48.01.01 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, THÁNG 12 NẢM 2018 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG TP HCM Cán hướng dẫn khoa học: PGS.TS Thoại Nam Cán chấm nhận xét 1: PGS.TS Trần Công Hùng Cán chấm nhận xét 2: TS Trần Minh Quang Luận văn thạc sĩ bảo vệ Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 27 tháng 12 năm 2018 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: PGS.TS Phạm Trần Vũ - Chủ tịch TS Nguyễn Lê Duy Lai - Thư ký PGS.TS Trần Công Hùng - Phản biện TS Trần Minh Quang - Phản biện TS Lê Trọng Nhân - ủy viên Xác nhận Chủ tịch Hội đồng đánh giá luận văn thạc sĩ Trưởng Khoa quản lý chuyên ngành sau luận văn sửa chữa (nếu có) CHỦ TỊCH HỘI ĐÒNG TRƯỞNG KHOA KH&KTMT ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Trần Cao Nguyên MSHV: 7140831 Ngày, tháng, năm sinh: 04/10/1983 Nơi sinh: Đắk Lắk Chuyên ngành: Khoa Học Máy Tính Mã số: 60.48.01.01 I TÊN ĐỀ TÀI: Phát triển hệ thống giám sát phân tích chất lượng nước ăn uống II NHIỆM VỤ VÀ NỘI DUNG: Đề tài nghiên cứu thông số tiêu chất lượng nước ăn uống định tài liệu QCVN 01:2009/BYT để chọn lọc thông số tối thiểu cần thiết đảm bảo chất lượng nước ăn uống cho hộ dân địa bàn thành phố Đồng thời, đề tài khảo sát mạng lưới cấp nước triển khai địa bàn thành phố nhằm xây dựng đồ hình cấp nước tương ứng cho hệ thống đề xuất Áp dụng công cụ xử lý Streaming data để xây dựng hệ thống giám sát chất lượng nước ăn uống khu dân cư, khu chung cư, hộ dân để đưa thông báo tức thời điểm đo không đạt chất lượng, đề xuất phương pháp phân tích để đưa dự báo chất lượng nước địa điểm khác mạng lưới cấp nước III NGÀY GIAO NHIỆM VỤ: 20/08/2018 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/12/2018 V CÁN BỘ HƯỚNG DẪN: PGS.TS THOẠI NAM Tp HCM, ngày 03 tháng 12 năm 2018 CÁN BỘ HƯỞNG DẪN TRƯỞNG KHOA KH & KTMT LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành sâu sắc đến Thầy PGS.TS Thoại Nam, khoa Khoa Học Kỹ Thuật Máy Tính - Đại Học Bách Khoa TP HCM Trong suốt trình thực đề cương luận văn cao học, Thầy tận tình hướng dẫn giúp đỡ, tạo điều kiện để tơi hồn thành tốt luận văn Tôi xin gửi lời cảm ơn chân thành đến Thầy Cô trường Đại Học Bách Khoa TP HCM Các Thầy Cơ tận tình dạy, trang bị cho kiến thức quý báu suốt thời gian học cao học trường Tôi xin gửi lời cảm ơn đến gia đình, bạn bè đồng nghiệp động viên tinh thần, tạo điều kiện thuận lợi giúp tơi hồn thành luận văn Tp HCM, ngày 30 tháng 11 năm 2018 Học viên Trần Cao Nguyên TÓM TẮT LUẬN VĂN Hiện tương lai gần, việc đảm bảo chất lượng nước ăn uống cho người dân sinh sống nhiều thành phố trở thành vấn đề quan tâm lớn Đây không vấn đề quan tâm quan chức năng, mà thân người dân dần ý thức quan trọng chất lượng nước ăn uống mà sử dụng hàng ngày Việc giám sát, đưa cảnh báo tức thời dự báo mối nguy hại chất lượng nước toán quan trọng bậc việc đảm bảo chất lượng nước ăn uống cung cấp cho người dân Đây toán mà ngành hữu quan chắn cần phải có hỗ trợ lớn ngành Khoa học máy tính Big data phát triển nhanh chóng Thế giới, Việt Nam khơng nằm ngồi xu hướng Với khả phục vụ việc giám sát, phân tích để đưa cảnh báo tức thời dự báo chất lượng nước ăn uống thành phố lớn, việc ứng dụng kỹ thuật Big data cần thiết Để đảm bảo xử lý số liệu phát sinh liên tục khắp nơi hệ thống cấp nước thành phố lớn Streaming data, nhánh phương pháp Big data, nên ứng dụng toán Luận văn tập trung nghiên cứu thông số chất lượng nước ăn uống định tài liệu QCVN 01:2009/BYT nhằm chọn lọc thông số tối thiểu đảm bảo chất lượng nước ăn uống cho hộ dân ứng dụng Streaming data để giải toán giám sát, phân tích cảnh báo chất lượng nước ăn uống thành phố lớn Việt Nam 11 ABSTRACT In nowadays and near future, guaranty for quality of drinking water to the citizen in big cities is going to become a high interesting problem This is the intersting problem by not only appropriate authorities but also the citizens who have been gradually realizing the importance of drinking water quality used daily The monitoring, immediately warning and predicting unhealthy symptoms about drinking water quality will be high important problem in guaranty drinking water supplied to the citizens This is the problem that the appropriate authorities need the support from the Computer science Big data has been highly developing over the world, and Vietnam also To implement the monitoring and analyzing to raise immediately warning and predict drinking water quality in big cities, Big data should be applied To ensure the capability of processing constantly generated data at all positions in the water supply system, Streaming data, which is a method set of Big data, should be applied for this problem This thesis researches the parameter set about drinking water quality which is specified in the document QCVN 01:2009/BYT to select a minimum parameter set which guarantees drinking water quality, and applies Streaming data to solve the problem of monitoring, warning and analyzing about drinking water quality for big citites in Vietnam iii LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ kết tham khảo từ cơng trình khác ghi luận văn, cơng việc trình bày luận văn tơi thực chưa có phần nội dung luận văn nộp để lấy cấp trường trường khác Tp HCM, ngày 30 tháng 11 năm 2018 Học viên Trần Cao Nguyên IV MỤC LỤC CHƯƠNG 1: GIỚI THIỆU 1.1 Lý chọn đề tài 1.2 Mục tiêu giới hạn đề tài 1.3 Ý nghĩa đề tài 1.4 Cấu trúc luận văn CHƯƠNG 2: KIẾN THỨC NỀN TẢNG 2.1 Tổng quan big data 2.1.1 Khái niệm big data 2.1.2 Các đặc trưng big data 2.1.3 ứng dụng big data 2.2 Giới thiệu Apache Hadoop 2.2.1 Kiến trúc Hadoop: 2.2.2 Kiến trúc HDFS 2.2.3 Sơ đồ xử lý Map-Reduce 2.3 Giới thiệu streaming data 11 2.3.1 So sánh batch processing với streaming processing 11 2.3.2 ứng dụng streaming data thực tế 12 2.4 Giói thiệu Apache Spark 12 2.4.1 Spark hệ sinh thái Hadoop 12 2.4.2 Kiến trúc Spark 13 2.4.3 ứng dụng Spark 14 2.4.4 Giới thiệu Spark Streaming 15 CHƯƠNG 3: MỘT SỐ CƠNG TRÌNH LIÊN QUAN 17 3.1 Trên Thế giới 17 3.2 Ở Việt Nam 17 V CHƯƠNG 4: PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ 19 4.1 Bộ thông số chất lượng cần giám sát 19 4.2 Đồ hình mạng lưới cấp nước 23 4.2.1 Đồ hình tham khảo thực tế 23 4.2.2 Một số đề xuất đồ hình cấp nước 24 4.3 Tổ chức lưu trữ liệu 26 4.3.1 Tổ chức thu nhận liệu 26 4.3.2 Định dạng liệu 26 4.4 Thiết kế ứng dụng 28 4.4.1 Sơ đồ khối ứng dụng 28 4.4.2 Lược đồ 29 4.4.3 Lưu đồ thuật toán 30 4.4.4 Mục tiêu ứng dụng 34 CHƯƠNG 5: THỬ NGHIỆM 35 5.1 Môi trường thực cách sử dụng 35 5.1.1 Môi trường thực 35 5.1.2 Các bước cài đặt framework 35 5.1.3 Cách sử dụng ứng dụng 38 5.2 Kết chạy ứng dụng 40 CHƯƠNG 6: KẾT LUẬN 43 6.1 Những điều đạt 43 6.2 Những điểm hạn chế 43 6.3 Hướng phát triển đề tài 44 TÀI LIỆU THAM KHẢO 45 PHỤ LỤC: BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH - VIỆT 48 VI DANH MUC HÌNH • Hình 1: Các thành phần Hadoop Hình 2: Kiến trúc Master-Slave Hadoop Hình 3: Kiến trúc HDFS Hình 4: Sơ đồ xử lý Map-Reduce 10 Hình 5: Ví dụ “Word Count” 11 Hình 6: Spark hệ sinh thái Hadoop 12 Hình 7: Ba cách triển khai Spark vào hệ thống Hadoop 13 Hình 8: Các thành phần Spark 14 Hình 9: Quá trình tiếp nhận liệu đưa kết Spark Streaming 15 Hình 10: Sự thực thi bên Spark Streaming 16 Hình 11: Mối quan hệ chứa đựng DStream RDD 16 Hình 12: Đồ hình cấp nước tham khảo 23 Hình 13: Sơ đồ khối ứng dụng 28 Hình 14: Lược đồ ứng dụng 29 Hình 15: Lưu đồ thuật tốn ứng dụng 31 Hình 16: Lưu đồ thuật tốn hàm kiểm tra RDD 32 Hình 17: Bảng thống kê tổng số ghi tập liệu mà ứng dụng chạy 41 Hình 18: Trang web hiển thị diễn tiến thời gian hoạt động ứng dụng 41 Hình 19: ứng dụng thơng báo ghi có bất thường hình console 41 vii CHƯƠNG 5: THỬ NGHIÊM Chương trình bày kết chạy thử nghiệm ứng dụng giám sát chất lượng nước ăn uống trình bày phần thiết kế mục tiêu chương trước 5.1 Môi trường thực cách sử dụng 5.1.1 Môi trường thực ứng dụng thực máy tính cá nhân có cấu hình mơi trường cài đặt sau: - Phần cứng: + CPU: Intel Core-i7 Q720 1.6GHz + RAM: 4GB - Hệ điều hành: Ubuntu 16.04, 64-bit - Framework: + JDK: version 1.8.0_191 + Scala: version 2.11.8 + Hadoop: version 2.7.3 + Spark: Version: 2.1.0, Mode hoạt động với Hadoop: Standalone - Ngơn ngữ lập trình: Python 5.1.2 Các bước cài đặt framework Trên thực tế, việc cài đặt framework liệt kê thường tốn nhiều thòi gian cơng sức dễ đối mặt vói khơng tương thích phiên framework với Do đó, phần này, luận vãn trình bày bước cài đặt phiên đề cập phần Các bước cài đặt nên tuân theo trình tự đây: - Cài đặt: Python -> JDK -> Scala Hadoop Spark - Sau đó, thêm đường dẫn thư mục (path) JDK, Scala Spark vào biến môi - trường PATH file ~/ bashrc Nạp lại nội dung file ~/ bashrc 35 > Cài đặt Python: $sudo apt-get update $sudo apt-get install python-software-properties > Cài đặt JDK: $sudo echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" > /etc/apt/sources.list.d/webupd8teamjava.list # Có thể phải sử dụng quyền root chạy # dược lệnh $sudo add-apt-repository ppa:webupd8team/java $sudo apt-get -y update $sudo apt-get install oracle-java8-installer $java version # Kiểm tra version Java > Cài đặt Scala: #### Cài dặt Scala $sudo wget www.scala-lang.org/files/archive/scala2.11.8.deb $sudo dpkg -ỉ scala-2.11.8.deb $scala -version # Kiểm tra version Scala #### càl đặt SBT cho Scala $sudo echo "deb https://dl.bintray.com/sbt/debian /" I sudo tee -a /etc/apt/sources.list.d/sbt.list $sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:8 —recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 $sudo apt-get -y update $sudo apt-get -y install sbt 36 > Cài đặt Hadoop Spark: Spark cần tải (download) file nén giải nén vào thư mục Đường dẫn (link) download: https://archive.apache.org/disưspark/spark2.1.0/spark-2.1.0-bin-hadoop2.7.tgz File nén bao gồm Hadoop bên > Thêm đường dẫn vào biến mơi trường PATH file ~/ bashrc: export JAVA_HOME=/usr/lib/jvm/java-8oracle export SCALA_HOME=/usr/share/scala export SPARK_HOME=/home/username/spark-2.1.0-bỉn-hadoop2.7 # Giả sử noi lưu thư mục Spark /home/username/ export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin > Nạp lại nội dung file ~/ bashrc: $source ~/.bashrc > Khởi động Spark Shell xem chạy chưa: $spark-shell # Nấu sử dụng ngôn ngữ Scala $pyspark # Nấu sử dụng ngôn ngữ Python Nếu xuất thông báo bên tức Spark cài đặt thành cơng Sau đó, bấm tổ hợp phím Ctr+D để thoát khỏi Spark Shell Welcome to / _/_ / /_ _\ \/ _ \/ / / _/\ I—f —( ' / _/ '_/ /_/ /_/\_\ version 2.1.0 /_/ 37 5.1.3 Cách sử dụng ứng dụng > Giả lập streaming data: Trên thực tế, ứng dụng streaming data phát triển Spark hoạt động lấy liệu từ ứng dụng thu nhận liệu đó, ví dụ Apache Kafka, ứng dụng Spark coi server thu nhận liệu đầu vào cho ứng dụng phát triển thử nghiệm đề tài dự định lấy liệu từ server Nhưng có hạn chế mặt thòi gian nên đề tài chưa nghiên cứu cách thức lấy liệu theo cách Thay vào đó, chạy ứng dụng này, sử dụng lệnh Netcat Linux để giả lập server thu nhận liệu từ file text định File text định file có cấu trúc CSV lưu trữ ghi trình bày mục 4.3.2 Dữ liệu giả lập từ kết đo đạc theo định kỳ thực tế công ty Sawaco [18] > Các bước chạy ứng dụng: - Chạy ứng dụng môi trường Spark: Lệnh: spark-submit /Monitoring_DWQ.py localhost 9999 60 Giải thích: + spark-submit: Nạp file mã nguồn vào môi trường Spark đế chạy + /Monitoring_DWQ py: Đường dẫn (path) tên file mã nguồn ứng dụng + localhost: hostname server nơi chạy ứng dụng thu nhận liệu Ở đây, ứng dụng chạy máy đơn nên định hostname localhost + 9999: port mà ứng dụng thu nhận liệu giao tiếp server + 60: thời gian (tính giây) mà ứng dụng định kỳ gửi yêu cầu để lấy liệu tới server 38 - Giả lập server: Lệnh: nc -1 9999 < stream300M.log Giải thích: + nc: Lệnh Netcat + -1 9999: Chỉ định Netcat lắng nghe port 9999 Chúng ta định port khác cần ý port truyền vào dòng lệnh để chạy ứng dụng phải giống với port + < stream300M log: Chỉ định tên file chứa liệu giả lập chuyển vào cho Netcat Đe tự động chạy Netcat lặp lặp lại nhiều lần với nhiều file liệu giả lập khác nhau, ta viết file script để thực điều Ví du: Giả sử ta có thư mục “inputstream” chứa file giả lập có tên đánh số liên tiếp “streaml.log”, “stream2.log”, “stream3.log”, v.v ta viết file script tên “streamserver.sh” sau: PrefỉxName="inputstream/stream" SuffỉxName=".log" while [ $2 > ] Value=$((${RANDOM} % $3 + 1)) F±lename=$Pref±xName$Value$SuffixName echo $F±lename nc -1 $1 < $F±lename sleep $2 done # Run command: /streamserver.sh 9999 # 8: streaml.log —> Stream8.log 39 5.2 Kết chạy ứng dụng Tôi tiến hành chạy ứng dụng với ba tập liệu streaming data có dung lượng khác 50 MB, 100 MB 300 MB Lý tơi chọn lựa ba tập liệu có dung lượng số lượng ghi tập liệu phù hcrp liệu tạo chu kỳ phút đo lần từ tất điểm đo triển khai mạng lưới cấp nước thực tế: + File 50 MB: có gần 1.400.000 ghi, phù họp với mạng lưới cấp nước thành phố cỡ trung Việt Nam + File 100 MB: có gần 2.800.000 ghi, phù họp vói mạng lưới cấp nước thành phố cỡ lớn Việt Nam + File 300 MB: có 8.400.000 ghi, phù họp vói mạng lưới cấp nước thành phố cỡ lớn Việt Nam thành phố Hồ Chí Minh Ngồi ra, tơi thử nghiệm với tập liệu có dung lượng streaming data lớn hẳn, vào khoảng 700 MB (tập liệu có 20 triệu ghi) để xem khả xử lý tối đa máy tính có cấu nêu mục 5.1.1 Khi thử nghiệm, nhận thấy hạn chế nhớ RAM máy tính nên ứng dụng nạp xử lý 11.000.000 ghi Bảng tổng họp kết mà ứng dụng chạy với dung lượng kể trên: Dung lượng liệu 50 MB Tổng số lượng ghi 1.391.501 Thòi gian hồn tất Số lượng ghi bị warning 1: Độ đục giá trị tối đa 13 giây 2: 100 MB 2.788.501 22 giây - pH dưói giá trị tối thiếu - Clo_dư giá trị tối đa 1: Áp_lực_nước dưói giá trị tối thiểu 300 MB 8.464.501 phút 19 giây 700 MB 20.944.130 Nạp xử lý 11.130.320 ghi Bảng 3: Kết tổng hợp chạy ứng dụng bốn tập liệu khác 40 Các hình 17, 18, 19 số hình chụp lại hình kết ứng dụng chạy vói tập liệu có dung lượng 300 MB: Completed Batches (last out of 5) Batch Time Input Size Scheduling Delay Processing Time I7* Total Delay

Ngày đăng: 30/11/2019, 18:50

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

Tài liệu liên quan