Tải bản đầy đủ (.docx) (23 trang)

Big Data và giải pháp Tính Toán Lưới

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 (767.55 KB, 23 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN
TÍNH TOÁN LƯỚI
Chủ đề
Big Data
và giải pháp Tính Toán Lưới
GVHD: PGS.TS. Nguyễn Phi Khứ
Học viên: Nguyễn Hoàng Vũ
MSHV: CH1101157
Lời cảm ơn
Em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Phi Khứ. Thầy đã tận tình
giảng dạy và chỉ dẫn em trong suốt quá trình học tập, qua đó em đã học được rất nhiều
kiến thức hữu ích của môn học tính toán lưới.
Mục lục
Lời giới thiệu
Ngày nay, Big Data đang ngày càng trở nên một xu hướng trên toàn thế giới. Đây là
cơ hội cũng như thách thức cho các nhà khoa học máy tính hiện nay. Báo cáo này sẽ
trình bày về sự bùng nổ thông tin, Big Data và tính toán lưới - giải pháp cho Big Data.
4
I. Big Data
1. Sự bùng nổ dữ liệu và Big Data
Trong cuộc sống hiện đại ngày nay, công nghệ thông tin đang đóng một vai trò hết sức
quan trọng. Chúng ta có thể thấy công nghệ được áp dụng mọi nơi trong cuộc sống, từ
giải trí, liên lạc đến xử lý những bài toán lớn của giới khoa học như dự báo thời tiết,
mô phỏng thí nghiệm hạt nhân, dự đoán kinh tế… Cùng với sự xâm nhập của công
nghệ vào cuộc sống con người, lượng dữ liệu được con người tạo ra hay thu thập cũng
bùng nổ một cách chóng mặt.
Đầu tiên phải kể đến lượng dữ liệu phát sinh bởi hoạt động của con người hàng ngày.
Ở lĩnh vực kinh tế, Amazon bán 306 hàng hóa mỗi giây (năm 2012). Trong khi đó với
eBay, hơn 1 tỉ lượt truy cập và 44 tỉ giao tác SQL được thực thi mỗi ngày. Đồng thời,


hãng này còn quản lý 248 triệu người dùng cùng hơn 1 tỉ ảnh.
Hình 1: Lượng dữ liệu được hỗ trợ bởi những doanh nghiệp Oracle ngày nay
5
Ở lĩnh vực giải trí, Facebook quản lý hơn 750 triệu thành viên (tính đến 2011), 2.5 tỉ
mẩu nội dung được chia sẽ, 2.7 tỉ lượt like, 300 triệu lượt upload ảnh mỗi ngày. Với
Youtube, một website hàng đầu trong lĩnh vực chia sẽ video, trong mỗi phút có 100
giờ video được upload lên, 6 tỉ giờ video được xem mỗi tháng.
Hình 2: Thống kê tỉ lệ các loại dữ liệu
Bên cạnh lượng dữ liệu khổng lồ được phát sinh bởi hoạt động con người hàng ngày,
số lượng nguồn dữ liệu ngày càng đa dạng cũng góp phần trong quá trình bùng nổ
thông tin hiện nay. Dữ liệu từ một lượng rất lớn các sensor thời tiết ghi lại thông tin về
thời tiết: độ ẩm, nhiệt độ… Dữ liệu video từ hàng chục đến hàng trăm ngàn camera
quan sát trong những thành phố, dữ liệu GPS được ghi lại từ các phương tiện người
dùng, dữ liệu ảnh vệ tinh chụp bề mặt trái đất… Tất cả đã và đang tạo nên một bức
tranh bùng nổ dữ liệu trong thời đại ngày nay.
Sự bùng nổ dữ liệu dẫn đến những phương thức lưu trử cũng như xử lý mới. Khái
niệm Big Data ra đời từ những đòi hỏi đó.
6
Định nghĩa: Big Data đề cập tới những bộ dữ liệu có kích thước vượt quá khả năng
của những phần mềm, công cụ lưu trữ, xử lý phổ biến hiện nay. Kích cỡ mục tiêu của
big data thay đổi liên tục theo thời gian. Ví dụ, vào năm 2012, kích cỡ vào khoảng từ
vài chục terabyte đến vài petabyte cho một bộ dữ liệu. Kích cỡ mục tiêu thay đổi liên
tục vì sự phát triển không ngừng của những hệ quản trị cơ sở dữ liệu truyền thống
Có 4 đặc tính chính của big data:
• Dung lượng: Các doanh nghiệp lớn hiện nay có một lượng lớn dữ liệu được
sinh ra, thu thập hàng ngày, lên đến hàng terabyte, thậm chí hàng petabyte. Ví
dụ như việc phân tích 350 số ghi điện hàng năm để phân tích nhu cầu tiêu thụ
điện hoặc phân tích 12 terabyte Tweet được tạo ra mỗi ngày để phân tích đánh
giá về sản phẩm của người dùng
• Vận tốc: Có những ứng dụng sử dụng big data cần tốc độ xử lý trong thời gian

thực như phân tích tình hình chứng khoán dựa trên một lượng lớn dữ liệu
chứng khoán thu thập được trong thời gian vừa qua.
• Sự đa dạng: Big Data không ám chỉ một loại dữ liệu cụ thể nào. Nó có thể là dữ
liệu có cấu trúc, không có cấu trúc, dữ liệu văn bản, dữ liệu thu thập từ các cảm
biến, dữ liệu đa phương tiện như audio, video,… Các thông tin, tri thức có thể
được khám phá khi phân tích những loại dữ liệu này cùng với nhau
• Tính xác thực: Vì Big Data có số lượng rất lớn và được thu thập từ rất nhiều
nguồn khác nhau, do đó độ tin cậy của Big Data là một vấn đề rất quan trọng.
Những dữ liệu sai có thể dẫn đến những quyết định sai lầm, gây hậu quả lớn
2. Giá trị của Big Data
7
Big Data có thể được xem như là tương lai của ngành điện toán. Lượng dữ liệu khổng
lồ của Big Data cho phép chúng ta phân tích và có được những thông tin, tri thức quý
giá từ bên trong nó.
Với Big Data, chúng ta có thể có được những câu trả lời cho những câu hỏi mà trước
đây không thể giải quyết được: Các tổ chức tài chính có thể tìm ra cách phát hiện gian
lận tốt hơn, các công ty bảo hiểm có thể biết được khách hàng tiềm năng của mình,
những nhà đầu tư chứng khoán có thể dự đoán xu thế cổ phiếu trong tương lai, việc dự
báo thời tiết sẽ chính xác hơn, những nghi phạm khủng bố được phát hiện nhanh
chóng hơn,…
3. Những thách thức
Big Data mang lại nhiều giá trị nhưng cũng có những thách thức cần phải giải quyết.
Khó khăn đầu tiên là Big Data được thu thập từ nhiều nguồn, với những định dạng
không cấu trúc như văn bản hoặc video. Muốn tận dụng được những thông tin từ
những loại dữ liệu như trên, phải có những kỹ thuật tiên tiến trong các lĩnh vực như
xử lý ngôn ngữ tự nhiên, thị giác máy tính,…
Thách thức tiếp theo là làm sao lọc ra được những dữ liệu quan trọng nhất trong một
lượng lớn dữ liệu để chuyển cho người những người cần thiết trong thời gian thực.
Khó khăn cuối cùng và cũng là khó khăn chủ yếu khi làm việc với Big Data là: Vì
lượng dữ liệu cực lớn của nó, làm sao để thu thập, lưu trữ, và xử lý một cách hiệu quả

với chi phí tài chính và thời gian chấp nhận được
4. Các bước xử lý chính cho Big Data
Theo Oracle, các giải pháp cho Big Data gồm 4 loại chính
• Thu thập Big Data
• Tổ chức Big Data
• Phân tích
8
• Ra quyết định
Hình 3: Các bước xử lý cho Big Data
Đối với Thu thập Big Data: Bao gồm các giải pháp thu thập, lưu trữ Big Data. Như đã
đề cập ở trên, Big Data vượt quá những năng lực xử lý truyền thống. Do đó, cần
những công nghệ mới cho việc lưu trữ những bộ dữ liệu Big Data. Hiện nay, một số
giải pháp đã được đưa ra như NoSQL của Oracle, Amazon S3 của Amazon, Google
BigTable. Sau khi thu thập, dữ liệu Big Data cần được tổ chức, xử lý. Hiện nay
MapReduce mà cụ thể là Hadoop là một trong những giải pháp tốt nhấu cho việc tổi
chức xử lý Big Data trên hệ thống tính toán lưới. Chi tiết hơn về Hadoop MapReduce
sẽ được đề cập ở phần sau của báo cáo này. Ở bước tiếp theo, các giải pháp cho việc
phân tích Big Data hiện nay đã được các công ty lớn nghiên cứu như Oracle Data
Warehousing, IBM Info Sphere Warehouse. Cuối cùng là những ứng dụng ra quyết
định phù hợp với từng mục đích sử dụng
II. Grid Computing cho Big Data
1. Giới thiệu về grid computing
9
Để quản lý, lưu trữ những loại dữ liệu như Big Data và thực hiện những phân tích,
tính toán trên chúng, cần có những máy tính có năng lực tính toán cực cao cũng như
tài nguyên khổng lồ. Vì lý do đó, những siêu máy tính gồm hàng trăm ngàn bộ vi xử
lý đã được xây dựng từ những năm 1960.
Hình 4: Siêu máy tính Blue Gene/P tại phòng thí nghiệm Argonne National Lab
với hơn 250.000 bộ vi xử lý được nhóm lại thành 72 rack/cabinet
bởi một mạng quang học tốc độ cao

Tuy nhiên, để xây dựng những hệ thống siêu máy tính như vậy đòi hỏi lượng kinh phí
rất lớn, nguồn điện năng lớn và ổn định để duy trì hoạt động, hệ thống làm mát,…
10
Hình 5: Một số thông tin về chi phí xây dựng siêu máy tính [4]
Do đó, tính toán lưới đã được phát triển để phục vụ những bài toán lớn với chi phí
chấp nhận được.
Một hệ tính toán lưới là một hệ thống gồm nhiều máy tính được kết nối, gom cụm với
nhau. Tính toán lưới là sử dụng các tài nguyên từ nhiều máy tính để đạt được một mục
tiêu nào đó, thường là những bài toán có độ phức tạp tính toán cao trên những dữ liệu
cực lớn. Một hệ tính toán lưới có thể được xem như là một hệ phân tán (distributed
system). Điểm khác biệt giữa tính toán lưới với các hệ tính toán hiệu năng cao truyền
thống (ví dụ như tính toán phân cụm – cluster computing) là nó được gắn kết không
chặt chẽ và đồng nhất bằng, và thường phân tán địa lý trên diện rộng. Mặc dù một hệ
thống lưới có thể chuyên biệt cho một ứng dụng cụ thể, thông thường một hệ thống
11
lưới được dùng cho nhiều mục đích khác nhau. Những hệ thống lưới thường được xây
dựng với những thư viện middleware đa chức năng
Tính toán lưới là một dạng của tính toán phân tán, nhờ đó, một siêu máy tính ảo hình
thành bởi nhiều máy tính liên kết với nhau để thực thi một bài toán lớn. Đối với một
số ứng dụng cụ thể, tính toán lưới và tính toán phân tán có thể được xem như là một
dạng của tính toán song song dựa trên những máy tính hoàn chỉnh kết nối với nhau
thông qua mạng máy tính. Điều này khác với một siêu máy tính truyền thống, khi
những vi xử lý kết nối với nhau qua một bus máy tính nội bộ tốc độ cao
Hình 6: Minh họa một hệ thống tính toán lưới
Một trong những chiến lược chính của tính toán lưới là sử dụng middleware để chia
chương trình thành nhiều phần cho nhiều máy tính xử lý. Tính toán lưới hoạt động
theo kiểu tính toán phân tán, bao gồm tập hợp của những cụm máy tính quy mô lớn.
12
2. Những ưu điểm của tính toán lưới
a. Tận dụng tài nguyên tính toán rảnh rỗi.

Một trong những nguyên lý cơ bản của tính toán lưới là thực hiện một chương trình
trên nhiều máy khác nhau. Khi một máy bận, không thể thực thi một task nào đó, task
đó có thể được chuyển sang một máy khác trên hệ thống. Có hai điều kiện cho ngữ
cảnh này. Thứ nhất, ứng dụng phải được thi hành từ xa. Thứ hai, máy tính ở xa phải
thỏa mãn điều kiện về phần cứng, phần mềm và những yêu cầu tài nguyên từ phía ứng
dụng.
Trong hầu hết các tổ chức, có một lượng lớn những tài nguyên tính toán rãnh rỗi. Hầu
hết những máy tính để bàn phải hoạt động chỉ 5% tổng thời gian trong một ngày. Tính
toán lưới cung cấp một framework để tận dụng những tài nguyên rảnh rỗi này để tăng
một cách đáng kể hiệu suất sử dụng tài nguyên
Bên cạnh tài nguyên xử lý, tính toán lưới còn có thể tận dụng tài nguyên lưu trữ. Cụ
thể, những không gian lưu trữ không được dùng đến có thể được gộp thành một không
gian lưu trữ ảo lớn hơn nhiều
b. Khả năng CPU song song
Đây có thể được xem là điểm mạnh nhất của tính toán lưới. Một chương trình có thể
viết bằng những giải thuật được chia thành nhiều phần nhỏ hơn gọi là subjob. Mỗi
subjob được thi hành trên một máy khác nhau trên hệ thống lưới. Các subjob càng
không có nhu cầu liên lạc với nhau, các ứng dụng càng có khả năng mở rộng.
Một trở ngại của khả năng song song hóa là khả năng phân chia của giải thuật. Nếu
giải thuật chỉ có thể phân chia thành một số lượng giới hạn các subjob, khả năng mở
rộng sẽ bị ảnh hưởng. Ví dụ, hệ thống lưới có 100 máy liên kết với nhau. Giải thuật
chỉ cho phép chia thành 10 subjob. Khi đó, chỉ có tối đa 10 máy có thể chạy cùng một
lúc. 90 máy khác không phải làm gì cả. Khi đó, hệ thống lưới sẽ không hoạt động tối
đa để có thể giải quyết vấn đề nhanh nhất có thể
13
Trở ngại thứ 2 là nếu các phần phụ thuộc với nhau. Khi đó sẽ dẫn đến tình trạng các
subjob phải chờ lẫn nhau làm kéo dài thời gian xử lý. Ngoài ra, nếu các subjob phụ
thuộc nhau, sẽ tốn thêm thời gian liên lạc giữa các máy trong hệ thống lưới
c. Tài nguyên ảo và tổ chức cho việc hợp tác ảo
Một khả năng khác của tính toán lưới là cung cấp một môi trường cho sự hợp tác giữa

các người dùng. Tính toán lưới có thể cung cấp những chuẩn quan trọng cho phép
những hệ thống không đồng nhất làm việc với nhau để hình thành một hệ thống máy
tính ảo lớn cung cấp những tài nguyên khác nhau
Hình 7: Tính toán lưới ảo hóa những tài nguyên phân tán và không đồng nhất
d. Sử dụng những tài nguyên khác
14
Ngoài CPU và khả năng lưu trữ, tính toán lưới còn cho phép sử dụng thêm những tài
nguyên khác. Ví dụ, người dùng cần tăng băng thông internet để chạy engine search
cho data mining. Khi đó công việc có thể được chia cho các máy có kết nối tới
internet độc lập với nhau.
Một ví dụ khác là một vài máy tính được cài đặt phần mềm có bản quyền giá cao mà
người dùng yêu cầu. Khi đó, các job có thể được gửi tới các máy tinh đó để được xử
lý.
Các tài nguyên như máy in cũng thường được tận dụng trong các hệ thống lưới.
Thông thường máy in chỉ được kết nối tới 1 máy trong lưới và các máy khác có thể
gửi yêu cầu in tới máy đó.
e. Cân bằng tài nguyên
Một hệ thống lưới liên kết một lượng lớn những tài nguyên của nhiều máy độc lập
thành một hệ thống lớn. Đối với những ứng dụng chạy trên hệ thống lưới, nó có thể
cân bằng tài nguyên bằng cách lập lịch các job trên các máy ít được sử dụng
15
Hình 8: Các job được đưa tới để xử lý trên các phần đang đảm nhận ít việc hơn để
cân bằng tải
Khi các job cần liên lạc với nhau hoặc với những tài nguyên lưu trữ, hệ thống lưới có
thể lập lịch để tối ưu hóa băng thông liên lạc và tối ưu hóa khoảng cách cho việc liên
lạc
f. Độ tin cậy
Đối với một hệ thống máy tính truyền thống, để tăng độ tin cậy cần một chi phí khá
cao. Đầu tiên, hệ thống phải sử dụng những thiết bị phần cứng giá cao để đảm bảo độ
ổn định. Số lượng vi xử lý phải gấp đôi bình thường và có khả năng pluggable cao để

khi các vi xử lý hỏng sẽ có một số khác thay thế. Nguồn điện và hệ thống làm mất
cũng phải gấp đôi. Nguồn điện phải có khả năng khởi động máy phát điện khi nguồn
điện chính bị ngắt. Tất cả những yếu tố trên làm cho chi phí tăng rất cao.
16
Tuy nhiên, với tính toán lưới, chi phí sẽ rẻ hơn rất nhiều. Một hệ thống lưới có chi phí
xây dựng khá rẻ và phân tán địa lý trên diện rộng. Do đó, nếu có một nguồn điện,
CPU, hệ lưu trữ hay bất kỳ một bộ phận nào tại một vị trí bị hỏng, các phần các của hệ
thống sẽ gần như không bị ảnh hưởng. Phần mềm quản lý hệ thống lưới có thể tự động
tái cấp phát các job tới những máy khác trên lưới khi phát hiện một phần nào đó bị
hỏng hóc
Hình 9: Cấu hình hệ thống đảm bảo độ tin cậy
g. Quản lý
Việc ảo hóa các tài nguyên và tích hợp các hệ thống không đồng bộ thành hệ thống
lưới sẽ giúp tạo ra những cơ hội để quản lý hạ tầng IT phân tán tốt hơn. Tính toán lưới
cho phép quản lý độ ưu tiên của những dự án khác nhau. Trước đây, mỗi dự án phải tự
quản lý tài nguyên IT và những chi phí liên quan. Thông thường, những tài nguyên
này sẽ ít được sử dụng trong khi những dự án khác lại cần nhiều tài nguyên. Hệ thống
17
lưới có thể làm cho quá trình quản lý độ ưu tiên sử dụng tài nguyên đơn giản hơn cho
người dùng
Hình 10: Người quản trị có thể điều chỉnh các chính sách để có thể cấp phát
tài nguyên tốt hơn
3. MapReduce
a. Giới thiệu MapReduce
Vậy làm thế nào để tận dụng tính toán lưới cho việc xử lý Big Data? Như đã đề cập ở
phần I, có rất nhiều vấn đề được đặt ra: giải pháp thu thập dữ liệu, lưu trữ dữ liệu, xử
lý dữ liệu, phân tích dữ liệu …. Trong phần này chúng ta chỉ bàn đến một trong những
vấn đề cốt lõi là xử lý dữ liệu cho Big Data trên hệ thống lưới. Một giải pháp cho vấn
đề này là MapReduce, một mô hình lập trình được sử dụng rất phổ biến hiện nay
MapReduce là một framework để xử lý những bài toán có thể song song hóa trên một

lượng dữ liệu khổng lồ, sử dụng một số lượng lớn các máy tính (node) được kết nối
18
với nhau như là một cluster (nếu các node nằm trên cùng một mạng cục bộ và sử dụng
phần cứng tương tự nhau) hoặc như là một hệ thống lưới (nếu các node nằm trên một
hệ thống phân bố trên diện rộng và có phần cứng không đồng nhất). Việc xử lý tính
toán có thể diễn ra trên các dữ liệu được lưu trữ không cấu trúc hoặc có cấu trúc (ví dụ
như cơ sở dữ liệu). MapReduce có thể tận dụng vị trí của dữ liệu, xử lý các dữ liệu
nằm gần để hạn chế việc truyền dữ liệu trên mạng. MapReduce gồm có 2 phần chính:
• Bước Map: Tại bước này, master node nhận input, chia nó thành những bài
toán nhỏ hơn, và phân phối nó ra những node con. Mỗi node con có thể lặp lại
bước này, nghĩa là chia bài toán nó nhận được thành những bài toán nhỏ hơn và
phân phối ra các node con khác (điều này tạo nên một cấu trúc cây nhiều tầng).
Hoặc mỗi node con có thể trực tiếp xử lý bài toán. Khi các node con hoàn
thành xử lý bài toán, nó truyền kết quả về master node trực tiếp của nó
• Bước Reduce: Master node sẽ tập hợp các kết quả từ các node con trực tiếp
của nó và kết hợp chúng lại để tạo nên output cho bài toán mà nó nhận được.
Nhìn vào chức năng của các bước Map và Reduce ta có thể thấy nó cho phép xử lý
các bước này một cách phân tán. Mỗi phép Map độc lập với nhau, do đó tất cả các
map có thể được thực thi một cách song song, mặc dù trong thực tế nó bị giới hạn bởi
số lượng các nguồn dữ liệu độc lập và số lượng CPU gần mỗi nguồn.
Sử dụng MapReduce đặc biệt hiệu quả khi phải đối phó với dữ liệu cực lớn. Do đó, nó
được xem là một giải pháp rất tốt cho Big Data. Một ví dụ là MapReduce có thể sắp
xếp hàng petabyte dữ liệu chỉ trong vòng vài giờ. Việc song song hóa cũng giúp khôi
phục nếu xảy ra failure một phần trên các server hoặc bộ lưu trữ trong thời gian xử lý:
Nếu một mapper hoặc reducer hỏng, công việc có thể được lập lịch lại với giả định
input data vẫn còn.
Một quá trình MapReduce là một quá trình tính toán phân tán gồm 5 bước:
• Chuẩn bị Map input: Hệ thống MapReduce chỉ định các bộ xử lý Map, gán đầu
vào key value K1 cho mỗi bộ xử lý sẽ làm việc trên nó, và cung cấp cho bộ xử
lý đó tất cả input data tương ứng với key value

19
• Chạy code hàm Map() được cung cấp bởi người dùng: Map() được chạy chính
xác một lần cho mỗi keyvalue K1, phát sinh ra output được tổ chức bởi key
value K2
• Phân phối output của bước Map cho các bộ xử lý Reduce: Hệ thống
MapReduce chỉ định các bộ xử lý Reduce, gán key value K2 cho bộ xử lý sẽ
làm việc trên nó, cung cấp cho bộ xử lý đó tất cả dữ liệu phát sinh từ Map
tương ứng với key value
• Chạy code Reduce() được cung cấp bởi người dùng: Reduce() được chạy chính
xác một lần cho mỗi key value K2 được tạo ra bởi bước Map
• Tính kết quả cuối cùng: Hệ thống MapReduce tất cả các output Reduce, sắp
xếp nó bằng K2 để tạo ra kết quả cuối cùng.
Năm bước này được thực hiện kế tiếp nhau, mỗi bước bắt đầu chạy chỉ sau khi bước
phía trước hoàn tất mặc dù trong thực tế, chúng có thể chạy song song một phần miễn
là không ảnh hưởng đến kết quả cuối cùng.
b. Apache Hadoop
Apache Hadoop (High-availability distributed object-oriented platform) là một
framework phần mềm mã nguồn mở hỗ trợ những ứng dụng phân tán tập trung vào xử
lý dữ liệu, nhất là những loại dữ liệu cực lớn (Big Data). Nó hỗ trợ chạy những ứng
dụng trên những hệ thống phân tán lớn. Hadoop bắt nguồn từ mô hình MapReduce
của Google và là một trong những platform hỗ trợ MapReduce phổ biến nhất và tốt
nhất hiện nay. Nó hiện đang được sử dụng bởi rất nhiều hãng công nghệ hàng đầu trên
thế giới, nơi hàng ngày phải đối mặt với những dữ liệu Big Data khổng lồ như Yahoo!,
Facebook, Google, Amazon, eBay, Microsoft, LinkedIn, Twitter, IBM,…
Sơ lược kiến trúc Hadoop:
Hadoop bao gồm Hadoop Common cho phép truy cập vào những hệ thống file được
hỗ trợ bởi Hadoop.
Để quá trình lập lịch hiệu quả hơn, mọi hệ thống file tương thích với Hadoop phải
cung cấp thông tin về địa điểm: tên rack của worker node. Các ứng dụng Hadoop có
20

thể sử dụng thông tin này để chạy task trên node đang chứa dữ liệu, và cùng trên một
rack/switch, làm giảm lưu lượng backbone. Hệ thống file phân tán Hadoop (Hadoop
Distributed File System – HDFS) sử dụng phương pháp này để sao chép giữ liệu
nhằm giữ những bản sao dữ liệu trên những rack khác nhau. Mục đích của việc này là
làm giảm ảnh hưởng của việc mất nguồn điện hoặc lỗi switch. Do đó, khi xảy ra
những trường hợp trên, dữ liệu vẫn truy cập được.
Một cluster Hadoop nhỏ sẽ bao gồm một master node và nhiều worker node. Master
node bao gồm JobTracker, TaskTracker, NameNode và DataNode. Một worker node
đóng vai trò cả DataNode và TaskTracker mặc dù có thể có những worker node
chuyên về dữ liệu và những worker node chuyên về tính toán
Hình 11: Một cluster Hadoop nhiều node
Trong một cluster lớn hơn, HDFS được quản lý thông qua một server NameNode
chuyên dụng để quản lý chỉ mục hệ thống file, và một NameNode thứ cấp để phát sinh
21
những snapshot của cấu trúc bộ nhớ của NameNode nhằm ngăn chặn lỗi hệ thống file
và hạn chế mất mát dữ liệu. Tương tự, một server JobTracker đứng một mình có thể
quản lý việc lập lịch cho các job. Trong những cluster mà engine Hadoop MapReduce
được triển khai trên một hệ thống file thay thế, kiến trúc NameNode, NameNode thứ
cấp và DataNode của HDFS được thay thế bởi những kiến trúc chuyên dụng cho các
hệ hống file đó
III. Kết luận
Big Data và các vấn đề liên quan đang và sẽ phát triển vượt bậc trong thời gian tới và
cùng với nó là những thách thức liên tục được đặt ra cho các nhà khoa học. Ai nắm
được thông tin và tri thức, người đó sẽ có lợi thế phát triển và Big Data là một trong
những chìa khóa cốt lõi để thực hiện mục tiêu đó.
22
Tài liệu tham khảo
[1] gizdomo.com
[2] youtube.com
[3] />[4] J. McKendrick, Big Data, Big Challenges, Big Opportunities: 2012 IOUG Big

Data Strategies Survey, 2012
[5] B. Jacob, M. Brown, K. Fukui, N. Trivedi, Introduction to Grid Computing,
ibm.com/redbooks
[6] J. Manyika, M. Chui, B. Brown, J. Bughin, R. Dobbs, C. Roxburgh, A. H. Byers,
Big data: The next Frontier for innovation, competition, and productivity, McKinsey
Global Intitute, 2011
23

×