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 (2.74 MB, 29 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>ĐỒ ÁN NHĨM</b>
<b>MƠN HỌC PRINCIPLES OF BIG DATA</b>
<b>ĐỀ TÀI</b>
<b>HADOOP MAPREDUCE VÀ </b>
<b>CHƯƠNG TRÌNH WORDCOUNT CƠ BẢN VỚI MAPREDUCE</b>
<b>GVHD: TH. S Lê Thanh LongLớp: DS 303 A</b>
<b>Nhóm: 03</b>
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
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>1.5Đề xuất hướng giải quyết...9</b>
<i><b>CHƯƠNG II: CHẠY CHƯƠNG TRÌNH...9</b></i>
<i><b>CHƯƠNG III: KẾT LUẬN...27</b></i>
<b>3.1 Kết luận...27</b>
<b>3.2 Hướng phát triển...27</b>
<i><b>TÀI LIỆU THAM KHẢO...28</b></i>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">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.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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 tồn vẹn của dữ liệu.
Hình 1.3. Mơ hình Hadoop Distributed File System
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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 ngun tính tố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 ngun tính tố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
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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ừ.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>CHƯƠNG II: CHẠY CHƯƠNG TRÌNH</b>
hadoop fs -put <INPUT_FILE> <HDFS_INPUT_DIRECTORY>
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">cd <TUTORIAL_DIRECTORY>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Biên dịch mã java: javac -classpath ${HADOOP_CLASSPATH} -d < CLASSES_FOLDER> < TUTORIAL_JAVA_FILE>
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Check the files!
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="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>
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">hadoop dfs -cat <HDFS_OUTPUT_DIRECTORY>*
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">Đồ án đã giới thiệu khái qt đượ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, ngun 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.
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 tốn phân tán
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">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.
</div>