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.
Trang 1ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG TP HCM
Cán bộ hướng dẫn khoa học: PGS.TS Thoại Nam Cán bộ chấm nhận xét 1:
PGS.TS Trần Công Hùng Cán bộ chấm nhận xét 2: TS Trần Minh Quang
Luận văn thạc sĩ được bảo vệ tại 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:
1 PGS.TS Phạm Trần Vũ - Chủ tịch
2 TS Nguyễn Lê Duy Lai - Thư ký
3 PGS.TS Trần Công Hùng - Phản biện 1
4 TS Trần Minh Quang - Phản biện 2
5 TS Lê Trọng Nhân - ủy viên
Xác nhận của Chủ tịch Hội đồng đánh giá luận văn thạc sĩ và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3ĐẠ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ự do - 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
Ngày, tháng, năm sinh: 04/10/1983
Chuyên ngành: Khoa Học Máy Tính
MSHV: 7140831 Nơi sinh: Đắk Lắk
Mã số: 60.48.01.01
I TÊN ĐỀ TÀI: 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
II NHIỆM VỤ VÀ NỘI DUNG: Đề 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
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
CÁN BỘ HƯỞNG DẪN
Tp HCM, ngày 03 tháng 12 năm 2018
TRƯỞNG KHOA KH & KTMT
Trang 4LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất đến Thầy PGS.TS Thoại Nam, khoa Khoa Học và Kỹ Thuật Máy Tính - Đại Học Bách Khoa TP HCM Trong suốt quá trình thực hiện đề cương và luận văn cao học, Thầy đã tận tình hướng dẫn và giúp đỡ, tạo mọi điều kiện để tôi có thể hoàn thành tốt luận văn này
Tôi xin gửi lời cảm ơn chân thành đến các Thầy Cô trường Đại Học Bách Khoa TP HCM Các Thầy Cô đã tận tình chỉ dạy, trang bị cho tôi những kiến thức quý báu trong suốt thời gian tôi học cao học tại trường
Tôi xin gửi lời cảm ơn đến gia đình, bạn bè và các đồng nghiệp đã động viên tinh thần, tạo mọi điều kiện thuận lợi giúp tôi hoàn thành luận văn này
Tp HCM, ngày 30 tháng 11 năm 2018
Học viên
Trần Cao Nguyên
Trang 5TÓM TẮT LUẬN VĂN
Hiện nay và trong tương lai rất 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ố đang và sẽ trở thành vấn đề được quan tâm lớn Đây không chỉ là vấn đề được quan tâm bởi các cơ quan chức năng, mà bản thân người dân cũng đang dần ý thức được sự quan trọng của chất lượng nước ăn uống mà mình sử dụng hàng ngày
Việc giám sát, đưa ra các cảnh báo tức thời và các dự báo những mối nguy hại về chất lượng nước sẽ là bài toán quan trọng bậc nhất trong việc đảm bảo chất lượng nước
ăn uống cung cấp cho người dân Đây sẽ là bài toán mà các ngành hữu quan chắc chắn cần phải có sự hỗ trợ lớn của ngành Khoa học máy tính
Big data đang phát triển nhanh chóng trên Thế giới, và Việt Nam cũng không nằm ngoài xu hướng đó Với khả năng phục vụ việc giám sát, phân tích để đưa ra các cảnh báo tức thời và dự báo về chất lượng nước ăn uống ở các thành phố lớn, thì việc ứng dụng các
kỹ thuật của Big data là một sự cần thiết
Để đảm bảo xử lý các số liệu phát sinh liên tục ở khắp mọi nơi trong hệ thống cấp nước ở các thành phố lớn thì Streaming data, một nhánh phương pháp trong Big data, nên được ứng dụng trong bài toán này
Luận văn này sẽ tập trung nghiên cứu bộ thông số về chất lượng nước ăn uống được chỉ định trong tài liệu QCVN 01:2009/BYT nhằm chọn lọc ra bộ thông số tối thiểu đảm bảo chất lượng nước ăn uống cho các hộ dân và ứng dụng Streaming data để giải quyết bài toán giám sát, phân tích và cảnh báo đối với chất lượng nước ăn uống ở các thành phố lớn của Việt Nam
Trang 6ABSTRACT
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
Trang 7LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi trong luận văn, các công việc trình bày trong luận văn là do chính tôi thực hiện và chưa
có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Tp HCM, ngày 30 tháng 11 năm 2018
Học viên
Trần Cao Nguyên
Trang 8MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu và giới hạn của đề tài 1
1.3 Ý nghĩa của đề tài 2
1.4 Cấu trúc luận văn 3
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG 4
2.1 Tổng quan về big data 4
2.1.1 Khái niệm về big data 4
2.1.2 Các đặc trưng của big data 5
2.1.3 ứng dụng hiện tại của big data 5
2.2 Giới thiệu về Apache Hadoop 6
2.2.1
Kiến trúc của Hadoop: 6
2.2.2
Kiến trúc của HDFS 8
2.2.3 Sơ đồ xử lý của Map-Reduce 9
2.3 Giới thiệu về streaming data 11
2.3.1 So sánh batch processing với streaming processing 11
2.3.2 ứng dụng streaming data trong thực tế 12
2.4 Giói thiệu về Apache Spark 12
2.4.1 Spark trong hệ sinh thái của Hadoop 12
2.4.2 Kiến trúc của Spark 13
2.4.3 ứng dụng của Spark 14
2.4.4 Giới thiệu về 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
Trang 94.1
Bộ thông số chất lượng cần giám sát 19
4.2
Đồ hình của mạng lưới cấp nước 23
4.2.1 Đồ hình tham khảo trong thực tế 23
4.2.2 Một số đề xuất trên đồ hình cấp nước 24
4.3 Tổ chức lưu trữ dữ liệu 26
4.3.1 Tổ chức thu nhận dữ liệu 26
4.3.2 Định dạng dữ liệu 26
4.4 Thiết kế ứng dụng 28
4.4.1 Sơ đồ khối của ứng dụng 28
4.4.2 Lược đồ tuần tự 29
4.4.3 Lưu đồ thuật toán 30
4.4.4 Mục tiêu của ứng dụng 34
CHƯƠNG 5: THỬ NGHIỆM 35
5.1 Môi trường hiện thực và cách sử dụng 35
5.1.1 Môi trường hiện 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 quả chạy ứng dụng 40
CHƯƠNG 6: KẾT LUẬN 43
6.1 Những điều đã đạt được 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
Trang 10DANH MUC HÌNH
•
Hình 1: Các thành phần của Hadoop 7
Hình 2: Kiến trúc Master-Slave của Hadoop 7
Hình 3: Kiến trúc của HDFS 8
Hình 4: Sơ đồ xử lý của Map-Reduce 10
Hình 5: Ví dụ “Word Count” 11
Hình 6: Spark trong 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 của Spark 14
Hình 9: Quá trình tiếp nhận dữ liệu và đưa ra kết quả của Spark Streaming 15
Hình 10: Sự thực thi bên trong của Spark Streaming 16
Hình 11: Mối quan hệ chứa đựng giữa DStream và RDD 16
Hình 12: Đồ hình cấp nước tham khảo 23
Hình 13: Sơ đồ khối của ứng dụng 28
Hình 14: Lược đồ tuần tự của ứng dụng 29
Hình 15: Lưu đồ thuật toán của ứng dụng 31
Hình 16: Lưu đồ thuật toán của hàm kiểm tra RDD 32
Hình 17: Bảng thống kê tổng số bản ghi của tập dữ 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 của ứng dụng 41
Hình 19: ứng dụng thông báo bản ghi có bất thường trên màn hình console 41
Trang 11DANH MUC BẢNG
•
Bảng 1: Bộ thông số chất lượng nước ăn uống được đề xuất 20 Bảng 2: Danh sách một số nhà sản xuất sensor và thiết bị đo chất lượng nước 22 Bảng 3: Kết quả tổng họp chạy ứng dụng trên bốn tập dữ liệu khác nhau 40
Trang 12CHƯƠNG 1: GIỚI THIỆU
Chương này giới thiệu về đề tài của luận văn, gồm có: lý do chọn đề tài, mục tiêu và giới hạn của đề tài, ý nghĩa của đề tài Chương này cũng trình bày cấu trúc của luận văn này
1.1 Lý do chọn đề tài
Hiện nay, ở các thành phố lớn, các khu chung cư, khu dân cư, hộ gia đình ngày càng có nhu cầu cao về chất lượng nước ăn uống Hơn nữa, sự phát triển dân số và các tác động của yếu tố môi trường sống có khả năng ảnh hưởng rất nhiều đến chất lượng nước ăn uống được cung cấp Do đó, luận văn này mong muốn giúp giải quyết được vấn đề cảnh báo một cách nhanh chóng và dự báo sớm các khả năng xấu có thể xảy ra đối với chất lượng nước ăn uống được cung cấp cho các khu chung cư, khu dân cư, hộ gia đình Đây là nhu cầu của các hộ dân trong tương lai sắp tới Trên thực tế, đây cũng đang là nhu cầu được đặt ra bởi các công ty cung cấp nước trên địa bàn các thành phố lớn
Hệ thống cấp nước cho một thành phố khá phức tạp với nhiều tuyến đường ống đi tới khắp các khu dân cư và đến tận các hộ gia đình Do đó, Big data là phương pháp luận phù họp với việc thu thập data từ việc triển khai đặt thiết bị đo đến từng hộ dân Việc data được thu thập liên tục từ khắp các điểm đặt thiết bị đo nên được đảm bảo bằng một phương pháp tổ chức lưu nhận và xử lý phù họp Một phương pháp rất phù họp cho trường họp này là Streaming data
1.2 Mục tiêu và giói hạn của đề tài
♦♦♦ Mục tiêu của luận văn này gồm các ý như sau:
- Nghiên cứu và đánh giá bộ thông số môi trường về chất lượng của nước ăn uống
có thể quan trắc được Các 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 [4],
- Đề xuất một bộ các thông số có ảnh hưởng trực tiếp và nguy hại đến sức khỏe con người cần thiết phải thực hiện việc giám sát từ việc nghiên cứu và đánh giá các thông số trong tài liệu QCVN 01:2009/BYT
Trang 13- Đề xuất sự bố trí các điểm đặt thiết bị đo trong đồ hình của mạng lưới cấp nước
- Xây dựng hệ thống phân tích dữ liệu thu thập được đối với các thông số chất lượng của nước ăn uống để cảnh báo ngay khi phát hiện bất kỳ vị trí đo nào xảy ra bất thường
♦> Với mục tiêu như trên, luận văn này có giới hạn như sau:
- Tập trung 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
- Tìm hiểu và phân tích đồ hình của hệ thống cấp nước đang được triển khai bởi công ty cấp nước đóng trên địa bàn thành phố Hồ Chí Minh
- Tập trung vào việc phân tích dữ liệu đã thu thập được, không tham gia vào việc xây dựng thiết bị đo đạc
- Hệ thống phân tích dữ liệu thu thập được có chức năng cảnh báo tức thời các vị trí xảy ra vượt quá giới hạn cho phép và sự suy giảm áp lực nước trong đường ống, chưa thực hiện khả năng dự báo những bất thường có thể xảy ra ở các vị trí khác trong hệ thống cấp nước
1.3 Ý nghĩa của đề tài ♦♦♦ Ý nghĩa khoa học:
Đề tài vận dụng Streaming data để giải quyết bài toán phân tích được đặt ra trên hệ thống phát sinh dữ liệu lớn theo thời gian thực
❖ Ý nghĩa thực tiễn:
Đề tài giải quyết bài toán đang được đặt ra bởi các cơ quan hữu quan và người dân ở các thành phố về khả năng nhận biết chất lượng nước ăn uống đang được sử dụng hàng ngày một cách minh bạch, nhanh chóng và liên tục
Trang 141.4 Cấu trúc luân văn
Chương 1, Giới thiệu: giới thiệu tổng quan về đề tài, mục tiêu nghiên cứu và giới hạn của đề tài, ý nghĩa của đề tài
Chương 2, Kiến thức nền tảng: trình bày tổng quan các khái niệm cơ bản về Big data,
bộ công cụ (framework) Hadoop và mô hình Map-Reduce, Streaming data, bộ công cụ (framework) Spark
Chương 3, Một số công trình liên quan: Giới thiệu và đánh giá các công trình nghiên cứu, các sản phẩm liên quan đã và đang được thực hiện trong thực tế
Chương 4, Phương pháp giải quyết vấn đề: trình bày bộ thông số được đề xuất, đồ hình cấp nước và đề xuất sự bố trí các thiết bị đo, định dạng dữ liệu và tổ chức lưu trữ dữ liệu, xây dựng ứng dụng phân tích dữ liệu bằng Spark
Chương 5, Thử nghiệm: trình bày việc thực thi cụ thể ứng dụng phân tích dữ liệu bằng Spark trên máy tính cá nhân như: cấu hình máy, các bước cài đặt, chạy ứng dụng Trình bày các kết quả thử nghiệm, đánh giá kết quả thu được
Chương 6, Kết luận: Tổng họp những điều đạt được của đề tài, những điểm hạn chế của đề tài, và đề xuất một số hướng phát triển đề tài
Trang 15CHƯƠNG 2: KIẾN THỨC NÈN TẢNG
Chương này trình bày tổng quan các kiến thức và công nghệ nền tảng được vận dụng
để tiến tới xây dựng đề tài này, bao gồm: Big data, Apache Hadoop, Streaming data, Apache Spark
2.1 Tổng quan về big data
2.1.1 Khái niệm về big data
Thuật ngữ “Big data” (tạm dịch là “dữ liệu lớn”; sau đây, tôi xin được sử dụng cụm từ
“Big data” để diễn đạt trong toàn bộ nội dung tiếp theo) xuất hiện vào khoảng những năm
1990, và gần đây, nó đã trở thành một thuật ngữ phổ biến
Big data là thuật ngữ dùng để nói đến các tập dữ liệu rất lớn và phức tạp Những tập dữ liệu này rất khó hoặc không thể xử lý được bằng những phần mềm ứng dụng truyền thống
về quản trị dữ liệu như các hệ quản trị cơ sở dữ liệu quan hệ, các phần mềm trực quan hóa
dữ liệu, v.v mà phải được tổ chức lưu trữ và xử lý trên các hệ thống máy tính phân tán cùng với các bộ công cụ phù họp
Một số khía cạnh liên quan đến việc xuất hiện các tập dữ liệu rất lớn có thể kể đến như sau:
- Các ngồn phát sinh dữ liệu: Dữ liệu được phát sinh từ sự lao động sản xuất ở tất
cả các ngành nghề trong đời sống hàng ngày Sự đa dạng của các loại hình lao động nảy sinh ra rất nhiều các nhu cầu khác nhau về việc khai thác các thông tin trong các nguồn dữ liệu được sinh ra
- Các thiết bị và phương thức cho việc thu nhận và lưu trữ dữ liệu: Các thiết bị sinh
dữ liệu ngày càng đa dạng, kết hợp với sự phát triển ngày càng mạnh mẽ của mạng máy tính cùng với giá thành ngày càng giảm của các thiết bị lưu trữ giúp cho việc thu thập và lưu trữ dữ liệu ngày càng dễ dàng và nhanh chóng Trong những năm gần đây, IoT (Internet vạn vật) đang phát triến mạnh mẽ giúp cho việc thu nhận
và lưu trữ dữ liệu càng thuận lợi hơn
- Các loại định dạng dữ liệu: Dữ liệu phát sinh từ lao động sản xuất tồn tại ở nhiều định dạng khác nhau và thường được phân nhóm thành ba loại: có cấu trúc, bán cấu trúc và không có cấu trúc Điều này cũng đặt ra nhiều thách thức cho việc xử
lý các dữ liệu được thu thập với dung lượng lớn
Trang 16Các bài toán mà hiện nay, big data thường được áp dụng để xử lý là: giám sát, dự báo các thay đổi bất thường của các đối tượng đang diễn tiến nào đó trong thực tế như thời tiết, hành vi của một nhóm người, giá cả sản phẩm, v.v Với các đặc trưng của mình, big data luôn phải đối mặt với các thách thức như: tìm kiếm, chia sẻ, trực quan hóa, bảo mật thông tin, v.v
2.1.2 Các đặc trưng của big data
Big data có các đặc trưng được viết tắt thành các chữ V (theo các từ tiếng Anh) Cũng có nhiều khi, chúng ta gặp ở đâu đó, các đặc trưng này là 3V, 4V hoặc thậm chí là 5V Ban đầu, các đặc trưng của big data được mô tả trong 3V là Volume, Velocity và Variety Dần dần, các khái niệm và phát biểu về big data được diễn giải chi tiết hơn và các đặc trưng này có thêm Veracity (trở thành 4V), rồi đến Value (trở thành 5V) Các đặc trưng này như sau:
- Volume: Dung lượng của dữ liệu được tạo ra từ các nguồn phát sinh Dung lượng này là rất lớn nên cần phải được lưu trữ bằng các hệ thống phù họp
- Velocity: Tốc độ phát sinh dữ liệu và tốc độ lan truyền dữ liệu Big data thường
có tốc độ sinh dữ liệu theo thời gian thực (real-time)
- Variety: Sự đa dạng về các loại dữ liệu được phát sinh từ nhiều nguồn khác nhau Các hệ quản trị cơ sở dữ liệu quan hệ truyền thống tổ chức dữ liệu có cấu trúc thành các bảng, nhưng trên thực tế, hơn 80% lượng dữ liệu sinh ra là không có cấu trúc và ở nhiều định dạng khác nhau
- Veracity: Sự đáng tin cậy về chất lượng của dữ liệu Chất lượng của dữ liệu sẽ ảnh hưởng rất lớn đến kết quả của các phương pháp phân tích dữ liệu
- Value: Sự đáng giá của dữ liệu Dữ liệu được phát sinh từ nhiều nguồn; do đó, việc lựa chọn nguồn dữ liệu nào đế thu nhận và phân tích sao cho có thế đáp ứng được càng nhiều yêu cầu phân tích thì sẽ càng đáng giá
2.1.3 ứng dụng hiện tại của big data
Hiện nay, big data đang phát triển một cách mạnh mẽ bỏi rất nhiều tổ chức và tập đoàn lớn trên Thế giói Sự phát triển này đã kích thích sự ra đời của các công nghệ có thể kể đến như sau:
Trang 17- Công nghệ lưu trữ: DAS (Công nghệ lưu trữ song song trên các ổ đĩa tốc độ cao), các công nghệ lưu trữ chia sẻ như SAN, NAS
- Công nghệ phần mềm: Xuất hiện các giải pháp triển khai và phát triển hệ thống lưu trữ và xử lý phân tán mạnh mẽ như GFS, HDFS, NoSQL, IoT, v.v
- Dịch vụ công nghệ thông tin điển hình: Amazon, Facebook, Twitter, Google Drive, v.v
Các lĩnh vực đời sống hiện đang ứng dụng big data gồm có: Quản lý chính phủ, tài chính, sản xuất, giáo dục, y học, v.v
2.2 Giói thiệu về Apache Hadoop
Apache Hadoop (sau đây, tôi xin được gọi ngắn gọn là “Hadoop”) là một framework (tức
là bộ công cụ phát triển phần mềm; sau đây, tôi xin được sử dụng từ “framework” cho các diễn đạt trong toàn bộ nội dung tiếp theo) hỗ trợ việc xử lý các tập dữ liệu lớn được lưu trữ phân tán trong các cụm (cluster) máy tính Hadoop được phát triển bằng ngôn ngữ Java
2.2.1 Kiến trúc của Hadoop:
❖ Hadoop có 4 thành phần như sau:
- Hadoop Common: Là thư viện và các tiện ích về Java để các thành phần khác triệu gọi nhằm khởi động Hadoop
- Hadoop YARN (Yet Another Resource Negotiator): Là framework dành cho việc lập lịch các tác vụ và quản lý tài nguyên trong cụm máy tính
- HDFS (Hadoop Distributed File System): Là hệ thống lưu trữ dữ liệu phân tán Hệ thống này có giá thành tương đối rẻ nhưng rất đáng tin cậy
- Bộ xử lý Map-Reduce: Là các chương trình thực thi các giải thuật Map và Reduce một cách song song trên hệ thống máy tính phân tán để đưa ra kết quả nhanh chóng đối với tập dữ liệu lớn
Trang 18Sơ đồ khối các thành phần của Hadoop như Hình 1 [5] dưới đây:
MapReduce (Distributed Computation)
HDFS (Distributed storage) YARN Framework Common utilities
- Slave có vai trò: Tiếp nhận các yêu cầu điều phối từ Master và thực hiện theo
Trang 19+ DataNode đóng vai trò Slave: tiếp nhận yêu cầu về thao tác nhận được từ NameNode Từ yêu cầu đó, DataNode xác định được khối dữ liệu cần thao tác để cho phép chương trình khách bên ngoài thao tác đến khối dữ liệu đó
- Các mối liên hệ giữa các cặp đối tượng như sau:
+ Client - NameNode: Yêu cầu (request) và hồi đáp (response) đối vói metadata
Trang 20+ NameNode - DataNode: Chuyển các yêu cầu từ Client đến DataNode và điều phối DataNode
+ Client - DataNode: Trực tiếp đọc, ghi các khối dữ liệu
- HDFS được thiết kế để có thể chạy được trên các phần cứng phổ thông
- HDFS có khả năng không bị sai lệch (resilient) nhờ có cơ chế Replication Cơ chế này sẽ tạo ra các bản sao của mỗi khối dữ liệu và lưu trữ ở các DataNode khác trong cùng cụm máy tính
2.2.3 Sơ đồ xử lý của Map-Reduce
Sơ đồ xử lý của Map-Reduce phù họp với kiến trúc của Hadoop Trong đó thể hiện các bước xử lý của một cặp thao tác Map-Reduce
Sơ đồ xử lý của Map-Reduce như trong Hình 4 được giải thích như sau:
- Map-Reduce thực hiện 3 giai đoạn có tên là: Map, Shuffle và Reduce
+ Giai đoạn Map: xử lý dữ liệu ban đầu và cho ra danh sách các cặp <Key, Value>
+ Giai đoạn Reduce: là sự kết họp của giai đoạn Shuffle và Reduce để rút gọn danh sách các cặp <Key, Value>
- NameNode có vai trò là Master, còn các DataNode có vai trò là các Slave
- Các bước xử lý từ giai đoạn Map đến Reduce:
+ ứng dụng của người dùng (User hay Client) gửi một yêu cầu vào cụm máy tính Ví dụ: “Đếm số lượng từ” Yêu cầu này sẽ đến NameNode
+ Sau khi nhận biết các thông tin, NameNode chuyển yêu cầu này đến các
DataNode chứa các khối dữ liệu tương ứng
+ Mỗi DataNode sẽ thực hiện hàm Map trên các khối dữ liệu của nó đế sinh ra một danh sách các cặp <Key, Value tạm>
+ Một DataNode nào đó sẽ được chọn đế thực hiện hàm Reduce Ví dụ như DataNode_l trong sơ đồ này
+ DataNode được chọn sẽ thực thi hàm Reduce trên kết quả của hàm Map ở các DataNode như đã được tạo ra ở bước trên
Trang 21+ Hàm Reduce sẽ tạo ra kết quả là danh sách các cặp <Key, Value cuối> rồi gửi kết quả này tói NameNode
+ NameNode sử dụng kết quả này để trả led đốỉ yêu cầu của ứng dụng
Hình 4: Sơ đồ xử lý của Map-Reduce
Ví du: Bài toán Word Count: Đếm số lần xuất hiện của mỗi từ (word) trong 2 khối dữ liệu dạng text (vần bản) khác nhau
Ta chỉ xét hoạt động và kết quả của Map-Reduce, tức là từ sau thòi điểm DataNode nhận được yêu càu từ NameNode cho đến lúc các DataNode thực hiện xong và có kết quả cuối cùng để gửi cho NameNode
Hình 5 dưới đây thể hiện dữ liệu input và kết quả của các giai đoạn Map và Reduce
Trang 22Input Map Reduce
23 Giới thiệu về streaming data
23.1 So sánh batch processing vói streaming processing
- Batch processing (xử lý dữ liệu theo 10): là sụ xử lý các khối dữ liệu đã được lưu trữ trong hệ thống qua một khoảng thời gian nào đố (gọi là batch data), thường là
đủ dài để có thể lưu trữ được một lượng dữ liệu theo yêu cầu phân tích Do đố, mễỉ khỉ xử lý dữ liệu, ứng dụng thường tốn khá nhiều thời gian để thao tác trên lượng lổn dữ liệu đã lưu trữ
Map-Reduce của Hadoop được sử dụng cho việc xử lý dữ liệu theo lô
Batch processing thường được ứng dụng cho các yêu cầu phân tích và tổng hợp thông tin một cách chỉ tiết để phục vụ cho việc đánh giá tổng thể hon
- Streaming processing (xử lý dữ liệu theo dòng): là sự xử lý lượng dữ liệu ngay khỉ
nố được sinh ra và gửi đến hệ thống cố cài đặt ứng dụng xử lý dữ liệu Sự xử lý này sẽ cho ra các kết quả phân tích ngay lập tức Do xử lý dữ liệu ngay khỉ đến hệ thống và chưa lưu xuống thiết bị lưu trữ nên dữ liệu sễ được nạp ngay vào bộ nhớ của hệ thống máy tính Do đó, thời gian xử lý lượng dữ liệu sẽ rất nhanh
Streaming processing thường được ứng dụng cho các yêu càu phân tích tức thời trên các dữ liệu phát sinh liên tục
Trang 232.3.2 ứng dụng streaming data trong thực tế
- Streaming data được ứng dụng trên các hệ thống cần thông báo tức thời như: phát hiện hành vi gian lận trên các trang web thương mại điện tử, phát hiện sự sai lệch hay biến thiên vượt ngưỡng của các thông số của các máy móc trong các hệ thống sản xuất, v.v
- về công nghệ phần mềm, hiện nay đã có nhiều framework được phát triển để xây
dựng các ứng dụng xử lý streaming data như: Apache Spark, Apache Storm, Apache Kafka, Apache Flink, Apache Samza, WS02 Stream Processor (WS02 SP), v.v
2.4 Giới thiệu về Apache Spark
2.4.1 Spark trong hệ sinh thái của Hadoop
Qua nhiều năm phát triển, Hadoop đã được xây dựng thành một bộ gồm nhiều framework Người ta gọi đó là Hệ sinh thái Hadoop (Hadoop ecosystem)
Theo như Hình 6 [29] dưới đây, ta có thể thấy Spark là một thành phần trong hệ sinh thái của Hadoop
STORM
YARN ịỆịM E S O S
m InMBẵ
€>•
n Ì4t 8fẠF
IX|-AAp.d-.r l’ ỉuoieeper s
cloudera
Manager
Hình 6: Spark trong hệ sinh thái Hadoop
Do đó, khi Spark được triển khai, nó sẽ gắn chặt với Hadoop
Trang 24Có ba cách triển khai Spark vào hệ thống Hadoop như Hình 7 [5] dưới đây, gồm có:
- Standalone (hay Spark Standalone): cách triển khai này sẽ đặt Spark ở ngay phía trên HDFS và Spark sẽ truy cập HDFS một cách trực tiếp
- Hadoop YARN: cách triển khai này sẽ làm cho Spark hoạt động thông qua YARN Khi đó, các thao tác truy cập HDFS đều được thực hiện thông qua YARN
- Spark in MapReduce (SIMR): cách triển khai này sẽ được sử dụng khỉ người dùng muốn chạy các tác vụ của Spark cùng với sự hỗ trợ của các chức năng Map-Reduce
Yarn J Mesos MapReduce
Hình 7: Ba cách triển khai Spark vào hệ thống Hadoop
2.4.2 Kiến trúc của Spark
Kiến trúc của spark được trình bày như Hình 8 [30] dưới đây, gồm cố các thành phần như sau:
- Apache spark Core: Là cơ sở nền tảng cho tất cả các thành phần khác được xây dựng lên Nó cung cấp khả năng tính toán trên bộ nhớ và cả các truy cập thiết bị lưu trữ ngoài
- spark SQL: Là thành phần cung cấp khả năng truy cập dữ liệu có cấu tróc và bán cấu trúc
- Spark Streaming: Là thành phần hỗ trợ xử lý dữ liệu keo kiểu streaming processing
Trang 25- MLlib (Machine Learning Library): Là framework học máy (Machine learning) phân tán dựa trên cơ chế phân tán và tính toán trên bộ nhớ của Spark
- GraphX: Là framework dành cho xử lý đồ thị phân tán
- SparkR: Là thành phần cho phép sử dụng Spark bằng cú pháp của ngôn ngữ R R
là ngôn ngữ dành cho việc thao tác, tính toán trên dữ liệu và hiển thị kết quả ở dạng đồ họa Với SparkR, các công việc này sẽ được thực thi một cách song song trên hệ thống máy tính phân tán
(Streaming) H learning) H Computation) I
Apache Spark Core API
Hình 8: Các thành phần của Spark*
2.4.3, ứng dụng của Spark
Spark được phát triền để là một framework có khả năng hỗ trợ nhiều loại bài toán về xử
lý tập dữ liệu lớn trên hệ thống máy tính phân tán như: xử lý dữ liệu dạng batch data, streaming data, các ứng dụng tương tác theo thời gian thực, v.v Trong luận văn này, Spark được đề cập chủ yếu về khía cạnh xử lý streaming data
Spark không phải là framework xử lý dữ liệu theo kiều streaming processing thực thụ, mà
là xử lý dữ liệu theo kiểu lai streaming processing (hybrid-streaming processing), tức là theo kiểu lai giữa batch processing với streaming processing Trong khi streaming processing thực thụ sễ xử lý mẫỉ gối dữ liệu ugay khỉ nó đến, thì Spark không xử lý ngay
mà chờ một khoảng thời gian ngắn để dữ liệu đến và lưu trữ liên tục với nhau tạo thành một lô dữ liệu; khi đó, Spark mới lấy lô dữ liệu đó và nạp vào bộ nhớ để xử lý Điều này tận dụng được các ưu điểm của batch data mà vin đảm bảo kết
Trang 26quả xử lý dữ liệu được đưa ra nhanh chóng cho người dùng Khoảng thời gian chờ này của Spark sẽ được thiết lập bed người sử dụng tùy theo yêu cầu hay ngữ cảnh hoạt động thực tế của ứng dụng
Do đó, Spark được ứng dụng trong nhiều lĩnh vực của đời sống như: tài chính, thương mại điện tử, y tế, giải trí đa phương tiện, du lịch, v.v
Trong lĩnh vực khoa học máy tính, Spark được ứng dụng cho các nghiên cứu như: Học máy (Machine learning), Phân tích tương tác (Interactive analysis), Tính toán mờ (Fuzzy computing), v.v
2.4.4 Giói thiệu về Spark streaming
Do luận văn này sẽ xây dựng một úng dụng bằng Spark sử dụng thu viện của thành phần Spark Streaming nên phần này sẽ giới thiệu về Spark Streaming
❖ Quá trình tiếp nhận dữ liệu và đưa ra kết quả của spark streaming:
Spark Streaming bao gồm các API để ứng dụng gọi nhằm thực hiện xử lý dữ liệu từ các nguồn thu nhận dữ liệu như Kafka, Flume, Twitter, ZeroMQ, Kinesis, TCP socket Các
API này là các hàm như map, reduce, join, window, v.v Chúng thực hiện các
giải thuật tính toán rồi cho ra kết quả là dữ liệu đã qua xử lý Sau đó, các dữ liệu này sẽ được lưu xuống các hệ thống lưu trữ
Quá trình này được mình họa như Hình 9 [7] dưới đây:
Trang 27❖ Sự thực thi bên trong của Spark Streaming:
Spark Streaming nhận luồng dữ liệu (data stream) đầu vào và chia nó thành các lô dữ liệu (data batch) Sau đó, đơn vị xử lý (Spark engine) sẽ xử lý các lô dữ liệu này và tạo ra kết quả cũng là một lô dữ liệu
Hình 10 [7] dưới đây minh họa sự thực thi bên trong của Spark Streaming
Hình 10: Sự thực thi bên trong của Spark Streaming
Giải thích: Sau khi nhận luồng dữ liệu đầu vào từ các nguồn như Kafka, Flume, v.v , Spark sẽ tổ chức nó thành DStream (Discretized Stream) Thực chất thì DStream là một luồng dữ liệu liên tục mà mỗi phần tử trong đó được gọi là RDD (Resilient Distributed Dataset) Mỗi RDD cũng gồm có các phần tử dữ liệu Mỗi RDD sẽ được coi như là một DStream đã chuyển đổi (Transformed DStream)
Mối quan hệ này giữa DStream và RDD có thể được minh họa như Hình 11 dưới đây:
Hình 11: Mối quan hệ chứa đựng giữa DStream và RDD
Trang 28CHƯƠNG 3: MÔT SÓ CÔNG TRÌNH LIÊN
Kỳ Tổ chức này thực hiện việc nghiên cứu và triển khai hệ thống quan trắc và phân tích [25] có nhiều mục tiêu tương tự như đề tài này Và hệ thống của họ cũng có khả năng triển khai đến từng hộ gia đình Tuy nhiên, mục tiêu nghiên cứu và các tiêu chuẩn đánh giá của
họ là theo quy chuẩn của Hoa Kỳ mà không phải là bộ thông số phù họp với điều kiện của Việt Nam Hơn nữa, hệ thống mà họ triển khai có giá thành khá cao, không mang tính chất đại trà, gần gũi với đại đa số người dân
3.2 Ở Việt Nam
Ở Việt Nam, hiện đã có một số dự án đã và đang được triển khai trong thực tế như:
- Dự án “Xây dựng hệ thống mạng cảm biến, kho dữ liệu đám mây phục vụ giám sát môi trường, cảnh báo và giảm nhẹ thiên tai” [19] được thực hiện từ năm
2012 Đây là dự án được thực hiện bởi sự họp tác giữa Bộ Thông tin và Truyền thông Việt Nam với Bộ Nội vụ và Truyền thông Nhật Bản, Viện công nghiệp phần mềm và nội dung số Việt Nam (NISCI) cùng tập đoàn Panasonic Dự án này thực hiện việc lắp đặt một số trạm quan trắc ở một số thành phố lớn của Việt Nam Các trạm quan trắc này sẽ lấy số liệu của một vài thông số để các chuyên gia phân tích và đưa ra các cảnh báo về môi trường nước sông hồ Có rất ít trong số các thông số này phục vụ cho việc đánh giá mức độ ảnh hưởng đến sức khỏe trong nước ăn uống
- Các bộ sản phẩm quan trắc và giám sát chất lượng nước được thực hiện bởi các công ty công nghệ ở Việt Nam cho các đối tác trong nước Các bộ sản phẩm này thường bao gồm các thiết bị đo đạc khá lớn và đắt tiền kèm với
Trang 29hệ thống server lưu trữ dữ liệu và các phần mềm hỗ thực hiện việc trực quan hóa dữ liệu để hỗ trợ các chuyên gia trong việc giám sát chất lượng nước Một
số bộ sản phẩm điển hình:
+ Công ty Dynamic Solutions International triển khai dự án "Đánh giá chất lượng nước cấp Hà Nội" [20]: Đo đạc mức độ của Asen và các thông số khác gồm Nitrat, Mangan, sắt, Độ cứng, Clo dư , Coliform tổng số, E-coli Thực hiện đo đạc tại các hộ gia đình với tần suất đo là 3 tháng/lần
+ Ngoài ra còn có các bộ sản phẩm thực hiện việc quan trắc và giám sát chất lượng nước mặt và nước ngầm của các công ty công nghệ khác như: Hệ thống Quan trắc nước mặt tự động DQA800 của công ty AiPT [21], Hệ thống Quan trắc môi trường/quan trắc nước mặt của công ty Hach Việt Nam [22], Trạm quan trắc nước mặt [23] và Trạm quan trắc nước ngầm [24] của tông ty công nghệ Việt An
Nhìn chung, ở Việt Nam hiện tại vẫn chưa có công trình thực sự dành cho riêng cho việc giám sát và phân tích chất lượng nước ăn uống mà có thể triển khai đến từng hộ gia đình với việc ghi nhận lượng dữ liệu lớn một cách liên tục để phục vụ tốt cho việc cảnh báo tức thời và đưa ra các dự báo về chất lượng nước ăn uống cho người dân
Trang 30CHƯƠNG 4: PHƯƠNG PHÁP GIẢI QUYẾT
VẤN ĐÈ
Chương này trình bày về các khía cạnh của hệ thống giám sát chất lượng nước ăn uống bao gồm:
- Bộ các thông số chất lượng cần giám sát
- Đồ hình của mạng lưới cấp nước tham khảo
- Phương pháp xây dựng một ứng dụng bằng framework Spark để giám sát theo thời gian thực đối với các thông số đã đề xuất
- Một số đề xuất dành cho bài toán dự báo chất lượng nước ăn uống trong mạng lưới
4.1 Bộ thông sổ chất lượng cần giám sát
Với mục tiêu như đã trình bày ở chương 1, đề tài này sẽ đề xuất một bộ các thông số chất lượng nước ăn uống thỏa mãn các tiêu chí như sau:
- Các thông số phải được chọn lọc từ tài liệu QCVN 01:2009/BYT
- Các thông số này phải có khả năng được đo đạc bằng các cảm biến điện tử (sensor) tương ứng đang có trên thị trường trong hoặc ngoài nước mà giá thành chấp nhận được, kích thước của cảm biến phải khá nhỏ và kết quả đo đạc có sai số thấp Tiêu chí này là nhằm cung cấp bộ thông số cho các nhóm xây dựng thiết bị đo nhằm hiện thực hóa đề tài này trong tương lai gần
- Tổng họp tất cả các thông số trong bộ này vừa đủ để có được sự đảm bảo tối thiểu về chất lượng nước ăn uống trên nguồn nước được cung cấp bởi nhà máy cấp nước Tức là các thông số không có mặt trong bộ này là chắc chắn đã được đảm bảo chất lượng qua quá trình xử lý nước của nhà máy trước khi đưa nước hòa vào mạng lưới và rất khó xuất hiện các bất thường đối với các thông số đó Bên cạnh đó, khi tham khảo ý kiến của chuyên gia ngành Môi trường học là PGS.TS Nguyễn Phước Dân thuộc trường Đại học Bách Khoa Tp Hồ Chí Minh, và nhận được sự trả lời từ các câu hỏi khảo sát đối với một số chuyên viên thuộc công ty cấp nước Sawaco đang đóng trên địa bàn thành phố Hồ Chí Minh thì bộ thông số này được bố sung thêm một thông số nữa là Áp lực nước