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 (5.52 MB, 26 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<small>SSS =</small>
Luận văn được hoàn thành tại:
<small>Phản biện 2: ...-- che.</small>
<small>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</small>
<small>Vào lúc: ... ĐIỜ... ngày ... thang ... năm ...</small>
Nhờ sự phát triển mạnh mẽ của các mạng máy tính và đặc biệt là mạng Internet, việc
<small>lưu trữ, quản lý và xử lý thông tin ngày nay khơng chỉ được thực hiện trong từng máy tính đơn</small>
qua đường truyền mạng tốc độ cao. Hệ thống file phân tán (Distributed File System) là hệ thống quản lý và lưu trữ các file được xây dựng trên cơ sở mạng máy tính, trong đó các file được quản lý và lưu trữ trên nhiều máy tính trên mạng. Hệ thống file phân tán có nhiều ưu điểm vượt trội so với hệ thống file tập trung (Hệ thống file trên 1 máy tính), như dung lượng lưu trữ lớn, độ tin cậy cao, khả năng chịu lỗi cao, hỗ trợ tốc độ truy cập cao cho nhiều nguoi dùng đồng thời.
Trong điều kiện cơ sở hạ tầng công nghệ thông tin ở Việt Nam hiện nay, hầu hết các doanh nghiệp và tổ chức có quy mơ vừa và nhỏ đều sử dụng một hoặc một số máy chủ riêng rẽ dé quản lý và lưu trữ thông tin. Phương pháp nay có ưu điểm là chi phí thấp, nhưng khơng đảm bảo dung lượng, tính tin cậy và tốc độ truy cập cho nhiều người dùng. Do vậy, việc nghiên cứu sâu về hệ thống file phân tán Haloop và ứng dụng có hiệu quả vào các doanh nghiệp và tổ chức
cứu về hệ thống file phân tán Hadoop và ứng dụng”.
Chương 2: Hệ thống file phân tán Hadoop: Trình bày về hệ thống file phân tán Hadoop. Sau đó đi sâu vào phan trong tâm là HDFS. Giới thiệu kiến trúc, sức mạnh, và phát triển ứng
<small>dụng phân tán trên Hadoop.</small>
Hadoop: Trình bày việc xây dựng mơ hình ứng dụng hệ thống file phân tán Hadoop cho doanh nghiệp vừa và nhỏ, và cài đặt thử nghiệm hệ thống file phân tán Hadoop dựa trên HDFS của
Linux và ứng dụng hệ thống file phân tán Hadoop.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Hệ thống file (File System) là một phương pháp tô chức lưu trữ các file và dữ liệu của chúng, thường được thực hiện bởi hệ điều hành. Hệ thống file cho phép người sử dụng dé dang tìm kiếm và truy nhập các file.
Hệ thống file phân tán (Distributed File System — DFS) là một hệ thống file hỗ trợ chia
<small>sẻ files và các tài nguyên trên mạng.</small>
Trong khoa học máy tính, thuật ngữ Hệ thống file phân tán hay cịn gọi là Hệ thống file
thống này cho phép nhiều người dùng trên nhiều máy khác nhau có thé chia sẻ các file và các
<small>tải nguyên lưu trữ.</small>
ngày nay khơng chỉ được thực hiện trong từng máy tính đơn lẻ như trước. Các hệ thống thông tin cần được xây dựng từ các máy tính kết nối với nhau qua mạng tốc độ cao.
- Tính trong suốt (Transparency).
<small>- Hiệu năng (Performance).</small>
- Khả năng chịu lỗi (Fault Tolerrence).
<small>- Khả năng mở rộng (Scalability).</small>
<small>1.4.1.4 Lưu đệm (caching) và bản sao (replication).</small>
<small>1.4.1.6 An toàn — An ninh.</small>
The Common Internet File System (CIFS) con được biết tới với cái tên Server
<small>LAN. Giao thức này cho phép một máy khách (client) thực hiện các thao tác với các file như là</small>
-chỉ có sự khác biệt duy nhất là: các tập tin đó đều khơng năm trên máy tính cá nhân mà thực tế là nằm trên một máy chủ từ xa.
Giao thức CIFS chủ yếu được sử dụng trong các hệ điều hành của Microsoft. Windows
đó của Microsoft đều có thể có chức năng như máy chủ CIFS và máy khách. Các hệ điều hành của Microsoft sử dụng CIFS để thao tác file từ xa, duyệt (thông qua biểu tượng Network
<small>Neighborhood), xác thực (WindowsNT và Windows 2000), vacac dịch vụ máy in từ xa. Có</small>
thê nói rằng cốt lõi của chức năng mạng của Microsoft được xây dựng trên các dịch vụ CIFS.
Nhiều nhà cung cấp đang tìm kiếm cách thức để có thể hoàn toàn thực hiện từng giai đoạn của NetBIOS và chạy CIFS trực tiếp trên TCP và UDP. Trong CIFSI.0 đã cho rằng CIFS không phụ thuộc vào giao thức giao vận cụ thê nào và có chỉ ra cách CIFS chạy trên TCP.
1.4.3 Hệ thông file phân tán GFS (Google File System)
Hệ thống file Google (Google File System - GFS) được phát triển nhằm đáp ứng nhu cầu xử lý thông tin ngày càng tăng của Google. GFS cũng hướng tới những mục tiêu chính tương tự như những hệ thống file phân tán đã có, như hiệu năng, tính mở rộng và tính sẵn
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">sang. Tuy nhiên, GFS được xây dựng dựa trên một sỐ giả định đầu vào xuất phát từ việc khảo
<small>c) Máy chủ đơn (Single Master)</small>
<small>d) Kích thước đoạn dir liệu</small>
<small>e) Metadata</small>
Một trong những thử thách lớn nhất trong quá trình thiết kế hệ thống là việc xử lý những thành phan bị lỗi xảy ra thường xuyên. Chất lượng và số lượng của những thành phan này làm cho vấn đề này trở nên phức tạp hơn. Khơng thê hồn tồn tin tưởng vào máy móc và cũng khơng thé hồn tồn tin tưởng vào các 6 đĩa cứng. Những lỗi thành phan có thé gây ra kết quả là hệ thống không sẵn sàng hoặc xấu hơn là gây mat dit liệu.
<small>b) Khôi phục nhanhc) Tái tạo dữ liệud) Tai tao Master</small>
<small>e) Tinh toan ven dir liéu</small>
điểm của một số hệ thống file phân tán điển hình, bao gồm NFS, CIFS, GFS. Hau hết các hệ thống file phân tán kể trên đều được thiết kế nhăm cung cấp hiệu năng, tính tin cậy và tính khả
khối dữ liệu file.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7"><small>2.1.1 Hadoop là gì?</small>
<small>Apache Hadoop định nghĩa:</small>
đâ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ữ dit liệu lên trên nhiều node. Cả Map/Reduce
<small>Wikipedia định nghĩa:</small>
“Hadoop là một framework nguồn mở viết băng Java cho phép phát triển các ứng dụng phan tán có cường độ dữ liệu lớn một cách miễn phi. Nó cho phép các ứng dụng có thé làm việc với hàng ngàn node khác nhau và hàng petabyte dit liệu. Hadoop lấy được phát triển dựa trên ý tưởng từ các cơng bố của Google về mơ hình MapReduce và hệ thống file phân tán
<small>Google File System (GES)”. [9]</small>
<small>2.1.2 Lịch sử Hadoop</small>
<small>Hadoop được tạo ra bởi Dough Cutting, người sáng tao ra Apache Lucene — bộ thư viện</small>
tạo chỉ mục tìm kiếm trên text được sử dụng rộng rãi.
<small>~ ⁄</small>
<small>N /</small>
<small>Luận văn này chi tập trung nghiên cứu HDFS.</small>
trữ và phân tích dữ liệu trên các khối dữ liệu lớn như: Twitter, Facebook, A9.com — Amazon,
Hadoop cluster. Nhìn chung, kiến trúc của Hadoop là kiến trúc master-slave, và cả hai thành
<small>cluster như cho trên Hình 2.2.</small>
<small>quan lý việc mo/dong</small>
<small>Quan lý lưu Trữ cốc lăn lý lưu trữ cặc. lăn lý lưu trữ các</small>
<small>blocks theo yêu cẩu của ;ekstheoyôucâucủa »cks theo yêu cẩu rủa</small>
<small>NamøNode vadap (ng kwmeNodovadipững ;meNode va đáp ứng</small>
<small>yêu cầu truy c&p cáo u cẩu truy cập các lu cẩu truy cập cácblocks từ client ocks từ client pcks từ client</small>
<small>Thực thi các Map task we thi các Map taskvũ Reduce task Theo Reduce task thea</small>
<small>yêu cầu cia JobTracker | ju cẩu của JobTracker</small>
<small>Gp Cac node chay HDFS Cac node chay MapReduce Engine</small>
<small>Hình 2.2 Kiến trúc tong quan một Hadoop cluster</small>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><small>File System Namesps 7” IMyFolder/MyFile</small>
<small>Cáo thông điệp truyền yêu câu</small>
<small>Hình 2.3 Kiến trúc HDFS</small>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><small>2.2.2.3 NameNode và quá trình tương tác giữa client và HDFSa) Quá trình đọc file</small>
<small>Danh sách các block id và nơi lưu trữ</small>
<small>Hình 2.4 Quá trình đọc file trên HDES</small>
<small>b) Ghi file</small>
<small>1. Gửi yêu cầu tạo file</small>
<small>2.2.3 Các tính năng của NameNode</small>
<small>2.2.3.4 Thu nhặt rác (Gabage collettion)</small>
<small>2.2.4.2 Nhân bản các block</small>
<small>2.2.4.3, Nhân ban metadata trên NameNode với SecondaryNameNode2.2.4.4 Toàn ven dt liệu trên HDFS</small>
<small>2.2.5 Các giao diện tương tác</small>
<small>2.2.5.1 Giao diện command line</small>
Đây là giao điện đơn giản nhất dé tương tác với HDFS. HDFS cung cấp các shell dé
<small>trên HDFS thông qua các URI có dạng hdfs:/<namenode>/<path></small>
<small>2.2.5.2 Giao diện Java</small>
Hadoop được viết bằng Java. Vì vậy, tất các thao tác tương tác với HDFS đều được
<small>thực hiện thông qua các Java API. Các shell hình thành nên giao diện command line của</small>
HDFS cũng được viết từ các Java API. Thông qua các Java API của Hadoop, ta có thé dé dàng phát triển các ứng dụng tương tác với HDFS giống như với các hệ thống file truyền thông khác.
<small>2.2.5.3 Giao diện web</small>
Đây là giao diện cho phép ta dễ dàng nắm bắt được tình trạng hoạt động của
<small>Giao diện này còn cho phép ta browse các file trên HDFS và download các file. Tuy nhiên</small>
ta không thể tạo các thay đổi lên hệ thống (tạo, xoá, cập nhật file/thư mục...) từ giao diện này.
<small>Dia chỉ tương tác với HDFS: http:/Knamenode>:50070/</small>
<small>2.2.6 Quản trị HDFS</small>
<small>2.2.6.2 Quản lý hạn ngạch (quotas)</small>
2.3.2 Nhược điểm và giới hạn của Hadoop
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Hadoop () là một framework mã nguồn mở đáng tin cậy, có kha năng mở rộng, hỗ trợ tính tốn phân tán với dir liệu rất lớn ( Tera byte, Peta byte, Exa byte).
<small>Hadoop được xây dựng dựa trên tư tưởng Map/Reduce, đây là mơ hình mà ứng dung sé</small>
được chia nhỏ 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
HDFS (Hadoop Distribute File System) cho phép lưu trữ dit liệu trên nhiều node khác nhau trong kiến trúc cluster. HDFS đều được thiết kế sao cho hadoop có khả năng chịu lỗi dữ liệu,
<small>phân cứng của các node.</small>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><small>3.1.1 Mục tiêu</small>
<small>Hadoop là một Linux-based framework, có nghĩa là nó chỉ hoạt động trên mơi trườngLinux. Do làm việc trên môi trường Linux, nên việc phải dùng cơng cụ dịng lệnh (command</small>
line) cho các q trình cài đặt và quản lý hệ thống là bắt buộc. Mục tiêu là xây dựng mơ hình ứng dụng hệ thống file phân tán HDFS và cài đặt thử nghiệm HDFS làm hệ thống lưu trữ tập trung cho hệ thống lưu trữ cho các công ty vừa và nhỏ.
Mơ hình ứng dụng hệ thống file phân tán cỡ nhỏ dựa trên hệ thống file phân tán Hadoop cần đạt được các yêu cầu sau:
- Cung cấp dung lượng lưu trữ đủ lớn và khả năng mở rộng tốt, đáp ứng yêu cầu lưu trữ cho doanh nghiệp cỡ vừa và nhỏ. Dung lượng lưu trữ tùy theo yêu cầu của từng doanh nghiệp, có thể vào khoảng 10-100 TB. Việc tăng dung lượng lưu trữ có thể thực hiện một cách tương đối đơn giản bằng cách bồ sung máy chủ lưu trữ.
- Cung cấp tính tin cậy cao thơng qua cơ chế sao lưu trực tuyến (replicate). Mỗi khối đữ liệu của file được lưu thành 2-3 bản trên 2-3 máy chủ lưu trữ khác nhau. Số bản sao lưu có thê được cấu hình theo yêu cầu của mỗi hệ thống.
- Giá thành xây dựng và vận hành thấp, phù hợp với quy mơ hệ thong CNTT của doanh nghiệp. Hệ thống có thê được triển khai dựa trên các phần cứng thông thường có sẵn trên thị
- Việc quản trị và vận hành dễ dàng, phù hợp với trình độ CNTT của doanh nghiệp.
<small>3.1.3 Mô hình cài đặt Hadoop cluster</small>
<small>Mơ hình Hadoop cluster được cài đặt như minh họa trên Hình 3.1.</small>
- Các máy sau, mỗi máy sẽ đóng vai trị DataNode và TaskTracker: slave01, slave02.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">- Máy slave02 sẽ đồng thời đóng vai trị là SecondatyNameNode.
<small>Hình 3.1: Mơ hình Hadoop cỡ nhỏ trên Linux</small>
Với một mẫu cài đặt này, để đơn giản hóa việc cài đặt, mỗi máy trên cluster sẽ được cài đặt (hệ điều hành, phần mềm) và cấu hình hồn tồn giống nhau.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><small>Tạo user Hadoop.Cài đặt Java.</small>
<small>a) Tạo user hadoop</small>
Ta tiến hành tạo user hadoop và password, các lệnh sau phải được chạy dưới quyền user
<small>[root@master duy]# useradd hadoop</small>
<small>[root@master duy]# passwd hadoop</small>
<small>Changing password for user hadoop.New password:</small>
<small>Retype new password:</small>
<small>BAD PASSWORD: it is based on a dictionary wordBAD PASSWORD: is too simple</small>
<small>Passwd: all authentication tokens updated successfully.[root@master duy]# su hadoop</small>
<small>[hadoop@master duy]$ If</small>
<small>b) Cai dat Java</small>
phải được cài đặt môi trường Java. Việc cài đặt Java nằm ngồi phạm vi của luận văn, chúng ta có thé tham khảo cách cài đặt JDK trên trang web: hoặc
<small> onlinux.shtml.</small>
<small>Kiêm tra việc cai đặt môi trường java:[hadoop@master ~]$ java -version</small>
<small>java version "1.6.0 18"</small>
<small>Java(T) SE Runtime Environment (build 1.6.0 18-b07)</small>
<small>Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)</small>
Kiểm tra xem máy có được cài đặt SSH hay chưa:
<small>[hadoop@master ~]$ service sshd status</small>
<small>openssh-daemon (pid_ 1116) is running...</small>
Nếu SSH chưa được cai đặt, ta tiến hành cài đặt gói OpenSSH theo hướng dan tai địa
<small>chỉ sau: đó, tiến hành cấu hình passwordless login cho dich vụ SSH với user Hadoop: Đầu tiên phát sinh 1 cặp public/private key:
</div>