Tải bản đầy đủ (.doc) (15 trang)

KỸ THUẬT TÍNH TOÁN SONG SONG DÙNG MAP-REDUCE VỚI HADOOP FRAMEWORK

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 (325.7 KB, 15 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG
TIN TP HỒ CHÍ MINH
BÁO CÁO TIỂU LUẬN
TÍNH TOÁN LƯỚI
Đề tài:
KỸ THUẬT TÍNH TOÁN SONG SONG DÙNG
MAP-REDUCE VỚI HADOOP FRAMEWORK
GVHD: PGS-TS Nguyễn Phi Khứ
HVTH: Nguyễn Hồng Thái
LỚP: CH-CNTTQM K6
Mã HV: CH1101040
Tp HCM, tháng 07 năm 2013
1
Nhận xét của giáo viên:
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……


………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
LỜI NÓI ĐẦU
Tính toán song song là một lĩnh vực đã được phát triển từ lâu của ngành khoa học
máy tính, và hiện tại vẫn đang là một ngành rất phát triển. Mục đích của nó là giảm thiểu
thời gian thực thi của những bài toán lớn. Thế giới đang bước vào kỷ nguyên của heavy
process in big-data, do vậy, việc tìm hiểu nghiên cứu về những vấn đề song song hoá là
rất quan trọng.
Một trong những kỹ thuật song song hoá phổ biến hiện nay, đang được sử dụng
trong các hệ thống lớn như Facebook, Google, … là Map-Reduce. Về cơ bản thì mô
hìnhg này được thực hiện bằng 2 thao tác: Xử lí dữ liệu thô trong hàm Map và tính toán
để cho ra kết quả cuối cùng trong hàm Reduce. Điều thú vị là các hàm này có thể thực
hiện một cách song song.
Apache đã xây dựng framework Hadoop để hiện thực Map-Reduce. Bên cạnh việc
cung cấp các thư viện để người dùng viết các hàm Map và Reduce, Hadoop còn cung cấp
cơ chế để quản lí các tiến trình đang được song song hoá. Ngoài ra Hadoop còn cung cấp
hệ thống lưu trữ mới (HDFS: Hadoop Distributed file system), nhằm mục đích tối ưu hoá
việc streaming dữ liệu từ hard disk lên memory cũng như streaming qua mạng (Đa phần
các bài toán lớn thì cần phải tính tới việc memory không đủ đáp ứng, nên việc tối ưu cách
dùng hard disk là rất quan trọng).

Em xin chân thành cảm ơn thầy Nguyễn Phi Khứ, giảng viên bộ môn “Tính toán
lưới”, trường đại học CNTT TPHCM, đã tận tình giảng dạy để em có thể hoàn thành đề
tài này.
Học viên thực hiện:
Nguyễn Hồng Thái
Mục lục:
I. Tổng quan về tính toán song song 1
1.1. Khái niệm thuật toán song song 1
1.2. Các mức độ song song 2
1.3. Phân loại các kiến trúc song song 2
1.4. Đánh giá độ phức tạp của thuật toán song song 3
II. Kỹ thuật Map-Reduce (MR) 6
1. Định nghĩa Map-Reduce: 6
2. Quy trình xử lý 6
3. Ứng dụng thực tế 9
III. Demo ứng dụng: (Trong file đính kèm) 9
IV. Kết luận: 11
1. Ưu điểm: 11
2. Hạn chế 11
3. Hướng phát triển 11
4. Tài liệu tham khảo: 11
Đồ án tiểu luận: Tính toán lưới
I. Tổng quan về tính toán song song
1.1. Khái niệm thuật toán song song
Tính toán song song hay xử lý song song: là quá trình xử lý thông tin trong đó
nhấn mạnh việc nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý
để giải quyết một bài toán.
Siêu máy tính: là những máy tính đa năng thông thường có tốc độ tính toán vô
cùng lớn. Chúng chia làm hai loại:
- Máy tính song song dựa trên bộ vi xử lý : được thiết kế với rất nhiều bộ xử lý có

tốc độ vừa phải.
- Siêu máy tính truyền thống (supercomputer) : ít bộ xử lý hơn nhưng tốc độ của
mỗi bộ xử lý đó lại cực cao.
Song song về dữ liệu (data parallelism): Là cơ chế sử dụng nhiều đơn vị xử lý
thực hiện cùng một thao tác trên nhiều đơn vị dữ liệu .
Song song điều khiển (control parallelism) : là cơ chế trong đó nhiều thao tác
khác nhau tác động lên nhiều đơn vị dữ liệu khác nhau một cách đồng thời.
Dây chuyền (pipeline) : là cơ chế chia công việc thành nhiều chặng nối tiếp,
mỗi chặng được thực hiện bởi một bộ phận khác nhau. Đầu ra của bộ phận này là đầu
vào của bộ phận tiếp theo.
Tăng tốc : tăng tốc của thuật toán song song là tỉ số giữa thời gian thực hiện trong
tình huống xấu nhất của thuật toán tuần tự tốt nhất và thời gian thực hiện cũng công
việc đó của thuật toán song song.

- 1 -
Tăng tốc =
Thời gian thực hiện trong tình huống xấu nhất
theo thuật toán tuần tự nhanh nhất
Thời gian thực hiện trong tình huống xấu nhất
của thuật toán song song đang xét
Đồ án tiểu luận: PT&TK Hệ thống theo UML
1.2. Các mức độ song song
Giả sử có 10 công việc từng đôi một khác nhau thì ta giao cho 10 máy làm, ta
có mức song song cao nhất, và chúng ta gọi là mức chương trình song song. Mỗi công
việc ta lại chia thành các công đoạn (Task) và có thể thực hiện song song, ta gọi mức
độ song song này là mức song song chương trình con. Mỗi chương trình cũng như
chương trình con lại có hàng loạt câu lệnh, ta có mức độ song song câu lệnh, trong câu
lệnh lại có hành loạt thao tác (operation) => mức độ song song thao tác.
1.3. Phân loại các kiến trúc song song
Một trong những phân loại hay được nhắc tới là của Flynn – 1972. Michael

Flynn phân các kiến trúc máy tính thành bốn loại dựa trên tương tác giữa lệnh và dữ
liệu :
- SIMD(single instruction stream, single data stream) Đây chính là kiến trúc tuần
tự Von Neuman, trong đó tại mỗi thời điểm chỉ một lệnh được thực hiện.
- MISD (multiple instruction stream, single data stream) Kiến trúc này cho phép
một vài lệnh cùng thao tác trên một dữ liệu
- 2 -
Đồ án tiểu luận: Tính toán lưới
- SIMD (single instruction stream, multiple data stream) Cho phép một lệnh được
thực hiện đồng thời trên các dữ liệu khác nhau.
- MIMD (multiple instruction stream, multiple data stream). Cho phép nhiều lệnh
khác nhau có thể đồng thời xử lý nhiều dữ liệu khác nhau trong cùng một thời
điểm.
1.4. Đánh giá độ phức tạp của thuật toán song song
Trong thuật toán tuần tự chúng ta chỉ quan tâm tới độ phức tạp về thời gian và
không gian, nhưng trong thuật toán song song thường có thêm một số đại lượng đo
lường khác. Hơn nữa, độ phức tạp thời gian của thuật toán song song không chỉ đơn
giản là việc đếm số câu lệnh cơ bản như trong thuật toán tuần tự mà thay vào đó nó
phụ thuộc vào các phép toán cơ bản này có thể được thực hiện trên P (P > 1) bộ xử lý
như thế nào. Bên cạnh độ phức tạp thời gian độ phức tạp về số bộ xử lý cũng là một
đại lượng quan trọng trong phân tích thuật toán song song. Thiết kế thuật toán song
song hiệu quả bao gồm việc lựa chọn cấu trúc dữ liệu phù hợp, phân bố bộ xử lý và
cuối cùng là thực hiện thuật toán. Ba đại lượng này tác động lẫn nhau như một tổ chức
tính toán.
4.1 Song song giới hạn và song song không giới hạn
Độ phức tạp thời gian của thuật toán song song cũng là một hàm của kích thước
dữ liệu đầu vào – n . Độ phức tạp thời gian là đại lượng quan trọng nhất của thuật toán
song song bởi vì động cơ chính của song song là nhằm tăng tốc thời gian tính toán.
Độ phức tạp thời gian tồi nhất (hay đơn giản là độ phức tạp thời gian) của thuật
toán song song giải quyết bài toán P

n
với kích thước đầu vào n là một hàm f(n) cho thời
gian lớn nhất từ lúc bắt đầu thực hiện thuật toán trên một hay nhiều bộ xử lý đến lúc
kết thúc thuật toán bởi một hay nhiều bộ xử lý với bất kỳ bộ dữ liệu nào.
Các thuật toán song song được thực hiện trên một tập các bộ xử lý nên đòi hỏi
việc truyền dữ liệu giữa chúng. Vì thế nó bao hàm hai hoạt động khác nhau. Một hoạt
động là tính toán (như các phép toán số học hay logic) được thực hiện một cách cục bộ
trên một bộ xử lý, hoạt động khác là gửi dữ liệu giữa các bộ xử lý. Trong thuật toán
- 3 -
Đồ án tiểu luận: PT&TK Hệ thống theo UML
song song một bước cơ bản là một tập các hoạt động cơ bản có thể được thực hiện một
cách đồng thời bởi một tập các bộ xử lý – độ phức tạp thời gian của một bước cơ bản
là hằng số hay O(1). Độ phức tạp thời gian của thuật toán song song được xác định bởi
việc đếm số bước cơ bản và số bước chuyển giao dữ liệu, trong đó thời gian chuyển
giao dữ liệu tại mỗi bước phụ thuộc vào mô hình liên kết giữa các bộ xử lý. Một số tài
liệu còn gọi độ phức tạp thời gian của thuật toán song song là độ sâu.
Độ phức tạp thời gian của thuật toán song song phụ thuộc vào mô hình tính toán
song song được sử dụng một cách tốt nhất trên số lượng bộ xử lý. Vì thế, khi đưa ra độ
phức tạp thời gian của thuật toán song song cần thiết đưa ra số lượng lớn nhất bộ xử lý
cần sử dụng như một hàm của kích thước dữ liệu đầu vào n, và gọi là độ phức tạp số
bộ xử lý của thuật toán. Việc tổng hợp và phân tích một thuật toán song song dưới mô
hình có P bộ xử lý (P là một số nguyên cố định và P > 1) được gọi là mô hình song
song có giới hạn. Ngược lại, mô hình song song không giới hạn là khi mà chúng ta có
và được phép tùy ý sử dụng một số lượng bộ xử lý không giới hạn .
Thuật toán song song thực hiện trên mô hình P bộ xử lý được gọi là P-song
song. Nếu thuật toán P-song song cho bài toán kích thước n đòi hỏi t(n) bước song
song thì được gọi là P-có thể tính toán trong thời gian t. Chúng ta giả sử rằng một thuật
toán song song A giải quyết bài toán kích thước n với P bộ xử lý.Nếu tồn tại đa thức F
sao cho ∀n , P ≤ F(n) , thì số lượng bộ xử lý được gọi là cận đa thức, ngược lại thì
không có cận đa thức.

Thuật toán song song có giới hạn là thích hợp trong thực tế. Tuy nhiên, các
thuật toán song song không giới hạn có một sự quan tâm lớn về mặt lý thuyết, vì chúng
đưa ra các giới hạn cho tính toán song song. Bằng trực giác điều đó có nghĩa là chúng
ta giả sử tồn tại một số lượng vô hạn bộ xử lý( nghĩa là thuật toán có thể sử dụng tùy ý
số lượng bộ xử lý), và cũng không có giới hạn về truyền thông và truy cập bộ nhớ, thì
thời gian tính toán không thể giảm dưới một giới hạn nào đó.
Thực tế số lượng bộ xử lý là có giới hạn, nên thuật toán trên mô hình song song
không giới hạn chỉ có thể sử dụng trong thực tế nếu chúng được chuyển thành thuật
toán P-song song. Có hai phương pháp đưa ra các phép chuyển đổi này : phân tách bài
- 4 -
Đồ án tiểu luận: Tính toán lưới
toán hoặc là phân tách thuật toán. Ta có thuật toán song song A giải bài toán P
n
kích
thước đầu vào n trong thời gian t
1
(n) sử dụng p
1
(n) bộ xử lý. Giờ ta đi thiết kế thuật
toán mới B giải bài toán P
n
trong thời gian t
2
(n) sử dụng p
2
(n) bộ xử lý, trong đó p
2
(n) <
p
1

(n). Cách thứ nhất phân tách bài toán thành các bài toán nhỏ hơn với kích thước m
(m < n), mỗi bài toán được giải bởi thuật toán ban đầu với số lượng bộ xử lý nhỏ hơn –
p
2
(m). Cách thứ hai là phân tách một thuật toán, mỗi bước của nó được phân tách thành
các bước nhỏ hơn theo một cách nào đó sao cho chúng được thực hiện với một số
lượng bộ xử lý nhỏ hơn.
4.2. Cận trên và cận dưới
Thuật toán song song nhanh nhất được biết để giải quyết bài toán cho ta cận trên của
tính toán đó. Nếu một ai đó thiết kế ra một thuật toán nhanh hơn thuật toán nhanh nhất
trước đó để giải quyết cùng một bài toán thì chúng ta nói rằng cận trên mới đã được
thiết lập cho việc tính toán lời giải của bài toán đó. Cận dưới xác định độ phức tạp của
bài toán, nghĩa là nó đưa ra lượng thời gian tối thiểu để giải quyết bài toán sử dụng một
thuật toán song song tùy ý.
4.3. Chi phí, tăng tốc, và hiệu quả của thuật toán song song
Tăng tốc và hiệu suất : xét bài toán với thuật toán tuần tự tốt nhất có thời gian
T
s
, thuật toán song song T
p
; số bộ xử lý là P. Khi đó:
Tăng tốc = T
s
/T
p
Hiệu suất = T
s
/(PT
p
)

Tăng tốc luôn nhỏ hơn số bộ xử lý, cố gắng đạt tới bằng nên hiệu suất đạt cùng
lắm là 1.
4.4. Độ phức tạp của bài toán
Dưới đây là mô hình phân lớp độ phức tạp của bài toán
- 5 -
Đồ án tiểu luận: PT&TK Hệ thống theo UML
Nói chung xử lý song song không có tác dụng cho việc giải quyết các bài toán
NP. Một bài toán thực hiện trong 400 tỷ thế kỷ trên một bộ xử lý sẽ mất 400 thế kỷ nếu
chúng ta thực hiện song song hóa một cách hoàn hảo và thực hiện trên 1 tỷ bộ xử lý. Vì
thế, xử lý song song được sử dụng chính cho việc tăng tốc thời gian thực hiện của bài
toán P.
II. Kỹ thuật Map-Reduce (MR)
1. Định nghĩa Map-Reduce:
MapReduce (MR) là quy trình giúp xử lý tập hợp dữ liệu siêu lớn đặt tại các máy tính
phân tán, có thể xử lý được dữ liệu không cấu trúc (dữ liệu lưu trữ dạng tệp tin hệ
thống) và dữ liệu cấu trúc (dữ liệu quan hệ 2 chiều). Trong MR, các máy tính chứa dữ
liệu đơn lẻ được gọi là các nút (node)
MR định nghĩa dữ liệu (cấu trúc và không cấu trúc) dưới dạng cặp khóa/giá trị
(key/value). Ví dụ, key có thể là tên của tập tin (file) và value nội dung của tập tin,
hoặc key là địa chỉ URL và value là nội dung của URL,… Việc định nghĩa dữ liệu
thành cặp key/value này linh hoạt hơn các bảng dữ liệu quan hệ 2 chiều truyền thống
(quan hệ cha – con hay còn gọi là khóa chính – khóa phụ).
2. Quy trình xử lý
- 6 -
Đồ án tiểu luận: Tính toán lưới
MapReduce được xây dựng từ mô hình lập trình hàm và lập trình song song. Tăng tốc
độ thực thi xử lý dữ liệu là mục đích quan trọng nhất của MR. Quy trình này gồm 2
phần:
- Map: Đầu vào là nút chủ (master node) và sau đó chia nhỏ nó ra thành các vấn đề bé
hơn. Gọi là các split 0, split 1, split 2, …

- Reduce: Từ các đầu ra trung gian sẽ tổng hợp lại để đưa ra các kết quả cuối cùng cho
vấn đề master.
Một ví dụ về hàm Map:
def map (key, value):
list = []
for x in value:
if test:
list.append( (key, x) )
return list
Một ví dụ về hàm Reduce:
- 7 -
Đồ án tiểu luận: PT&TK Hệ thống theo UML
def reduce (key, listOgValues):
result = 0
for x in listOgValues:
result += x
return (key, result)
Để xử lý khối dữ liệu bao gồm rất nhiều cặp (key, value), lập trình viên viết hai hàm
map và reduce. Hàm map có đầu vào là một cặp (k1, v1) và đầu ra là một danh sách
các cặp (k2, v2). Như vập hàm Map có thể được viết theo dạng: map(k1,v1) =>
list(k2,v2). Và hàm reduce có dạng reduce(k2, list (v2)) => list(v3).
(1): Thư viện MR mà chương trình người dùng (User Program) sử dụng chia các tập
tin đầu vào (dữ liệu cần xử lý) thành các phần nhỏ. Dung lượng mỗi phần từ 16
megabytes đến 64 megabytes (MB). Và sau đó sao chép chương trình thành các tiến
trình song song chạy trên các máy tính phân tán chứa dữ liệu.
(2): Chương trình điều khiển Master sẽ gán mỗi phần dữ liệu cho một hàm Map và một
hàm Reduce.
(3) – (4): worker là phần được gán một hàm Map và Reduce để xử lý, nó sẽ đọc dữ
liệu, phân tích cặp key/value ở đầu vào và phân tích thành các cặp trung gian khác
được lưu tại vùng nhớ đệm.

(5): Định kỳ, các cặp dữ liệu trung gian sẽ được đẩy đến các worker tương ứng (do
master điều khiển) để hàm reduce xử lý. Các thuật toán sắp xếp, so sánh, phân vùng dữ
liệu sẽ được sử dụng tại giai đoạn này. Các tập dữ liệu trung gian có cùng key sẽ được
sắp xếp cùng một nhóm.
(6): Khi tất cả các tác vụ Map và Reduce đã hoàn tất thì sẽ cho ra kết quả cuối cùng
của quy trình MR.
Với MR, rất nhiều máy tính trung gian có thể sử dụng để xử lý dữ liệu mà trước kia
không thể.
MR cho phép lập trình viên dễ dàng sử dụng thư viện định tuyến MR để lập trình song
song chính xác và hiệu quả, không phải bận tâm đến việc trao đổi dữ liệu giữa các
cluster khác nhau vì sự độc lập dữ liệu khá cao; không phải theo dõi xử lý lỗi, các tác
vụ…
Hiện nay đã có một số mô hình MR trên các ngôn ngữ Java, C++, Python, Perl, Ruby
và C. Lập trình viên có thể lựa chọn ngôn ngữ và thư viện MR để xây dựng ứng dụng
của mình. Thường các cài đặt MR đòi hỏi phải chạy trên một hệ thống tệp tin phân tán
thích hợp, ví dụ như Google File System (GFS), Amazon S3,…
- 8 -
Đồ án tiểu luận: Tính toán lưới
3. Ứng dụng thực tế
Năm 2009 dự án mã nguồn mở Hadoop của Apache đã lập kỷ lục thế giới về sắp xếp
khối dữ liệu siêu lớn (sắp xếp một petabyte dữ liệu trong 16,25 giờ và một terabyte
trong 62 giây). Mỗi ngày có đến vài nghìn hay vài chục nghìn chương trình MR được
chạy ở Google, và rất nhiều công ty khác trên thế giới.
MR là giải pháp tốt cho các dạng bài toán xử lý khối lượng dữ liệu phát sinh khổng lồ
với các tác vụ phân tích và tính toán phức tạp và không lường trước được, trong các
lĩnh vực như khai khác dữ liệu (data mining), phân tích tài chính, mô phỏng, … Một số
ví dụ:
- Sắp xếp dữ liệu phân tán: một khối lượng dữ liệu lớn được đặt tại nhiều máy khác
nhau và cần phải sắp xếp chúng một cách đồng bộ để các ứng dụng truy xuất đạt hiệu
quả cao.

- Đếm tần số truy cập một địa chỉ URL: hàm Map sẽ xử lý nhật ký (log) các yêu cầu
truy xuất đến trang web có địa chỉ URL cần đếm và đầu ra là cặp giá trị <URL, 1>.
Hàm Reduce tiếp tục xử lý và kết quả là cặp giá trị <URL, total count> (total count: là
tổng số truy cập vào URL đó).
- Dùng trong trí tuệ nhân tạo khi phân tích thống kê.
- Xử lý dữ liệu bản đồ (đường, địa điểm…).
- Bài toán xếp thứ hạng (ranking) một trang web theo mức độ quan tâm của người
dùng.
Bằng cách tập trung vào cốt lõi của thuật toán, sử dụng MR tiết kiệm được khá nhiều
chi phí xây dựng các máy chủ lưu trữ dữ liệu. Ngoài Google, các hãng Yahoo,
Facebook, Rackspace, …cũng đều đã sử dụng MR để xử lý dữ liệu.
Hiện nay người ta bắt đầu sử dụng MR cho việc phát triển các đám mây điện toán,
thuật ngữ Cloud MapReduce hứa hẹn mở ra một hướng mới.
III. Demo ứng dụng: (Trong file đính kèm)
- Chương trình tính toán lấy nhiệt độ cao nhất của từng năm, dựa theo dữ liệu lấy
từ NOAA National Oceanic and Atmospheric Administration (Em chỉ lấy từ
năm 1901 tới 1950, tổng cộng gần 2G dữ liệu text zip)
+ website: />+ nguồn dữ liệu: />+ Có thể dùng bash-script bên dưới để lấy:
#!/bin/bash
source_url="
download_to="ncdc_data";
- 9 -
Đồ án tiểu luận: PT&TK Hệ thống theo UML
if [ ! -d "$download_to" ]; then
mkdir "$download_to";
fi
for year in $(seq 1901 2012)
do
year_url=$source_url$year;
echo $year_url;

#echo $year
wget -r -c progress=bar no-parent -P "$download_to" "$year_url";
done
- Để chạy thử, có thể dùng tool của awk của Linux:
+ Install awk: parallel proccessing tool in linux (sudo apt-get install gawk)
+ Sau khi cài đặt, có thể chạy awk bằng bash-script bên dưới:
#!/usr/bin/env bash
for year in data/*
do
echo -ne `basename $year .gz`"\t"
gunzip -c $year | \
awk '{ temp = substr($0, 88, 5) + 0;
q = substr($0, 93, 1);
if ( temp != 9999 && temp > max) max = temp }
END { print max }'
done
- Về phần code, chương trình gồm 2 cách xử lí:
+ Xử lí song song với MapReduce dùng Hadoop: Chạy file ParallelProcessing ==>
Output ra thư mục: output_NgayThangNamChayChuongTrinh
+ Xử lí tuần tư: Chạy file SerialProcessing ==> Output ra console
- Lưu ý:
+ Phần data đã được đưa luôn vào src code, tuy nhiên vì dung lượng lớn nên phải cắt
bỏ bớt data
+ Chương trình đã thử nghiệm trên 1 GB dữ liệu text, với kết quả giống nhau:
. Chương trinh song song tốn gần 50 s
. Chương trình tuần tự chỉ tốn 30 s
==> Kết quả này là do chỉ sử dụng 1 pc, không phản ánh đúng sự ưu việt của xử
lí song song
+ Nếu chạy chương trình trên window, vui lòng change dấu "/" thành "\\" trong src
code

- 10 -
Đồ án tiểu luận: Tính toán lưới
IV. Kết luận:
1. Ưu điểm:
- Trình bày và giới thiệu cơ sở lí thuyết của xử lí và lập trình song song
- Tìm hiểu về kỹ thuật Map-Reduce và hiện thực kỹ thuật này bằng
Hadoop.
- Có các ví dụ demo.
2. Hạn chế
- Các demo còn ở mức đơn giản, giao diện Console
- Chưa triển khai ở mô hình distributed hoàn toàn, vẫn còn dùng
pseudo-distributed.
3. Hướng phát triển
- Tiếp tục nghiên cứu cơ sở lý thuyết về xử lí song song và các kỹ
thuật, các framework khác.
- Ứng dụng kỹ thuật xử lí song song và map-reduce vào các dự án
thực tế.
4. Tài liệu tham khảo:
- />dung/2010/09/1220629/xu-ly-du-lieu-phan-tan-voi-mapreduce/
-
- /> - 11 -

×