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 đả
Trang 1TR ƯỜNG ĐẠI HỌC BÁCH KHOA
-
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01
TP H Ồ CHÍ MINH, THÁNG 12 NĂM 2018
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
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ó)
CH Ủ TỊCH HỘI ĐỒNG TR ƯỞNG KHOA KH&KTMT
Trang 3TR ƯỜNG ĐẠI HỌC BÁCH KHOA Độ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 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 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
Tp HCM, ngày 03 tháng 12 năm 2018
CÁN B Ộ HƯỚNG DẪN 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
CHƯƠNG 4: PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ 19
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 M ỤC 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 M ỤC 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:
Hình 1: Các thành ph ần của Hadoop
Kiến trúc lưu trữ và xử lý dữ liệu của Hadoop được tổ chức theo dạng
Master-Slave như Hình 2 dưới đây, trong đó:
- Master có vai trò: Tiếp nhận các yêu cầu về metadata (tức là các dữ liệu dùng
cho việc điều khiển) từ bên ngoài, xử lý các yêu cầu đó rồi phát ra các yêu cầu
để điều phối hoạt động của các Slave
- 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
Hình 2: Ki ến trúc Master-Slave của Hadoop
Trang 19- Kiến trúc của HDFS gồm có hai đối tượng chính là: NameNode và DataNode
+ NameNode đóng vai trò Master: tiếp nhận các yêu cầu xử lý từ chương trình
khách (client) bên ngoài Sau khi nhận biết các thông tin trong metadata,
NameNode sẽ xác định được khối dữ liệu (block) nào trên DataNode nào cần được thao tác và gửi yêu cầu xuống DataNode đó
+ 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_1 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ả lời đối yêu cầu của ứng dụng
Hình 4: S ơ đồ xử lý của Map-Reduce
Ví dụ: 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 22Hình 5: Ví d ụ “Word Count”
2.3 Gi ới thiệu về streaming data
2.3.1 So sánh batch processing v ới streaming processing
- Batch processing (xử lý dữ liệu theo lô): 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ỗi khi 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 chi tiết để phục vụ cho việc đánh giá tổng thể hơn
- Streaming processing (xử lý dữ liệu theo dòng): là sự xử lý lượng dữ liệu ngay
khi 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
khi đế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, WSO2 Stream Processor (WSO2 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
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 khi 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 có sẵn của Hadoop
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
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
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ỗi gói dữ liệu ngay khi 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à vẫn đả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 bởi 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 thư 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 minh họa như Hình 9 [7] dưới đây:
Hình 9: Quá trình ti ếp nhận dữ liệu và đưa ra kết quả của Spark Streaming
Trang 27Sự 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
QUAN
Chương này trình bày một số dự án và sản phẩm liên quan đến giám sát và phân tích
chất lượng nước ăn uống đã và đang triển khai trên Thế giới và Việt Nam
3.1 Trên Th ế giới
Trên Thế giới, hiện tại, nhiều quốc gia tiên tiến đã có một số tổ chức thực hiện các đề
tài nghiên cứu về chất lượng nước cung cấp cho tiêu dùng Trong số đó, tôi thu thập được các thông tin rõ ràng nhất là từ tổ chức EPA (Environmental Protection Agency)
của Hoa 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
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