1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu về hệ thống file phân tán Hadoop và ứng dụng

26 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu về hệ thống file phân tán Hadoop và ứng dụng
Tác giả Pham Gia Hung
Người hướng dẫn TS. Hoang Xuan Dau
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Hệ thống thông tin
Thể loại Luận văn thạc sĩ kỹ thuật
Năm xuất bản 2015
Thành phố Hà Nội
Định dạng
Số trang 26
Dung lượng 5,52 MB

Nội dung

Trang 1

SSS =

PHAM GIA HUNG

NGHIEN CUU VE HE THONG FILE PHAN TAN

HADOOP VA UNG DUNG

Chuyên ngành: Hệ thống thông tin

Mã số: 60.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT

HÀ NỘI - 2015

Trang 2

Luận văn được hoà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 HOANG XUAN DAU

Phản biện 2: che.

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: ĐIỜ ngày thang năm

Có thé tìm hiểu luận văn tại:

- Thư viện của Học viện Công nghệ Bưu chính Viễn thông.

Trang 3

MỞ ĐẦU

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

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

lẽ như trước kia 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 đườ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ó quy mô vừa và nhỏ là yêu cầu thực tế cấp thiết Đây cũng là lý do tôi chọn đề tài “Nghiên

cứu về hệ thống file phân tán Hadoop và ứng dụng”.

Luận văn được cấu trúc thành 3 chương với nội dung như sau:

Chương 1: Tổng quan về hệ thống file phân tán: Trinh bày khái niệm hệ thống file và hệ thống file phân tán, các yêu cầu đối với hệ thống file phân tán, các kỹ thuật sử dụng trong hệ thống file phân tán.

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

dụng phân tán trên Hadoop.

Chương 3: Xây dựng và thử nghiệm mô hình ứng dụng hệ thống file phân tán

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.

Trang 4

CHƯƠNG 1: TONG QUAN VE HE THONG FILE PHAN TAN

1.1 Khái niệm hệ thống file và hệ thống File phân tan 1.1.1 Khái niệm hệ thông file

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.

1.1.2 Khái niệm về hệ thống file phân tán

Hệ thống file phân tán (Distributed File System — DFS) là một hệ thống file hỗ trợ chia

sẻ files và các tài nguyên trên mạng.

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

mạng (Network File System) dùng dé chi bat kỳ một hệ thống file nào hỗ trợ việc truy cập vào các file từ nhiều máy tính (host) chia sẻ dữ liệu với nhau thông qua một mạng máy tính Hệ

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

tải nguyên lưu trữ.

1.2 Lịch sử phát triển

Cùng với sự phát triển của các mạng máy tính, việc quản lý, lưu trữ 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 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.

1.3 Các yêu cầu đối với hệ thống file phân tán

Các yêu cầu chính đối với hệ thống file phân tán bao gồm:

- Tính trong suốt (Transparency).

- Hiệu năng (Performance).

- Khả năng chịu lỗi (Fault Tolerrence).

- Khả năng mở rộng (Scalability).

1.4 Giới thiệu một số hệ thống file phân tán

1.4.1 Hệ thống file phân tán NFS (Network File System)

1.4.1.1 Kiến trúc của NES.1.4.1.2 Truyền thông.

Trang 5

1.4.1.3 Đồng bộ hóa.

1.4.1.4 Lưu đệm (caching) và bản sao (replication).

1.4.1.5 Van đề chịu lỗi.

1.4.1.6 An toàn — An ninh.

1.4.2 Hệ thông File phân tán CIFS (Common Internet File System)

1.4.2.1 Khai niém vé hé théng file phan tan CIFS

The Common Internet File System (CIFS) con được biết tới với cái tên Server

Message Block (SMB), là một giao thức được sử dụng chủ yếu để chia sẻ files trên mạng

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à

chúng nằm trên máy tính đó Cac thao tác như đọc, ghi, tạo, xóa va đổi tên đều được hỗ trợ

-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.

1.4.2.2 Ứng dụng

Giao thức CIFS chủ yếu được sử dụng trong các hệ điều hành của Microsoft Windows

For Workgroups là hệ điều hành đầu tiên của Microsoft sử dụng CIFS, và các hệ điều hành sau

đó 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

Neighborhood), xác thực (WindowsNT và Windows 2000), vacac dịch vụ máy in từ xa Có

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.

1.4.2.3 Sự thay đối trong tương lai

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)

1.4.3.1 Giới thiệu về GFS

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

Trang 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

sát khối lượng dữ liệu cần xử lý của các ứng dụng và môi trường công nghệ hiện tại.

1.4.3.2 Kiến trúc của GFS

a) Giả thiết thiết kế hệ thống b) Kiến trúc hệ thống

c) Máy chủ đơn (Single Master)

d) Kích thước đoạn dir liệu

e) Metadata

1.4.3.3 Chịu lỗi và chuẩn đoán lỗi

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ê hoàn toàn tin tưởng vào máy móc và cũng không thé hoàn toà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.

a) Tính sẵn sàng cao

b) Khôi phục nhanhc) Tái tạo dữ liệud) Tai tao Master

e) Tinh toan ven dir liéu

f) Các công cụ chuẩn đoán lỗi

1.5 Kết chương

Chương 1 đã đi sâu nghiên cứu kiến trúc, các đặc điểm, hoạt động và các ưu nhược

đ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ả

dụng cao, đồng thời đảm bảo các yêu cầu an toàn bảo mật dữ liệu quản lý hệ thống file và các

khối dữ liệu file.

Trang 7

CHƯƠNG 2: HE THONG FILE PHAN TAN HADOOP

2.1 Giới thiệu hệ thống File phân tán Hadoop

2.1.1 Hadoop là gì?

Apache Hadoop định nghĩa:

“Apache Hadoop là một framework dùng dé chạy những ứng dụng trên 1 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ữ dit liệu lên trên nhiều node Cả Map/Reduce

và HDFS đều được thiết kế sao cho framework sẽ 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” [9]

Wikipedia định nghĩa:

“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

Google File System (GES)” [9]

2.1.2 Lịch sử Hadoop

Hadoop được tạo ra bởi Dough Cutting, người sáng tao ra Apache Lucene — bộ thư viện

tạo chỉ mục tìm kiếm trên text được sử dụng rộng rãi.

2.1.3 Các thành phan của Hadoop

~ ⁄

N /

- Chunka ` ( Pig `

Trang 8

Luận văn này chi tập trung nghiên cứu HDFS.

2.1.4 Ứng dụng của Hadoop

Ngày nay, ngoài Yahoo!, có nhiều công ty sử dụng Hadoop như là một công cụ dé lưu

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,

2.1.5 Tổng quan của một Hadoop cluster

Như đã giới thiệu ở mục 2.1.3, HDFS và MapReduce là hai thành phần chính của một

Hadoop cluster Nhìn chung, kiến trúc của Hadoop là kiến trúc master-slave, và cả hai thành

phần HDFS và MapReduce đều tuân theo kiến trúc master-slave này Kiến trúc một Hadoop

cluster như cho trên Hình 2.2.

quan lý việc mo/dong

Quan lý lưu Trữ cốc lăn lý lưu trữ cặc lăn lý lưu trữ các

blocks theo yêu cẩu của ;ekstheoyôucâucủa »cks theo yêu cẩu rủa

NamøNode vadap (ng kwmeNodovadipững ;meNode va đáp ứng

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

Thực thi các Map task we thi các Map taskvũ Reduce task Theo Reduce task thea

yêu cầu cia JobTracker | ju cẩu của JobTracker

Slave Slave Slave

Gp Cac node chay HDFS Cac node chay MapReduce Engine

Hình 2.2 Kiến trúc tong quan một Hadoop cluster

Trang 9

File System Namesps 7” IMyFolder/MyFile

Qui ước: Disk Disk Disk Disk

Cáo thông điệp truyền yêu câu

Hình 2.3 Kiến trúc HDFS

Trang 10

2.2.2.3 NameNode và quá trình tương tác giữa client và HDFSa) Quá trình đọc file

Sơ đồ sau miêu tả rõ quá trình client đọc một file trên HDFS.

Danh sách các block id và nơi lưu trữ

Hình 2.4 Quá trình đọc file trên HDES

b) Ghi file

Sơ đồ sau mô tả quá trình tương tác giữa client lên hệ thống HDFS.

Trang 11

1 Gửi yêu cầu tạo file

2.2.3 Các tính năng của NameNode

2.2.3.1 Nhận biết cau trúc topology của mang

2.2.3.2 Sắp xếp bản sao của các block lên các DataNode 2.2.3.3 Cân bang cluster

2.2.3.4 Thu nhặt rác (Gabage collettion)

2.2.4 Khả năng chịu lỗi và chan đoán lỗi của HDFS2.2.4.1 Kha năng phục hồi nhanh chóng

Trang 12

2.2.4.2 Nhân bản các block

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

2.2.5 Các giao diện tương tác

2.2.5.1 Giao diện command line

Đâ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é

thao tác trên folder, file như tạo, xoá, di chuyền, rename, copy Các shell này đều thao tác

trên HDFS thông qua các URI có dạng hdfs:/<namenode>/<path>

2.2.5.2 Giao diện Java

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

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

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.

2.2.5.3 Giao diện web

Đâ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

HDES, biết được danh sách các node đang hoạt động, tinh trạng dia cứng trên từng node

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

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.

Dia chỉ tương tác với HDFS: http:/Knamenode>:50070/

2.2.6 Quản trị HDFS

2.2.6.1 Quyền truy nhập

2.2.6.2 Quản lý hạn ngạch (quotas)

2.3 Các ưu và nhược điểm của hệ thống file phân tán Hadoop 2.3.1 Các ưu điểm của Hadoop

2.3.2 Nhược điểm và giới hạn của Hadoop

Trang 13

2.4 Kết chương

Hadoop (http://hadoop.apache.org) là một framework mã nguồn mở đáng tin cậy, có kha năng mở rộng, hỗ trợ tính toán phân tán với dir liệu rất lớn ( Tera byte, Peta byte, Exa byte).

Hadoop được xây dựng dựa trên tư tưởng Map/Reduce, đây là mô hình mà ứng dung sé

đượ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

nhiều Node khác nhau Thêm vào đó Hadoop cung cấp một thống quản lý file phân tán gọi là

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,

phân cứng của các node.

Trang 14

CHƯƠNG 3: XÂY DỰNG VA THU NGHIEM MÔ HÌNH UNG DUNG

HE THONG FILE PHAN TAN HADOOP

3.1 Xây dung mô hình ứng dụng hệ thống file phan tán cỡ nhỏ

3.1.1 Mục tiêu

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

line) cho các quá 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ỏ.

3.1.2 Các yêu cầu của mô hình ứng dụng hệ thống file phân tán cỡ 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 - Giao diện truy nhập/sử dụng hệ thống đơn giản, tương tự hệ thống file cục bộ.

3.1.3 Mô hình cài đặt Hadoop cluster

Mô hình Hadoop cluster được cài đặt như minh họa trên Hình 3.1.

- NameNode và JobTracker sẽ nam cùng một node vat ly là may master.

- Các máy sau, mỗi máy sẽ đóng vai trò DataNode và TaskTracker: slave01, slave02.

Trang 15

- Máy slave02 sẽ đồng thời đóng vai trò là SecondatyNameNode.

Hình 3.1: Mô hình Hadoop cỡ nhỏ trên Linux

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 hoàn toàn giống nhau.

Trang 16

Tạo user Hadoop.Cài đặt Java.

Cấu hình SSH.

a) Tạo user hadoop

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

root hay | user có quyén han thuc hién useradd.

[root@master duy]# useradd hadoop

[root@master duy]# passwd hadoop

Changing password for user hadoop.New password:

Retype new password:

BAD PASSWORD: it is based on a dictionary wordBAD PASSWORD: is too simple

Passwd: all authentication tokens updated successfully.[root@master duy]# su hadoop

[hadoop@master duy]$ If

b) Cai dat Java

Hadoop được viết bằng Java, vì vậy dé chạy được hadoop, tại mỗi node trên cluster đều

phải được cài đặt môi trường Java Việc cài đặt Java nằm ngoà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: http://timarcher.com/node/59 hoặc

http://www.roseindia.net/linux/tutorial/installingjdk5 onlinux.shtml.

Kiêm tra việc cai đặt môi trường java:[hadoop@master ~]$ java -version

java version "1.6.0 18"

Java(T) SE Runtime Environment (build 1.6.0 18-b07)

Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)

c) Cau hinh SSH

Kiểm tra xem máy có được cài đặt SSH hay chưa:

[hadoop@master ~]$ service sshd status

openssh-daemon (pid_ 1116) is running

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

chỉ sau: http://www.topology.org/linux/openssh.html.

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:

Ngày đăng: 07/04/2024, 12:08

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w