Tải bản đầy đủ (.pdf) (26 trang)

Nghiên cứu công nghệ điện toán đám mây ứng dụng trong quản lý dữ liệu lớn (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (838.78 KB, 26 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
----------------------------------------

Hồng Minh Hương

NGHIÊN CỨU CƠNG NGHỆ ĐIỆN TỐN
ĐÁM MÂY ỨNG DỤNG TRONG QUẢN LÝ
DỮ LIỆU LỚN

Chuyên nghành: Truyền dữ liệu và Mạng máy tính
Mã số: 60.48.15

TĨM TẮT LUẬN VĂN THẠC SỸ

H À NỘ I - 2 0 1 2


Luận văn được hồn thành tại:
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG

Người hướng dẫn khoa học: TS. Hồng Lê Minh
Phản biện 1: TS. Nguyễn Trọng Đường
Phản biện 2: PGS.TS. Lê Huy Thập

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn
thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thơng
Vào lúc: 09 giờ30 ngày 20 tháng 01 năm 2013
Có thể tìm hiểu luận văn tại:
Viễn thơng

- Thư viện của Học viện Cơng nghệ Bưu chính




1
MỞ ĐẦU
Trước đây, các công ty, tổ chức thường chỉ có thể quản lý
được các dữ liệu được lưu trữ trong cơ sở dữ liệu truyền thống. Tuy
nhiên, hiện nay với sự phổ biến của các mạng xã hội, weblog, thiết
bị cảm biến, các hình ảnh…, các thơng tin nằm rải rác nhiều nơi và
có thể mang lại những thơng tin hữu ích nếu được tập hợp, xử lý
trong một khoảng thời gian giới hạn. Những thông tin này được biết
đến như là Dữ liệu lớn (Bigdata), chúng liên tục sản sinh, dưới mọi
hình thức và định dạng khác nhau. Những đặc trưng này khiến các
công ty không thể tự mình lưu trữ, kiểm sốt mà phải nhờ đến cơng
nghệ điện toán đám mây. Về lý thuyết, điện toán đám mây sẽ cho
phép doanh nghiệp không cần tập trung quá nhiều cho cơ sở hạ tầng
hoặc nâng cấp ứng dụng, khơng địi hỏi nguồn nhân lực lớn và có thể
dễ dàng thay đổi quy mô khi cần. Tuy nhiên, khi quan tâm tới dữ liệu
lớn được lưu trữ trên đám mây, một điều quan trọng khơng thể bỏ
qua đó là cơng cụ quản lý và phân tích dữ liệu. Thực tế cho thấy chỉ
những doanh nghiệp sử dụng dữ liệu lớn cùng với các biện pháp
phân tích dữ liệu biến đổi mới tạo ra những cơ hội mới trong kinh
doanh. Chính yếu tố đó làm tăng sự quan tâm đến công nghệ mã
nguồn mở Hadoop, công nghệ này giúp các cơng ty xử lý khối lượng
cỡ terabyte và thậm chí là petabytes dữ liệu phức tạp tương đối hiệu
quả với chi phí thấp hơn. Vì vậy, em chọn nghiên cứu đề tài
“ Nghiên cứu cơng nghệ điện tốn đám mây ứng dụng trong quản lý
dữ liệu lớn“, nghiên cứu về cơng nghệ điện tốn đám mây, xử lý dữ
liệu lớn trên đám mây thông qua công nghệ Hadoop cùng kỹ thuật



2
MapRecude cho phép xử lý dữ liệu phân tán một cách song song.
Thêm vào đó, đề tài cũng đưa ra một ví dụ áp dụng HadoopMapReduce vào xử lý dữ liệu lớn thuộc dự án “Hệ thống thí điểm về
đo đạc dữ liệu mạng cảm biến môi trường và cảnh báo tại Cần
Thơ“ dựa trên mơ hình kho dữ liệu đám mây iDragon, mở đầu cho
việc giải quyết bài toán dữ liệu lớn ở Việt Nam.


3
CHƯƠNG 1: CƠNG NGHỆ ĐIỆN TỐN ĐÁM MÂY VÀ
LƯU TRỮ DỮ LIỆU ĐÁM MÂY
1.1. Cơng nghệ điện tốn đám mây.
1.1.1. Đặc điểm của điện toán đám mây
Theo Wikipedia:
“Điện toán đám mây (cloud computing) cịn gọi là điện
tốn máy chủ ảo, là mơ hình điện tốn sử dụng các cơng nghệ
máy tính và phát triển dựa vào mạng Internet”.
Điện tốn đám mây có các đặc điểm quan trọng sau:
x

Tự phục vụ theo nhu cầu.

x

Truy xuất diện rộng.

x

Dùng chung tài nguyên.


x

Khả năng co giãn linh hoạt

x

Điều tiết dịch vụ

1.1.2. Mơ hình kiến trúc điện toán đám mây
1.1.2.1. SaaS (Software as a Service)
Trong mơ hình này, các ứng dụng hồn chỉnh được cung
cấp cho khách hàng dưới dạng dịch vụ được khách hàng yêu cầu
và khách hàng chỉ phải trả phí sử dụng theo thời gian và tính
năng mà họ yêu cầu.
1.1.2.2. PaaS(Platform as a Service)
Nó cung cấp tất cả các tính năng cần thiết để hỗ trợ chu
trình đầy đủ của việc xây dựng và cung cấp một ứng dụng, dịch


4
vụ web sẵn sàng trên Internet mà không cần bất kì thao tác tải hay
cài đặt phần mềm cho những người phát triển, quản lý tin học,
hay người dùng cuối.
1.1.2.3. IaaS(Infrastructure as a Service)
Cơ sở hạ tầng như một dịch vụ (IaaS) là việc phân phối
phần cứng máy tính (máy chủ, công nghệ mạng, lưu trữ và không
gian dữ liệu) như một dịch vụ, nó cũng có thể bao gồm việc cung
cấp các hệ thống điều hành và các công nghệ ảo hóa tài nguyên.
1.1.2.4. Giao thức truy cập dữ liệu đám mây
x


Giao thức Network File System (NFS)

x

Giao thức Common Internet File System (CIFS)

x

Giao thức World Wide Web Distributed Authoring

and Versioning (WebDAV)
1.1.2.5. Các hệ thống tập tin
x

Hệ thống tập tin Unix

x

Hệ thống tập tin FAT

x

Hệ thống tập tin NTFS

1.1.3. Mô hình triển khai điện tốn đám mây.
1.1.3.1. Đám mây cơng cộng
Đám mây công cộng là những đám mây mở cho người
dùng mà ứng dụng lưu trữ, các nguồn tài nguyên khác có sẵn và
được cung cấp bởi một số nhà cung cấp dịch vụ thông qua mạng

Internet.


5
1.1.3.2. Đám mây cục bộ
Đám mây cục bộ còn được gọi là đám mây riêng. Đây là
một mơ hình mà trong đó hạ tầng đám mây được sở hữu bởi một
tổ chức và phục vụ cho người dùng của tổ chức đó. Đám mây
riêng có thể được đặt bên trong hoặc bên ngoài tổ chức sở hữu.
1.1.3.3. Đám mây lai
Đám mây lai là sự kết hợp giữa đám mây công cộng và
đám mây riêng, do đó chúng thừa kế được lợi ích và các tính năng
cốt lõi của cả hai loại hình đám mây. Do đó vấn đề bảo mật được
an tồn hơn và chi phí giảm thiểu, điện tốn đám mây lai phù hợp
với chiến lược của nhiều tổ chức lớn.
1.1.3.4. Đám mây cộng đồng
Các đám mây cộng đồng là các đám mây được chia sẻ bởi
một số tổ chức và hỗ trợ một cộng đồng cụ thể có mối quan tâm
chung như: mục đích, yêu cầu an ninh, chính sách. Tùy chọn này
là tốn kém hơn nhưng có thể đáp ứng về sự riêng tư, an ninh hoặc
tuân thủ các chính sách tốt hơn.
1.2. Lưu trữ dữ liệu đám mây.
Lưu trữ đám mây chỉ đơn giản là việc cung cấp dữ liệu ảo
hóa theo yêu cầu, lưu trữ dữ liệu như một dịch vụ (DaaS – Data
Storage as a Service), có nghĩa là “ dữ liệu được chuyển giao
trong mạng dựa theo các cấu hình lưu trữ ảo và các dịch vụ dữ
liệu liên quan, trên cơ sở đảm bảo các yêu cầu về cấp độ dịch vụ”.


6

1.2.1. Lưu trữ dữ liệu như một dịch vụ (DaaS).
Lưu trữ dữ liệu như một dịch vụ trừu tượng hóa dữ liệu
lưu trữ đằng sau một tập hợp các giao diện dịch vụ cung cấp theo
yêu cầu. Quản lý dữ liệu thường được thực hiện theo khối của các
giao diện lưu trữ dữ liệu chuẩn, hoặc thông qua một API, hoặc
thơng qua một giao diện người dùng dựa trên trình duyệt.
1.2.2. Quản lý dữ liệu trong lưu trữ đám mây
Trong lưu trữ đám mây một vấn đề quan trọng đó là hiệu
quả tốt nhất, là chất lượng lưu trữ, đảm bảo nhu cầu của các nhà
cung cấp ứng dụng, vừa bổ sung thêm các dịch vụ dữ liệu.. Bằng
cách sử dụng các loại siêu dữ liệu khác nhau trong giao diện lưu
trữ đám mây, có thể tạo ra một giao diện cho phép đáp ứng các
yêu cầu dịch vụ mà quản lý dữ liệu không phức tạp.


7
CHƯƠNG 2: DỮ LIỆULỚN BIGDATA VÀ CÔNG NGHỆ
HADOOP.
2.1. Tổng quan về lưu trữ dữ liệu lớn
Dữ liệu Lớn (Big Data) có 3 đặc điểm quan trọng nhất
khác với dữ liệu truyền thống: số lượng bản ghi lớn, cần xử lý
trong thời gian giới hạn và phi cấu trúc.
Hadoop giúp các cơng ty xử lý khối lượng cỡ terabyte và
thậm chí là petabytes dữ liệu phức tạp tương đối hiệu quả với chi
phí thấp hơn.
2.2. Kiến trúc hệ thống Hadoop DFS
2.2.1. Giới thiệu chung
2.2.1.1. Giới thiệu Framework Hadoop
Hadoop là gì?
Apache Hadoop định nghĩa:

“Apache Hadoop là một framework dùng để chạy những
ứng dụng trên một cluster lớn được xây dựng trên những phần
cứng thơng thường. Hadoop hiện thực mơ hình Map/Reduce, đây
là mơ hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phân
đoạn khác nhau, và các phần này sẽ được chạy song song trên
nhiều node khác nhau. Thêm vào đó, Hadoop cung cấp 1 hệ thống
file phân tán (HDFS) cho phép lưu trữ dữ liệu lên trên nhiều node.
Cả Map/Reduce và HDFS đều được thiết kế sao cho framework sẽ


8
tự động quản lý được các lỗi, các hư hỏng về phần cứng của các
node.”
Kết luận:
x

Hadoop là một framework cho phép phát triển các ứng

dụng phân tán.
x

Hadoop viết bằng Java nhưng vẫn cho phép phát triển

các ứng dụng phân tán bằng một số ngơn ngữ lập trình khác như
C++, Python, Pearl.
x

Hadoop cung cấp một phương tiện lưu trữ dữ liệu

phân tán trên nhiều nod là HDFS, che giấu tất cả các thành phần

phân tán, các nhà phát triển ứng dụng phân tán sẽ chỉ nhìn thấy
HDFS như một hệ thống file cục bộ bình thường.
x

Hadoop giúp các nhà phát triển ứng dụng phân tán tập

trung tối đa vào phần logic của ứng dụng, bỏ qua được một số
phần chi tiết kỹ thuật phân tán bên dưới (phần này do Hadoop tự
động quản lý).
x

Hadoop là Linux-based.

2.2.1.2. Giới thiệu về Hệ thống tập tin phân tán Hadoop (HDFS)
Trong HDFS, mỗi file sẽ được chia ra làm một hay nhiều
block và mỗi block này sẽ có một block ID để nhận diện. Trên
một cluster chạy HDFS, có hai loại node là Namenode và
Datanode. Một cluster có duy nhất một Namenode và có một hay
nhiều Datanode.


9
Namenode chịu trách nhiệm duy trì thơng tin về cấu trúc
cây phân cấp các file, thư mục của hệ thống file và các metadata
khác của hệ thống file.
Các Datanode sẽ chịu trách nhiệm lưu trữ các block thật
sự của từng file của hệ thống file phân tán lên hệ thống file cục bộ
của nó.
2.2.2. Tổ chức dữ liệu HDFS
HDFS chia file ra thành các block, và mỗi block này sẽ

được lưu trữ trên Datanode thành một file riêng biệt trên hệ thống
file cục bộ của nó. Block size mặc định của HDFS là 64MB,
nhưng thông thường trên các hệ thống lớn người ta dùng block
size là 128 MB.
2.2.3. Truy cập dữ liệu
2.2.3.1. Giao diện tương tác
Giao điện command line
Java API của Hadoop
Giao diện Web
2.2.3.2. Permission
Có ba loại quyền truy cập: quyền được phép đọc (r),
quyền ghi (w), và quyền thực thi (x).
Mỗi file và thư mục có chủ sở hữu (owner), một nhóm
(group), và chế độ (mode).
2.3. Kỹ thuật Ánh xạ / Giản lược (Map/Reduce)


10
2.3.1. Giới thiệu mơ hình tính tốn MapReduce
MapReduce sử dụng hai thao tác chính cho việc thực thi
cơng việc ban đầu từ người dùng là hàm map và hàm reduce, có
thể hiểu một cách đơn giản là hàm map tiếp nhận mảnh dữ liệu
input và thực hiện xử lý nào đó (đơn giản như là lọc dữ liệu, hoặc
trích dữ liệu) để chuẩn bị dữ liệu làm đầu vào cho hàm reduce,
hàm reduce thực hiện xử lý riêng của nó và trả ra cho người dùng
một phần nhỏ kết quả cuối cùng của công việc, sau khi tất cả hàm
reduce thực hiện người dùng sẽ có được tồn bộ kết quả của công
việc.
2.3.2. Hàm Map
Người dùng đưa một cặp dữ liệu (key,value) làm input

cho hàm map, và tùy vào mục đích của người dùng mà hàm map
sẽ trả ra danh sách các cặp dữ liệu: (intermediate key,value).
2.3.3. Hàm Reduce
Hệ thống sẽ gom nhóm tất cả value theo intermediate key
từ các output của hàm map, để tạo thành tập các cặp dự liệu với
cấu trúc là (key, tập các value cùng key). Dữ liệu input của hàm
reduce là từng cặp dữ liệu được gom nhóm ở trên và sau khi thực
hiện xử lý nó sẽ trả ra cặp dữ liệu (key, value) output cuối cùng
cho người dùng.
2.3.4. Cơ chế hoạt động HadoopMapReduce


11
Hình 2.6 mơ tả cơ chế hoạt động tổng qt của
HadoopMapReduce. Đầu tiên chương trình client sẽ yêu cầu thực
hiện job và kèm theo là dữ liệu input tới JobTracker, sau đó input
này phân rã thành các split và các split này sẽ được ghi xuống
HDFS. JobTrack có một job scheduler với nhiệm vụ lấy vị trí các
split (từ HDFS do chương trình client tạo), sau đó nó sẽ tạo một
danh sách các task để thực thi. Với từng split thì nó sẽ tạo một
maptask để thực thi, mặc nhiên số lượng maptask bằng với số
lượng split. Còn đối với reduce task, số lượng reduce task được
xác định bởi chương trình client.

Hình 2.6: Cơ chế hoạt động HadoopMapReduce


12
TaskTracker thực thi task được chia thành 2 loại:
TaskTracker thực thi maptask, TaskTracker thực thi reduce task.

Khi một TaskTracker nhận thực thi maptask, kèm theo đó
là vị trí của input split trên HDFS. Sau đó, nó sẽ nạp dữ liệu của
split từ HDFS vào bộ nhớ, rồi dựa vào kiểu format của dữ liệu
input do chương trình client chọn thì nó sẽ parse split này để phát
sinh ra tập các record, và record này có 2 trường: key và value.
Với tập các record này, tasktracker sẽ chạy vòng lặp để lấy từng
record làm input cho hàm map để trả ra output là dữ liệu gồm
(key của dữ liệu output của hàm map, value). Dữ liệu output của
hàm map sẽ ghi xuống bộ nhớ chính, và chúng sẽ được sắp xếp
trước ngay bên trong bộ nhớ chính.
Trước khi ghi xuống local disk, các dữ liệu output này sẽ
được phân chia vào các partition (region) dựa vào hàm partition
(dùng để chia dữ liệu thành nhiều partiion), từng partition này sẽ
ứng với dữ liệu input của reduce task sau này. Và ngay bên trong
từng partition, dữ liệu sẽ được sắp xếp (sort) tăng dần theo
intermediate key (key dữ liệu output của hàm map), và nếu
chương trình client có sử dụng hàm thì hàm này sẽ xử lý dữ liệu
trên từng partition đã sắp xếp rồi. Sau khi thực hiện thành cơng
maptask thì dữ liệu output sẽ là các partition được ghi trên local,
ngay lúc đó

TaskTracker sẽ gửi trạng thái “completed” của


13
maptask và danh sách các vị trí của các partition output trên
localdisk của nó đến JobTracker.
TaskTracker thực hiện reduce task với dữ liệu input là
danh sách các vị trí của một region cụ thể trên các output được
ghi trên localdisk của các maptask. Do biết được số lượng map

task và reduce task, nên TaskTracker một cách định kỳ sẽ hỏi
JobTracker về các vị trí của region mà sẽ phân bổ cho nó cho tới
khi nó nhận được đầy đủ các vị trí region của output của tất cả các
map task trong hệ thống. Với danh sách vị trí này, TaskTracker sẽ
nạp (copy) dữ liệu trong từng region ngay khi map task mà output
chứa region này hoàn thành vào trong bộ nhớ.
Sau khi nạp thành cơng tất cả các region thì TaskTracker
sẽ tiến hành merge dữ liệu của các region theo nhiều đợt mà các
đợt này được thực hiện một cách đồng thời để làm gia tăng hiệu
suất của thao tác merge. Sau khi các đợt merge hoàn thành sẽ tạo
ra các file dữ liệu trung gian được sắp xếp. Cuối cùng các file dữ
liệu trung gian này sẽ được merge lần nữa để tạo thành một file
cuối cùng. TaskTracker sẽ chạy vòng lặp để lấy từng record ra
làm input cho hàm reduce, hàm reduce sẽ dựa vào kiểu format của
output để thực hiện và trả ra kết quả output thích hợp. Tất cả các
dữ liệu output này sẽ được lưu vào một file và file này sau đó sẽ
được ghi xuống HDFS.


14
CHƯƠNG 3: ỨNG DỤNG KHO DỮ LIỆU ĐÁM MÂY
iDRAGON VÀ CÔNG NGHỆ HADOOP
3.1. Kho dữ liệu đám mây iDragon
3.1.1. Giới thiệu điện tốn đám mây iDragon Cloud
Xuất phát từ mơ hình cung cấp dịch vụ điện thoại di động:
điện thoại di động + các trạm BTS, hệ thống quản lý th bao,
cung cấp dịch vụ, tính cước, chuyển vùng,…mơ hình dịch vụ đám
mây iDragon Cloud như Hình 3.1.

Hình 3.1: Mơ hình dịch vụ điện tốn đám mây iDragon Cloud

Các thành phần chính của nền tảng iDragon Clouds bao
gồm các máy tính trạm, thiết bị mạng, máy chủ dữ liệu được kết
nối với nhau theo mơ hình mạng mắt lưới, cho phép người sử
dụng máy tính và các thiết bị đầu cuối dễ dàng truy cập được các
dịch vụ đám mây


15
3.1.2. Các thành phần xây dựng và truy xuất Kho dữ liệu đám
mây iDragon
3.1.2.1. Các thành phần xây dựng Kho dữ liệu đám mây iDragon:
x

Hộp thiết bị mạng đám mây iCloud Box

x

Máy chủ dữ liệu đám mây Cloud Data

3.1.2.2. Các thành phần truy xuất Kho dữ liệu đám mây iDragon
x

Truy xuất bằng máy tính đám mây (Cloud PC)

x

Truy xuất bằng máy tính bảng, điện thoại thơng minh

x


Truy xuất thơng qua trình duyệt Web hỗ trợ HTML5.

3.1.3. Hệ thống thí điểm về đo đạc dữ liệu mạng cảm biến môi
trường và cảnh báo tại Cần Thơ
3.1.3.1. Mơ hình hoạt động hệ thống thí điểm tại Cần Thơ
x

Hệ thống mạng cảm biến đo mực nước sông và giám

sát bằng camera sẽ truyền dữ liệu bao gồm các thơng số đo đạc,
hình ảnh môi trường về trung tâm dữ liệu cảm biến môi trường
đặt tại điểm D (ICT Center) thuộc Sở Thông tin và Truyền thông
Cần Thơ.
x

Trung tâm dữ liệu cảm biến môi trường (TTDLMT) là

nơi quản lý lưu trữ và chia sẽ dữ liệu cảm biến mơi trường theo
mơ hình điện tốn đám mây để báo cáo, cung cấp cho UBND Cần
Thơ và các sở ngành liên quan có thể xem dữ liệu mơi trường trên
các thiết bị máy tính (desktop, laptop, tablet).


16
x

UBND, Sở TT&TT thông qua mạng chuyên dùng

(MAN) của TP. Cần Thơ, thơng qua CloudBox và tài khoản
người dùng có xác thực sẽ truy cập và chỉ xem dữ liệu mơi trường

(hình ảnh, thơng số, báo cáo) gián tiếp trong TTDLMT tại Trung
tâm CNTT-TT.
x

Một phần dữ liệu trong kho dữ liệu cảm biến môi

trường tại TTDLMT của Cần Thơ sẽ được đồng bộ lên Kho dữ
liệu cảm biến môi trường trong Data Center của Viện
CNPM&NDS để phục vụ theo dõi, đánh giá.
3.1.3.2. Triển khai hệ thống
Hệ thống giám sát thí điểm tại Cần Thơ được triển khai tại
các điểm như sau:

Hình 3.4: Sơ đồ hệ thống Cần Thơ


17
x

Điểm A: Hệ thống thu phát sóng khơng dây WiFi treo

trên cột ăn tên của VTN để trung chuyển dữ liệu cảm biến từ các
hệ thống mạng cảm biến về trung tâm dữ liệu môi trường.
x

Điểm B: Hệ thống cảm biến đo mực nước và camera

giám sát tại góc nhà hàng Hoa Sứ, cách điểm D khoảng 440 m
(Line of sight).
x


Điểm C: Hệ thống camera giám sát tại bến tàu du lịch

Ninh Kiều 1, cách điểm D khoảng 720 m (Line of sight). Hệ
thống ở đây tương tự như hệ thống tại điểm B nhưng khơng có
thiết bị cảm biến đo mực nước.
x

Điểm D: Trung tâm dữ liệu môi trường được đặt tại

điểm D (ICT Center) thuộc Sở Thông tin và Truyền thông Cần
Thơ, là nơi quản lý lưu trữ và chia sẽ dữ liệu mơi trường theo mơ
hình dịch vụ điện toán đám mây, cung cấp cho UBND Cần Thơ
và các sở ngành liên quan có thể xem dữ liệu cảm biến mơi
trường trên các thiết bị máy tính (desktop, laptop, tablet) thông
qua phần mềm iDCM.
3.1.3.3. Tổ chức kho dữ liệu mơi trường trên nền tảng điện tốn
đám mây
File XML dữ liệu chứa thông tin các tham số đo của các
cảm biến môi trường. Mỗi loại dữ liệu được lưu trữ trong các kho
của từng loại theo cấu trúc thư mục được phân cấp theo thời gian.
Các file xml dữ liệu cảm biến môi trường được đặt tên bằng ID


18
loại dữ liệu và 13 con số là thời gian UNIX tại thời điểm dữ liệu
được tạo ra.
3.2. Xây dựng ứng dụng mẫu trên Hadoop.
3.2.1. Phân tích yêu cầu
Phân tích các trường của file xml, tìm ra mực nước sâu nhất của

tháng, sử dụng Hadoop MapReduce.
3.2.2. Phát triển ứng dụng với Hadoop
MapReduce hoạt động bằng cách chia quá trình xử lý
thành hai giai đoạn: giai đoạn map và giai đoạn reduce.
Đầu vào giai đoạn map của chúng ta là dữ liệu của các file
xml. Từng bản ghi của dữ liệu output có cấu trúc như sau: key là
tháng và value là mực nước sâu nhất của tháng.
(06,783.0)
(06,783.3)

(06,782.9)
(06,782.4)
(07,783.4)
(07,784.3)

(07,772.4)
(07,779.1)
(07,778.4)


19
Đầu ra từ các chức năng map được xử lý bởi khuôn khổ
MapReduce trước khi được gửi đến chức năng reduce. Xử lý này
sắp xếp và nhóm các cặp khóa-giá trị theo khóa. Vì vậy, tiếp tục
ví dụ, chức năng reduce sẽ có đầu vào sau đây:
(06,[783.0;783.3;782.9;782.4;…;782.1;…])
(07,[783.4;784.3;773.6;772.4;779.1;…;778.4;…])
Mỗi tháng xuất hiện với một danh sách của tất cả các bản
mực nước của nó.Tất cả các chức năng reduce đã làm bây giờ là
lặp thông qua danh sách và chọn lên giá trị tối đa:

(06,783.3)
(07,784.3)
Hadoop cho phép chúng ta sử dụng một hàm combiner
(kết hợp) để xử lý đầu ra của dữ liệu output của hàm map – đầu ra
của hàm combiner này sẽ là dạng đầu vào cho hàm reduce. Thực
chất hàm combiner là một cách tối ưu hóa bài tốn.
Giả sử với dữ liệu sensor mực nước trong tháng 6 được xử lý bởi
hai map ( bởi dữ liệu được chia thành các split khác nhau), map
đầu tiên có dữ liệu đầu ra là:
(06,783.0)
(06,783.3)
(06,782.9)
Map thứ hai sẽ có đầu ra là:


20
(06,782.4)
(06,782.1)
Hàm reduce sẽ gọi một list các các giá trị:
(06, [783.0;783.3;782.9;782.4;782.1])
Với đầu ra là:
(06,783.3)
Vậy mực nước 783.3 cm là mực nước sâu nhất trong list các giá
trị.
Tuy nhiên, khi sử dụng hàm combiner, giống như hàm reduce, tìm
kiếm mực nước sâu nhất cho mỗi dữ liệu đầu ra map, hàm Reduce
sau đó mới được sử dụng:
Max(783.0;783.3;782.9;782.4;782.1)
=max((783.0;783.3;782.9),(782.4;782.1))
=max (783.3,782.4)=783.3

Thực hiện tương tự với tháng 7, ta sẽ được kết quả: (07,784.3)
3.2.3. Thử nghiệm và đánh giá ứng dụng
Hệ thống HDFS là một hệ thống tập tin phân tán với cơ
chế quản lý bên trong nó. Việc kết hợp MapReduce với HDFS
trong bài tốn tìm được mực nước sâu nhất của tháng là mở đầu
cho việc giải quyết bài toán dữ liệu lớn. Trong hệ thống sensor
cảm biến đo mực nước, cứ 10 phút, hệ thống lại gửi dữ liệu là một
file xml, như vậy trong một tháng là hơn 4000 file và một năm là


21
gần 52000 file. Trong thực tế, Hadoop MapReduce không phải là
mơ hình áp dụng được cho tất cả mọi vấn đề mà nó chỉ áp dụng
tốt cho các trường hợp xử lý một khối dữ liệu lớn bằng cách chia
nó ra thành các mảnh nhỏ hơn và xử lý song song.
KẾT LUẬN VÀ KIẾNNGHỊ
Điện toán đám mây là một cách tiếp cận mới trong giải
quyết các vấn đề liên quan đến hạ tầng công nghệ thông tin cho
người dùng, tổ chức và các doanh nghiệp, giúp đạt được những
lợi ích kinh tế thơng qua cắt giảm chi phí trực tiếp cho hạ tầng
công nghệ, chuyển đổi các trung tâm dữ liệu cần đầu tư rất tốn
kém thành mơi trường có giá trị đầu tư tiết kiệm hơn và sinh lợi
nhiều hơn.
Thêm vào đó, sự bùng nổ về dữ liệu hiện nay đã đặt ra
cho chúng ta những thách thức về việc làm thế nào lưu trữ và xử
lý tất cả dữ liệu đó nhưng cũng mang đến các cơ hội chiếm lĩnh
một nguồn thông tin khổng lồ nếu chúng ta có đủ khả năng phân
tích và xử lý nguồn dữ liệu đó, biến những dữ liệu thơ thành
những thơng tin hữu ích với một mức chi phí hợp lý. Việc kết hợp
điện tốn đám mây và cơng nghệ Hadoop, sử dụng MapReduce,

cho phép việc tạo cũng như xử lý lượng dữ liệu lớn trên đám mây
một cách dễ dàng. Với MapReduce, một tiến trình có thể được
chia thành các tiến trình nhỏ hơn để xử lý một cách song song và
kết hợp lại để cho ra kết quả cuối cùng. Nó cho phép khai thác cơ


22
chế song song để xử lý dữ liệu trên đám mây và cung cấp giao
diện đơn giản với cơ sở hạ tầng điện toán phân tán và phức tạp.
Tại Việt Nam, vấn đề lũ lụt thiên tai đã mang lại những
thiệt hại vô cùng lớn về người và tài sản. Vì vậy, với những vấn
đề đưa ra như trên, việc áp dụng điện tốn đám mây (iDragon
Cloud) và cơng nghệ Hadoop vào xây dựng các hệ thống giám sát
môi trường, cảnh báo và giảm nhẹ thiên tai là việc làm hết sức cần
thiết để giảm nhẹ hậu quả về biến đổi mơi trường tồn cầu tại Việt
Nam. Mặc dù hệ thống mới đưa vào triển khai thực tế từ 1/ 2012,
nhưng việc áp dụng công nghệ Hadoop chắc chắn sẽ mở ra một
hướng phát triển mới, là giải pháp tốt cho vấn đề đặt ra.


23

TÀI LIỆU THAM KHẢO
Tiếng anh
[1]

Armbrust, Michael, and Armando Fox. “Above

the Clouds: A Berkley View


of Cloud Computing,”

February 10, 2009.
[2]

D. Agrawal, A. El Abbadi, S. Antony, and S. Das.

“Data Management Challenges in Cloud Computing
Infrastructures”. In DNIS, pages 1–10, 2010.
[3]

Divyakant Agrawakl Sudipto Das Amr Al Abbadi,

Dipartment of Computer Science, University of California,
Santa Barbara. “Big Data and Cloud Computing: Current
State and Future Opportunities”.
[3]

Dhruba

Borthakur,

HDFS

Architecture

Guide.Richard L. Villars, Carl W. Olofson, Matthew
Eastwood. “Big Data: What it is and Why you should care”.
June 2011
[4]


Tom White,

“Hadoop: The Definitive Guide”,

June 2009: First Edition.
[5]

/>
hadoop-on-ubuntu-linux-single-node-cluster/
[6]

/>

×