Hadoop 1.1 Hadoop gì? 1.2 Tại chọn Hadoop? 1.3 Các thành phần cốt lỗi 1.3.1 Map reduce ( Mơ hình xử lý data) 1.3.2 HDFS (Hệ thống toán lưu trữ HDFS) 1.3.3 YARN (Trình quản lý tài nguyên) 1.4 Hệ sinh thái Hadoop 1.5 Cài đặt cụm Hadoop Node Ubuntu Server 2 Maven 20 2.1 Maven ? 20 2.2 Mục tiêu Maven 20 2.3 Các tính Maven 20 2.4 Cách tạo project Maven 21 Spark 26 3.1 Tổng quan Apache Spark 26 3.2 Spark xây dựng Hadoop 26 3.3 Thành phần 27 3.4 Resilient Distributed Datasets (RDD) 28 3.5 Vì RDD lại nhanh hiệu MapReduce 28 3.6 Quản lý nhớ Spark 29 3.7 PySpark 30 3.7 Cài đặt Spark 31 3.7.1 Cài đặt Spark Ubuntu 31 3.7.2 Cài đặt Spark Window 33 MongoDB 38 4.1 MongoDB ? 38 4.2 Các thuật ngữ hay gặp MongoDB 38 4.3 Hoạt Động MongoDB 39 4.4 Ưu điểm nhược điểm 39 4.5 Cài đặt MongoDB Compass 40 4.6 Các thao tác MongoDB Compass 43 4.7 Các Thao tác Command Line 46 4.8 Kết nối MongoDB với Java 48 Hadoop 1.1 Hadoop gì? -Apache Hadoop framework cho phép sử dụng lượng lớn data thông qua việc chia cho cac cluster máy tính thương mại với hệ thống đơn giản - Nó cơng nghệ quản lý mã nguồn mở, quản lý data phân tán 1.2 Tại chọn Hadoop? - Lưu theo cấu trúc, bán cấu trúc - Phần cứng thương mại, tiện lợi - Khả mở rộng tuyến tính -Giảm chi phí, đường truyền tặng, khơng lo quyền 1.3 Các thành phần cốt lỗi 1.3.1 Map reduce ( Mơ hình xử lý data) - Thực thi task song song - Cơ chế hoạt động: Map chia thành khối nhỏ dựa từ khóa data cần xử lý VD: Bán hàng-> tập trung vào doanh thu, mặt hàng, giá bán 1.3.2 HDFS (Hệ thống toán lưu trữ HDFS) - Là hệ thống lưu trữ file phân bố, phân tán, uyển chuyển - Được viết JAVA - Chạy cụm máy thương mại - Dùng để lưu trữ data lớn - Gồm phần: 1) Namenode: + Là thành phần trung tâm HDFS +Lưu meta data +Chịu trách nhiệm giám sát Slave node giao nhiệm vụ tới Data node 2) Datanode: +Lưu data vào Slave +Báo sức khỏe định kỳ cho master nhịp tim => Nếu Slave chết master có nhiệm vụ thay Slave 3) Secondary namenode: +Như đệm cho namenode +Chưa cập nhật cluster hệ thống +Hỗ trợ namenode hoạt động 1.3.3 YARN (Trình quản lý tài nguyên) - Là trình quản lý tài ngun (có từ Hadoop 2.0) - Chịu trách nhiệm quản lý tài nguyên công việc - Bao gồm thành phần: +Resource Manager: Quản lý tài nguyên, gọi Master +Node Maanager: Slave, phục vụ Resource Maanager, quản lý tình trạn container App Manager 1.4 Hệ sinh thái Hadoop - Hệ sinh thái Hadoop bao gồm: HDFS (Hệ thống tệp phân tán Hadoop)
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỀ TÀI: Tổng hợp lý thuyết Giảng viên hướng dẫn : Sinh viên thực Lê Thị Minh Châu : Nguyễn Phạm Duy Khiêm 19133027 Nguyễn Vũ Lực 19133034 Nguyễn Hoài Nam 19133037 Vũ Văn Phước 19133045 Mục lục Hadoop 1.1 Hadoop gì? 1.2 Tại chọn Hadoop? 1.3 Các thành phần cốt lỗi 1.3.1 Map reduce ( Mơ hình xử lý data) 1.3.2 HDFS (Hệ thống toán lưu trữ HDFS) 1.3.3 YARN (Trình quản lý tài nguyên) 1.4 Hệ sinh thái Hadoop 1.5 Cài đặt cụm Hadoop Node Ubuntu Server 2 Maven 20 2.1 Maven ? 20 2.2 Mục tiêu Maven 20 2.3 Các tính Maven 20 2.4 Cách tạo project Maven 21 Spark 26 3.1 Tổng quan Apache Spark 26 3.2 Spark xây dựng Hadoop 26 3.3 Thành phần 27 3.4 Resilient Distributed Datasets (RDD) 28 3.5 Vì RDD lại nhanh hiệu MapReduce 28 3.6 Quản lý nhớ Spark 29 3.7 PySpark 30 3.7 Cài đặt Spark 31 3.7.1 Cài đặt Spark Ubuntu 31 3.7.2 Cài đặt Spark Window 33 MongoDB 38 4.1 MongoDB ? 38 4.2 Các thuật ngữ hay gặp MongoDB 38 4.3 Hoạt Động MongoDB 39 4.4 Ưu điểm nhược điểm 39 4.5 Cài đặt MongoDB Compass 40 4.6 Các thao tác MongoDB Compass 43 4.7 Các Thao tác Command Line 46 4.8 Kết nối MongoDB với Java 48 Hadoop 1.1 Hadoop gì? -Apache Hadoop framework cho phép sử dụng lượng lớn data thông qua việc chia cho cac cluster máy tính thương mại với hệ thống đơn giản - Nó cơng nghệ quản lý mã nguồn mở, quản lý data phân tán 1.2 Tại chọn Hadoop? - Lưu theo cấu trúc, bán cấu trúc - Phần cứng thương mại, tiện lợi - Khả mở rộng tuyến tính -Giảm chi phí, đường truyền tặng, khơng lo quyền 1.3 Các thành phần cốt lỗi 1.3.1 Map reduce ( Mơ hình xử lý data) - Thực thi task song song - Cơ chế hoạt động: Map chia thành khối nhỏ dựa từ khóa data cần xử lý VD: Bán hàng-> tập trung vào doanh thu, mặt hàng, giá bán 1.3.2 HDFS (Hệ thống toán lưu trữ HDFS) - Là hệ thống lưu trữ file phân bố, phân tán, uyển chuyển - Được viết JAVA - Chạy cụm máy thương mại - Dùng để lưu trữ data lớn - Gồm phần: 1) Namenode: + Là thành phần trung tâm HDFS +Lưu meta data +Chịu trách nhiệm giám sát Slave node giao nhiệm vụ tới Data node 2) Datanode: +Lưu data vào Slave +Báo sức khỏe định kỳ cho master nhịp tim => Nếu Slave chết master có nhiệm vụ thay Slave 3) Secondary namenode: +Như đệm cho namenode +Chưa cập nhật cluster hệ thống +Hỗ trợ namenode hoạt động 1.3.3 YARN (Trình quản lý tài nguyên) - Là trình quản lý tài ngun (có từ Hadoop 2.0) - Chịu trách nhiệm quản lý tài nguyên công việc - Bao gồm thành phần: +Resource Manager: Quản lý tài nguyên, gọi Master +Node Maanager: Slave, phục vụ Resource Maanager, quản lý tình trạn container App Manager 1.4 Hệ sinh thái Hadoop - Hệ sinh thái Hadoop bao gồm: HDFS (Hệ thống tệp phân tán Hadoop) : HDFS có cơng việc quan trọng để thực khung Hadoop Nó phân phối liệu lưu trữ nút có cụm, đồng thời Quá trình làm giảm tổng thời gian lưu trữ liệu vào đĩa MapReduce (Đọc / ghi liệu lớn vào / từ Hadoop MR) : Hadoop MapReduce phần quan trọng khác hệ thống xử lý khối lượng liệu khổng lồ lưu trữ cụm Nó cho phép xử lý song song tất liệu lưu trữ HDFS Hơn nữa, giải vấn đề chi phí xử lý cao thơng qua khả mở rộng lớn cụm Apache Pig ( Pig loại ETL cho hệ sinh thái Hadoop) : Đây ngôn ngữ kịch cấp cao để viết chương trình phân tích liệu cho tập liệu khổng lồ cụm Hadoop Pig cho phép nhà phát triển tạo thói quen thực truy vấn để phân tích tập liệu lớn Ngơn ngữ kịch gọi Pig Latin, phần quan trọng Pig phần thứ hai trình biên dịch Nguồn Apache HBase (OLTP / NoQuery) : Đây sở liệu hướng theo cột hỗ trợ hoạt động HDFS sở thời gian thực Nó kích hoạt để xử lý bảng sở liệu lớn, tức tệp chứa hàng triệu hàng cột Một sử dụng quan trọng HBase sử dụng hiệu nút để quản lý máy chủ khu vực Apache Hive (Hive công cụ SQL Hadoop) : Với giao diện giống SQL, Hive cho phép vượt qua bình phương liệu từ HDFS Phiên Hive ngôn ngữ SQL gọi HiveQL Apache Sqoop (Nhập / xuất liệu từ RDBMS [nguồn SQL] vào Hadoop) : Đây ứng dụng giúp nhập xuất liệu từ Hadoop sang hệ thống quản lý sở liệu quan hệ khác Nó chuyển phần lớn liệu bạn Sqoop dựa kiến trúc trình kết nối hỗ trợ plugin để thiết lập kết nối với hệ thống bên ngồi Apache Flume (Nhập liệu từ Khơng cấu trúc (Các trang web truyền thông xã hội) / Cấu trúc vào Hadoop) : Đây ứng dụng cho phép lưu trữ liệu truyền phát vào cụm Hadoop, chẳng hạn liệu ghi vào tệp nhật ký ví dụ tốt truyền liệu Apache Zookeeper (công cụ phối hợp sử dụng mơi trường cụm) : Vai trị quản lý phối hợp ứng dụng đề cập để hoạt động hiệu chúng hệ sinh thái Hadoop 1.5 Cài đặt cụm Hadoop Node Ubuntu Server - Login với vai trò root (pass: root) để thực công việc sau Thiết lập IP tĩnh cho masternet Kiểm tra thiết bị mạng # networkctl - In trạng thái địa IP hệ thống # networkctl status Nhấn phím q ể thơng báo - Cấu hình IP tĩnh # vim /etc/netplan/00-installer-config.yaml - Thêm vào nội dung sau - Lưu file chạy lệnh sau để lưu cấu hình # netplan apply - Hệ thống cấu hình theo IP mới, để kiểm tra chạy lệnh sau # ifconfig # ip addr show Cài đặt Oracle Java 16 # add-apt-repository ppa:linuxuprising/java Lưu ý: Nhấn phím Enter để đồng ý cài đặt # apt update - Khởi động lại máy # reboot # apt install default-jdk up Nhấn OK để chấp nhận liscence - Quản lý phiên Java (chọn phiên Oracle Manual Mode) # su Cài đặt SSH # apt-get install ssh # apt install openssh-server # reboot Cấu hình SSH # vim /etc/ssh/sshd_config - Tìm đoạn # PubkeyAuthentication yes Bỏ dấu # phía trước thành PubkeyAuthentication yes - Tìm đoạn PasswordAuthentication no đổi thành PasswordAuthentication yes - Sau sửa nhấn phím ESC, nhập :wq để lưu thoát khỏi vim - Khởi động lại SSH # service sshd restart Cấu hình host/hostname Kiểm tra ip máy master, slave # ifconfig #ip addr show Ví dụ: - Master: 192.168.59.1 - Slave: 192.168.59.3 Cấu hình host # vim /etc/hosts - Nhấn phím i để chuyển sang chế độ insert, bổ sung thêm host master slave sau: 192.168.52.1 khiem-master 192.168.52.3 khiem-slave Cài đặt hostname cho master (thực máy master) # vim /etc/hostname - Trong file xuất hostname mặc định máy, xóa đổi thành khiem_master Cài đặt hostname cho slave (thực máy slave) # vim /etc/hostname - Trong file xuất hostname mặc định máy, xóa đổi thành slave - Restart máy # reboot Tạo user hadoop - Tạo user hadoopuser để quản lý permission cho đơn giản # addgroup hadoopgroup # adduser hadoopuser # usermod -g hadoopgroup hadoopuser # groupdel hadoopuser Cài đặt Hadoop 3.3.1 - Chuyển qua hadoopuser # su hadoopuser Cd - Chuyển qua thư mục /home/hadoopuser để download file: # wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop3.3.1.tar.gz - Giải nén file # tar -xzf hadoop-3.3.1.tar.gz - Đổi tên thư mục giải nén thành hadoop cho dễ quản lý # mv hadoop-3.3.1 hadoop Cấu hình thơng số cho Hadoop File bashrc # vim ~/.bashrc - Thêm vào cuối file bashrc nội dung sau: export HADOOP_HOME=/home/hadoopuser/hadoop export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" - Nhấn Esc, nhập :wq để lưu thoát file + Như giới thiệu trên, thay đổi liệu mặc định chưa ghi xuống ổ cứng khả bị liệu từ nguyên nhân điện đột xuất cao 4.5 Cài đặt MongoDB Compass A) Download MongoDB Community Service B) Set Up * Chọn custom 40 * Lựa chọn thư mục để cài đặt * Lựa chọn thư mục lưu trữ 41 * Install MongoDB Compass * Finish 42 * Thiết Lập biến môi trường * Đổi PATH 4.6 Các thao tác MongoDB Compass * kết nối vào MongoDB * Create Database (Restaurants-DB) với Collection (Restaurants) 43 * Import liệu files Restaurant.json * Show liệu Restaurants 44 * Một số câu lệnh - Write a MongoDB query to display the fields restaurant_id, name, borough and cuisine, but exclude the field _id for all the documents in the collection restaurant - Write a MongoDB query to display all the restaurant which is in the borough Bronx 45 - Write a MongoDB query to find the restaurants that achieved a score, more than 80 but less than 100 4.7 Các Thao tác Command Line A) Khởi động MongoDB với Command Line B) Chạy cổng mặc định mongoDB command line : 46 C) Các thao tác * Liệt kê database có : * Sử dụng database Restaurants-DB : * Xem collection database : * Các lệnh trợ giúp : 47 * Chèn đối tượng vào database * Đọc(tìm kiếm ) database : * Cập nhật database : * Xóa liệu : 4.8 Kết nối MongoDB với Java A) Chuẩn bị Driver 48 B) Kết nối đến server đơn (SYNC) * Tạo Database (SYNC) với Collection(lophoc) * Code java kết nối 49 * Kết nối thành công, xuất phần tử database : Các thao tác CRUD * Create : 50 * Read Read : * Update * Delete NULL database khơng có malop 1a 51 C) Kết nối với ASYNC DRIVER Kết chạy thử database Restaurants-DB : 52 Các thao tác CRUD * Create * Read - Điếm số count collection - Tìm theo tiêu chí 53 - Sắp xếp * Update * Delete 54 ... YARN (Trình quản lý tài nguyên) - Là trình quản lý tài ngun (có từ Hadoop 2.0) - Chịu trách nhiệm quản lý tài nguyên công việc - Bao gồm thành phần: +Resource Manager: Quản lý tài nguyên, gọi... lưu trữ data lớn - Gồm phần: 1) Namenode: + Là thành phần trung tâm HDFS +Lưu meta data +Chịu trách nhiệm giám sát Slave node giao nhiệm vụ tới Data node 2) Datanode: +Lưu data vào Slave +Báo sức... * Liệt kê database có : * Sử dụng database Restaurants-DB : * Xem collection database : * Các lệnh trợ giúp : 47 * Chèn đối tượng vào database * Đọc(tìm kiếm ) database : * Cập nhật database :