đề tài hadoop mapreduce và chương trình wordcount cơ bản với mapreduce

29 0 0
đề tài hadoop mapreduce và chương trình wordcount cơ bản với mapreduce

Đ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

LỜI CẢM ƠNĐể hoàn thành đề tài này, chúng em xin gửi lời cảm ơn chân thành đến: Khoa, Trường Đại học Duy tân vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng

Trang 1

TRƯỜNG ĐẠI HỌC DUY TÂNTRƯỜNG KHOA HỌC MÁY TÍNH

ĐỒ ÁN NHÓM

MÔN HỌC PRINCIPLES OF BIG DATA

ĐỀ TÀI

HADOOP MAPREDUCE VÀ

CHƯƠNG TRÌNH WORDCOUNT CƠ BẢN VỚI MAPREDUCE

GVHD: TH S Lê Thanh LongLớp: DS 303 A

Nhóm: 03

Thành viên 1: Trần Nguyễn Hoàng Huy Thành viên 2: Phạm Vũ Long Thành viên 3: Lê Kim Quang Thành viên 4: Tăng Tạ Minh Nhân Thành viên 5: Vongvilay Chanthaphone

Trang 2

1.5Đề xuất hướng giải quyết 9

CHƯƠNG II: CHẠY CHƯƠNG TRÌNH 9

CHƯƠNG III: KẾT LUẬN 27

3.1 Kết luận 27

3.2 Hướng phát triển 27

TÀI LIỆU THAM KHẢO 28

Trang 3

LỜI CẢM ƠN

Để hoàn thành đề tài này, chúng em xin gửi lời cảm ơn chân thành đến: Khoa, Trường Đại học Duy tân vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin.

Xin cảm ơn giảng viên hướng dẫn - Thầy Lê Thanh Long đã giảng dạy tận tình, chi tiết để chúng em có đủ kiến thức và vận dụng được kiến thức vào đề tài này Do chưa có nhiều kinh nghiệm làm đề tài cũng như những hạn chế về kiến thức, trong bài tiểu luận chắc chắn sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự nhận xét, ý kiến đóng góp, phê bình từ phía Thầy để bài tiểu luận được hoàn thiện hơn.

Lời cuối cùng, chúng em xin kính chúc Thầy nhiều sức khỏe, thành công và hạnh phúc.

Chúng em xin chân thành cảm ơn!

Trang 4

NHẬN XÉT CỦA GIÁO VIÊN

Trang 5

CHƯƠNG I: TỔNG QUAN

1.1 Giới thiệu về Apache Hadoop

Apache hadoop là một framework giúp lưu trữ và xử lý BigData áp dụng MapReduce Mô hình MapReduce là mô hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phầ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 hệ thống file phân tán (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.

Hadoop viết bằng Java Tuy nhiên, nhờ cơ chế streaming, Hadoop cho phép phát triển các ứng dụng phân tán bằng cả java lẫn một số ngôn ngữ lập trình khác như C++, Python, Pearl.

Kiến trúc Hadoop: Apache Hadoop dùng để quản lý và truy cập dữ liệu, và chỉ bao gồm 2 thành phần là: MapReduce và Hadoop Distributed File System (HDFS) Theo thời gian, nền tảng Hadoop mở rộng kết hợp với một loạt các dự án khác để thành một nền tảng hoàn chỉnh Nền tảng này chia thành 5 loại sau: data access, data management, security, operations và governance.

Trang 6

Hình 1.1 Kiến trúc Hadoop

Hadoop MapReduce: Map-Reduce là một framework dùng để viết các ứng dụng xử lý song song một lượng lớn dữ liệu có khả năng chịu lỗi cao xuyên suốt hàng ngàn cluster(cụm) máy tính Map-Reduce thực hiện 2 chức năng chính đó là Map và Reduce.

- Map: Sẽ thực hiện đầu tiên, có chức năng tải, phân tích dữ liệu đầu vào và được chuyển đổi thành tập dữ liệu theo cặp key/value

- Reduce: Sẽ nhận kết quả đầu ra từ tác vụ Map, kết hợp dữ liệu lại với nhau thành tập dữ

- MapReduce execution framework - Truyền thông liên tiến trình.

Trang 7

Hadoop Distributed File System (HDFS): Đây là hệ thống file phân tán cung cấp truy cập thông lượng cao cho ứng dụng khai thác dữ liệu HDFS là hệ thống quản lý dữ liệu phân tán dựa trên nền tảng Java cung cấp giải pháp lưu trữ tin cậy, ổn định, truy cập nhanh chóng Với mục đích này thì cách thức “wrice once, read many” được sử 7 dụng, cho phép dữ liệu thường được ghi một lần mỗi HDFS, sau đó sẽ được đọc nhiều lần Do vậy việc sửa đổi dữ liệu sau khi ghi thường rất hạn chế Để lưu trữ dữ liệu phân tán, dữ liệu sẽ được chia thành các block (64/128 MB) và được phân phối tới các node xử lý Mỗi block đồn thời sẽ được sao chép đến các server khác trong cụm cluster để đảm bảo tính toàn vẹn của dữ liệu.

Hình 1.3 Mô hình Hadoop Distributed File System

Trang 8

Bên cạnh 2 thành phần cốt lõi Hadoop cũng có một số modules:

- Hadoop YARN: Đây là framework để quản lý tiến trình và tài nguyên của các node YARN cung cấp daemons và APIs cần thiết cho việc phát triển ứng dụng phân tán, đồng thời xử lý, lập lịch sử dụng tài nguyên tính toán (CPU hay Memory) cũng như giám sát quá trình thực thi các ứng dụng đó 8 YARN tổng quát hơn MapReduce thế hệ đầu tiên (gồm mô hình JobTracker / TaskTracker) Bên trong YARN, chúng ta có hai trình quản lý ResourceManager và NodeManager

- ResourceManager: Quản lý toàn bộ tài nguyên tính toán của cluster

- NodeManager: Giám sát việc sử dụng tài nguyên của container và báo cáo với ResourceManager Các tài nguyên ở đây là CPU, memory, disk, network,

- Ta có thể mở rộng YARN thông qua tính năng YARN Federation Tính năng này cho phép chúng ta buộc nhiều cụm YARN thành một cụm lớn Điều này cho phép sử dụng các cụm độc lập, ghép lại với nhau cho một job rất lớn

Hình 1.4 Mô hình Hadoop YARN

Trang 9

- Hadoop Common: Đây là các thư viện và tiện ích cần thiết của Java để các module khác sử dụng Những thư viện này cung cấp hệ thống file và lớp OS trừu tượng, đồng thời chứa các mã lệnh Java để khởi động Hadoop.

1.2 Mục tiêu đề tài

Xây dựng chương trình WordCount trên CentOS 1.3 Hướng giải quyết

Sử dụng MapReduce của Hadoop để thực hiện chương trình 1.4 Khó khăn và thách thức

- Cấu hình môi trường: Việc cài đặt và cấu hình Hadoop có thể khó khăn và gặp lỗi - Hiệu suất: Tối ưu hóa hiệu suất cho việc xử lí dữ liệu lớn có thể là một thách thức - Gỡ lỗi: Việc gỡ lỗi trong Hadoop có thể khó khăn do thiếu chế độ tương tác, thông tin lỗi có thể không rõ ràng.

1.5 Đề xuất hướng giải quyết

- Thiết lập môi trường Hadoop: Cài đặt Hadoop và cấu hình môi trường phù hợp - Tạo dữ liệu đầu vào: File txt chứa dữ liệu cần xử lí.

- Viết mã cho file WordCount.java - Kiểm tra cục bộ

- Chạy chương trình MapReduce để thực hiện đếm từ

Trang 10

CHƯƠNG II: CHẠY CHƯƠNG TRÌNH

Đảm bảo Hadoop đã được cài đặt và chạy: hadoop version

Trang 11

Đảm bảo javac đang chạy chính xác: javac -version

Trang 12

Wordcount.java

Trang 13

Bây giờ, tạo thư mục mới cho dữ liệu đầu vào (input_data):

Thêm tập tin văn bản của riêng bạn vào thư mục này:

Trang 15

Tạo thư mục mới để chứa các tập tin lớp java (tutorial_classes):

Bây giờ, hãy đặt biến môi trường HADOOP_CLASSPATH

Trang 16

Đảm bảo rằng nó đã được đặt chính xác: echo $HADOOP_CLASSPATH

Tạo một thư mục trên HDFS: hadoop fs -mkdir <DIRECTORY_NAME>

Trang 17

Tạo một thư mục bên trong nó cho đầu vào: hadoop fs -mkdir <HDFS_INPUT_DIRECTORY>

Truy cập localhost:50070 để vào giao diện của hadoop

Trang 19

Tải tập tin đầu vào vào thư mục đó:

hadoop fs -put <INPUT_FILE> <HDFS_INPUT_DIRECTORY>

Trang 22

Thay đổi thư mục hiện tại thành thư mục hướng dẫn:

cd <TUTORIAL_DIRECTORY>

Trang 23

Biên dịch mã java: javac -classpath ${HADOOP_CLASSPATH} -d < CLASSES_FOLDER> < TUTORIAL_JAVA_FILE>

Trang 24

Check the files!

Trang 25

Đặt các tập tin đầu ra vào một tập tin jar: jar -cvf < JAR_FILE_NAME> -C <CLASSES_FOLDER>

Bây giờ chúng ta có tệp jar

Chạy jar trên Hadoop: hadoop jar <JAR_FILE> < CLASS_NAME>

<HDFS_INPUT_DIRECTORY> <HDFS_OUTPUT_DIRECTORY>

Trang 27

hadoop dfs -cat <HDFS_OUTPUT_DIRECTORY>*

Trang 28

CHƯƠNG III: KẾT LUẬN

3.1 Kết luận

Đồ án đã giới thiệu khái quát được mô hình của Apache Hadoop Giúp chúng ta hiểu hơn về Hadoop là gì, mô hình Hadoop, nguyên tắc hoạt động của nó Đồng thời, đồ án cũng giúp chúng ta biết về cài đặt Apache Hadoop, các thành phần, cách thức làm việc, và tìm hiểu một số API cơ bản mà Hadoop cung cấp, cần thiết cho việc lập trình một ứng dụng, hay triển khai một thuật toán ứng dụng.

3.2 Hướng phát triển

Big Data đang trở thành một quan trọng và là tài sản to lớn của mỗi doanh nghiệp, trong đó Hadoop là công nghệ cốt lõi cho việc lưu trữ và truy cập dữ liệu lớn.

Các node trong Hadoop được chia làm 2 loại: Name node (master), data node (slave) Hadoop sinh ra để giải quyết 2 vấn đề: Lưu trữ và quản lý các tập dữ liệu lớn.

Khả năng linh hoạt của Hadoop cho phép các công ty có thể thêm hoặc sửa đổi hệ thống dữ liệu bất cứ lúc nào khi có nhu cầu phát sinh sự thay đổi.

Một số lý do nên sử dụng Hadoop:

-Hadoop là hệ thống cung cấp lưu trữ và xử lý dữ liệu trên phần cứng được sử dụng rộng rãi nhất - tương đối hiệu quả về chi phí

- Open source

- Hiệu quả trong việc lưu trữ phân tán và tính toán phân tán

Trang 29

TÀI LIỆU THAM KHẢO

anjali (2022) MapReduce Tutorial–Learn to implement Hadoop WordCount Example projectpro Anushkakhatri (2023) An Introduction to MapReduce with a Word Count Example analyticsvidhya CodeGyani (2019) MapReduce Word Count Example javatpoint.

Huy, N Q (2021) Hadoop MapReduce và chương trình WordCount cơ bản với MapReduce Ho Chi Minh: Demanejar.

Sheeha, M (2016) How to run Word Count example on Hadoop MapReduce (WordCount Tutorial) Youtube.

Ngày đăng: 24/04/2024, 16:12

Tài liệu cùng người dùng

Tài liệu liên quan