SlideShare a Scribd company logo
1 of 52
Download to read offline
Giảng viên: TS. Nguyễn Văn Quyết
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 1/52
KHAI PHÁ DỮ LIỆU LỚN VỚI APACHE SPARK
Tổng quan về Học máy
Học máy cho xử lý dữ liệu lớn với Spark
Các thao tác trong xử lý dữ liệu lớn với Spark
Thực hành xử lý dữ liệu lớn với Spark
Hỏi & đáp
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 2/52
Nội dung
1. Tổng quan về học máy
Học máy (Machine Learning) là một lĩnh vực của trí tuệ
nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ
thuật cho phép các hệ thống "học" tự động từ dữ liệu để
giải quyết những vấn đề cụ thể.
Ví dụ: phân loại thư điện tử xem có phải thư rác (spam) hay không
và tự động xếp thư vào thư mục tương ứng.
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 3/52
Học máy là gì?
1. Tổng quan về học máy
• Supervised Learning
• Phân lớp/Hồi quy
Học có giám sát
• Unsupervised Learning
• Phân cụm
Học không giám sát
• Semi-supervised Learning
Học bán giám sát
• Reinforcement Learning
Học tăng cường
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 4/52
Phân loại học máy
1. Tổng quan về học máy
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 5/52
Phân loại học máy
1. Tổng quan về học máy
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 6/52
Phân loại học máy
1. Tổng quan về học máy
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 7/52
Phân loại học máy
1. Tổng quan về học máy
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 8/52
Các ứng dụng của học máy
Khai phá dữ liệu
Phát hiện bất thường trong chứng khoán, giao dịch ngân hàng
Phát hiện các quy luật: tìm quy luật về việc mua hàng hóa
Gom nhóm: nhóm khách hàngvào độ tuổi, kinh tế
Dự đoán: giá cổ phiếu, giá nhà
Trích xuất thông tin từ văn bản
Lọc spam: mail spam hay không spam,..
Khai phá thông tin: Trích xuất các từ khóa, tên, địa chỉ,…
Phân tích ngữ nghĩa: tiêu cực hay tích cực,…
Xử lý hình ảnh/âm thanh/video
Gắn thẻ hình ảnh: Facebook
Nhận diện chữ viết tay
Xe tự hành: phát hiện mép đường, vật cản, biển báo
1. Tổng quan về học máy
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 9/52
Các ứng dụng của học máy
1. Tổng quan về học máy
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 10/52
Một số thuật toán học máy
Tổng quan về Học máy
Học máy cho xử lý dữ liệu lớn với Spark
Một số thuật toán học máy trong Spark MLLib
Thực hành phân tích dữ liệu lớn với Spark MLLib
Hỏi & đáp
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 11/52
Nội dung
2. Học máy cho xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 12/52
Giới thiệu về Apache Spark
Là một engine xử lý dữ liệu lớn dựa vào bộ nhớ phân tán
(distributed memory based).
Khởi điểm nghiên cứu từ Berkeley AMPLab vào năm 2009.
Là opensource, viết bằng Scala và chạy trên JVM.
Dựa trên mô hình lập trình Map-Reduce.
Khắc phục nhược điểm của Hadoop MapReduce.
Khoa Công nghệ Thông tin - UTEHY 09-10-2022 13/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Giới thiệu về Apache Spark
Nguyễn Văn Quyết
Các đặc tính khác của Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 14/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Giới thiệu về Apache Spark
Tính năng ưu việt của
Spark là tốc độ xử lý nhanh
So với Hadoop, Spark
Application chạy trên bộ nhớ
nhanh hơn tới 100 lần và
nhanh hơn 10 lần khi chạy
trên đĩa. Điều này có được
nhờ giảm số lượng các hoạt
động đọc / ghi vào ổ đĩa.
2. Học máy cho xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 15/52
Giới thiệu về Apache Spark
Hỗ trợ nhiều loại ngôn ngữ lập trình:
Scala (native)
Python
Java
R
Hỗ trợ nhiều loại workload trong 1 engine:
Batch Processing (Spark Core, Spark SQL)
Machine Learning (MLlib)
Streaming (Spark Streaming)
Graph (GraphX)
Querying Structured Data (Spark SQL)
Là 1 trong các thành
phần trong bộ thư viện
Apache Spark
Hỗ trợ thao tác trên dữ
liệu sử dụng SQL
Cung cấp API hoặc có
thể query trực tiếp dữ
liệu thông qua SQL
Query
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 16/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark SQL (1/5)
2. Học máy cho xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 17/52
Spark SQL (2/5)
Được xây dựng phía trên tầng Spark Core, thừa hưởng tất cả
các tính năng mà RDD có.
Làm việc với tập dữ liệu là DataSet hoặc DataFrame (tập dữ liệu
phân tán, có cấu trúc)
Hiệu năng cao, khả năng mở rộng và chịu lỗi tốt
Tương tích với các thành phần khác trong tổng thể Spark
Framework (như Streaming/ Mllib, GraphX)
Bao gồm 2 thành phần là DataSet API và Catalyst Optimizer.
Kiến trúc của Spark SQL
Dataframe APIs: Các APIs hỗ trợ
tương tác với Dataframe (tập dữ
liệu có cấu trúc, phân tán) như
select, đọc, ghi, lọc…
Catalyst Optimizer: Tối ưu hóa
các bước xử lý trước khi tạo task
tính toán
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 18/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark SQL (3/5)
2. Học máy cho xử lý dữ liệu lớn với Spark
Kiến trúc của Spark SQL (tiếp) - DataFrame
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 19/52
Spark SQL (4/5)
2. Học máy cho xử lý dữ liệu lớn với Spark
Kiến trúc của Spark SQL (tiếp) – Catalyst Optimizer
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 20/52
Spark SQL (5/5)
Spark Streaming được
thêm vào Apache Spark
vào năm 2013.
Là một phần mở rộng
của Spark API cung cấp
khả năng xử lý luồng có
thể mở rộng, thông
lượng cao và khả năng
chịu lỗi của các luồng dữ
liệu trực tiếp.
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 21/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark Streaming (1/3)
Quá trình thu thập dữ liệu
có thể được thực hiện từ
nhiều nguồn như Kafka,
Apache Flume, Amazon
Kinesis hoặc TCP socket.
Quá trình xử lý có thể
được thực hiện bằng cách
sử dụng các thuật toán
phức tạp với các hàm map,
reduce, nối và cửa sổ.
Dữ liệu đã xử lý có thể
được đẩy ra hệ thống tệp,
cơ sở dữ liệu và hiển thị
trực tiếp trên dashboard.
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 22/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark Streaming (2/3)
Coi dữ liệu stream như là
1 bảng không giới hạn
(Unbounded Table)
Dữ liệu bên trong vẫn là
DataFrame.
Có thể sử dụng Spark
SQL APIs với dữ liệu
Stream tương tự như dữ
liệu tĩnh.
Phiên bản hiện tại đã hỗ
trợ cả mô hình event-at-a-
time và micro-batching
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 23/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark Streaming (3/3)
MLlib là thư viện học
máy (ML – machine
learning) của Spark.
Mục tiêu của nó là làm
cho việc học máy có thể
mở rộng và dễ dàng.
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 24/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark MLlib (1/3)
Một số hỗ trợ chính của
MLLib
Thuật toán học máy: phân
lớp, hồi quy, phân cụm, và
lọc cộng tác
Làm việc với đặc trưng
của dữ liệu: trích chọn đặc
trưng, biến đổi, giảm
chiều dữ liệu.
Tiện ích: đại số tuyến tính,
thống kê, khai phá dữ
liệu,...
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 25/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark MLlib (2/3)
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 26/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark MLlib (3/3)
GraphX là một thành phần
mới trong Spark dung để
xử lý song song dữ liệu đồ
thị.
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 27/52
2. Học máy cho xử lý dữ liệu lớn với Spark
Spark GraphX (1/2)
2. Học máy cho xử lý dữ liệu lớn với Spark
Hỗ trợ xử lý tốt cho đồ thì thuộc tính (Property Graph)
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 28/52
Spark GraphX (2/2)
Tổng quan về Học máy
Học máy cho xử lý dữ liệu lớn với Spark
Các thao tác trong xử lý dữ liệu lớn với Spark
Thực hành xử lý dữ liệu lớn với Spark
Hỏi & đáp
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 29/52
Nội dung
3. Các thao tác trong xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 30/52
RDD – Cấu trúc dữ liệu cơ bản của Spark
Resilient Distributed Datasets (RDD) là một cấu trúc dữ liệu cơ
bản của Spark. Nó là một tập hợp bất biến phân tán của một đối
tượng.
Mỗi dataset trong RDD được chia ra thành nhiều phân vùng
logical. Có thể được tính toán trên các node khác nhau của một
cụm máy chủ (cluster).
3. Các thao tác trong xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 31/52
RDD – Cấu trúc dữ liệu cơ bản của Spark
RDDs có thể chứa bất kỳ kiểu dữ liệu nào của Python, Java, hoặc đối
tượng Scala, bao gồm các kiểu dữ liệu do người dùng định nghĩa.
RDD chỉ cho phép đọc, phân mục tập hợp của các bản ghi
RDDs có thể được tạo ra qua điều khiển xác định trên dữ liệu trong bộ
nhớ hoặc RDDs
RDD là một tập hợp có khả năng chịu lỗi, mỗi thành phần có thể được
tính toán song song.
3. Các thao tác trong xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 32/52
Thao tác với RDD trong Spark
RDD cung cấp các transformation và action hoạt động
giống như DataFrame.
Transformation xử lý các thao tác lazy
Action xử lý thao tác cần xử lý tức thời.
3. Các thao tác trong xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 33/52
Thao tác với RDD trong Spark
Một số hàm Transformation
distinct: loại bỏ trùng lắp trong RDD
filter: tương đương với việc sử dụng where trong SQL – tìm các
record trong RDD xem những phần tử nào thỏa điều kiện.
map: thực hiện một công việc nào đó trên toàn bộ RDD
flatMap: cung cấp một hàm đơn giản hơn hàm map. Yêu cầu output
của map phải là một structure có thể lặp và mở rộng được.
sortBy: mô tả một hàm để trích xuất dữ liệu từ các object của RDD
và thực hiện sort được từ đó.
randomSplit: nhận một mảng trọng số và tạo một random seed, tách
các RDD thành một mảng các RDD có số lượng chia theo trọng số
3. Các thao tác trong xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 34/52
Thao tác với RDD trong Spark
Một số hàm Transformation
3. Các thao tác trong xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 35/52
Thao tác với RDD trong Spark
Một số hàm Transformation
3. Các thao tác trong xử lý dữ liệu lớn với Spark
Một số hàm Action
reduce: thực hiện hàm reduce trên RDD để thu về 1 giá trị
duy nhất
count: đếm số dòng trong RDD
countByValue: đếm số giá trị của RDD
first: lấy giá trị đầu tiên của dataset
max và min: lần lượt lấy giá trị lớn nhất và nhỏ nhất của
dataset
…
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 36/52
Thao tác với RDD trong Spark
Tổng quan về Học máy
Học máy cho xử lý dữ liệu lớn với Spark
Các thao tác trong xử lý dữ liệu lớn với Spark
Thực hành xử lý dữ liệu lớn với Spark
Hỏi & đáp
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 37/52
Nội dung
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 1: Download Scala
$ cd /usr/local
$ sudo wget https://www.scala-lang.org/files/archive/scala-2.12.15.tgz
Bước 2: Cài đặt Scala
$ sudo tar xvf scala-2.12.15.tgz # giải nén
$ sudo mv scala-2.12.15 scala # đổi tên thư mục thành scala
$ sudo chown -R hduser:hadoop /usr/local/scala # cấp quyền truy cập
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 38/52
Cài đặt Scala
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 3: Thiết lập biến môi trường trong tệp .bashrc
$ sudo gedit /home/hduser/.bashrc # mở tệp để sửa
Bổ sung các biến môi trường sau vào tệp
export SCALA_HOME="/usr/local/scala"
export PATH=$PATH:$SCALA_HOME/bin
Áp dụng
$ source /home/hduser/.bashrc
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 39/52
Cài đặt Scala
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 1: Download Spark
$ cd /usr/local
$ sudo wget https://archive.apache.org/dist/spark/spark-3.2.0/spark-3.2.0-bin-
hadoop3.2.tgz
Bước 2: Cài đặt Spark
$ sudo tar xvf spark-3.2.0-bin-hadoop3.2.tgz # giải nén
$ sudo mv spark-3.2.0-bin-hadoop3.2 spark # đổi tên thư mục thành spark
$ sudo chown -R hduser:hadoop /usr/local/spark # cấp quyền truy cập
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 40/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 3: Thiết lập biến môi trường trong tệp .bashrc
$ sudo gedit /home/hduser/.bashrc # mở tệp để sửa
Bổ sung các biến môi trường sau vào tệp
export SPARK_HOME="/usr/local/spark"
export PATH=$PATH:$SPARK_HOME/bin
Áp dụng
$ source /home/hduser/.bashrc
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 41/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 4: Cấu hình biến môi trường trong tệp spark-env.sh
$ cd /usr/local/spark
hduser@master:/usr/local/spark$ cp conf/spark-env.sh.template conf/spark-
env.sh
hduser@master:/usr/local/spark$ sudo gedit conf/spark-env.sh
Mở tệp spark-env.sh
$ sudo gedit spark-env.sh
Thêm cấu hình sau vào tệp
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export SCALA_HOME=/usr/local/scala
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 42/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 5: Cấu hình các tham số trong tệp spark-defaults.conf
hduser@master:/usr/local/spark$ cp conf/spark-defaults.conf.template
conf/spark-defaults.conf
hduser@master:/usr/local/spark$ sudo gedit conf/spark-defaults.conf
Mở tệp spark-defaults.conf
$ sudo gedit spark-defaults.conf
Thêm cấu hình sau vào tệp
spark.master spark://master:7077
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master:9000/spark-logs
spark.history.fs.logDirectory hdfs://master:9000/spark-events
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.driver.memory 1g
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 43/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 6: Tạo tệp Logs
hduser@master:/usr/local/spark$ cp conf/log4j.properties.template
conf/log4j.properties
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 44/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 7: Khai báo các máy Slave
hduser@master:/usr/local/spark$ sudo gedit conf/slaves
Khai báo vào tệp
slave01
slave02
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 45/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 8: Sao chép Spark, Scala, và tệp .bashrc từ master
đến các máy slave
Truy cập đến các máy slave và tạo thư mục spark, scala
$ ssh slave01
$ sudo mkdir /usr/local/spark
$ sudo chown -R hduser:hadoop /usr/local/spark
$ sudo mkdir /usr/local/scala
$ sudo chown -R hduser:hadoop /usr/local/scala
$ exit
// Từ máy master thực hiện copy
hduser@master:~$ scp -r /usr/local/spark/* hduser@slave01:/usr/local/spark/
hduser@master:~$ scp -r /usr/local/scala/* hduser@slave01:/usr/local/scala/
hduser@master:~$ scp -r /home/hduser/.bashrc hduser@slave01:/home/hduser/
// Làm tương tự cho máy slave02
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 46/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 9: Tạo 2 thư mục trên hdfs để lưu trữ logs cho
spark
spark-logs
spark-events
Bước 10: Chạy spark
Khởi chạy Hadoop trước khi chạy Spark
Trên máy master gõ:
$ cd /usr/local/spark
$ sbin/start-all.sh
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 47/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 11: Kiểm tra các dịch vụ chạy ngầm của Spark
Trên máy master
Trên các máy slave
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 48/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Bước 12: Kiểm tra giao diện quản lý Spark Jobs
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 49/52
Cài đặt Apache Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Trên máy master:
hduser@master:/usr/local/spark$ ./bin/spark-submit --class
org.apache.spark.examples.SparkPi --master spark://master:7077
examples/jars/spark-examples_2.12-3.2.0.jar 2
Kiểm tra Spark Job trên giao diện
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 50/52
Chạy thử nghiệm chương trình Spark
4. Thực hành xử lý dữ liệu lớn với Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 51/52
Chạy thử nghiệm chương trình Spark
Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 52/52
Trân trọng cảm ơn!
Q&A

More Related Content

Similar to Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf

Ứng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.doc
Ứng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.docỨng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.doc
Ứng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.docDịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1pisu412
 
hệ thống thông tin đa phương tiện trên đám mây .pptx
hệ thống thông tin đa phương tiện trên đám mây .pptxhệ thống thông tin đa phương tiện trên đám mây .pptx
hệ thống thông tin đa phương tiện trên đám mây .pptxthienphuctd1
 
2 introduction to oop
2 introduction to oop2 introduction to oop
2 introduction to oopHThu104
 
Đăng ký khóa học Spark and Hadoop.doc
Đăng ký khóa học Spark and Hadoop.docĐăng ký khóa học Spark and Hadoop.doc
Đăng ký khóa học Spark and Hadoop.dochainguyenle89
 
đHspkt.giáo trình mạng doanh nghiệp vũ khánh quý[bookbooming.com]
đHspkt.giáo trình mạng doanh nghiệp   vũ khánh quý[bookbooming.com]đHspkt.giáo trình mạng doanh nghiệp   vũ khánh quý[bookbooming.com]
đHspkt.giáo trình mạng doanh nghiệp vũ khánh quý[bookbooming.com]bookbooming1
 
xây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directory
xây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directoryxây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directory
xây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directoryTran Minh Tuan
 
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...Ý Như Lê
 
Du an-vien-khoa-hoc-thanh-tra
Du an-vien-khoa-hoc-thanh-traDu an-vien-khoa-hoc-thanh-tra
Du an-vien-khoa-hoc-thanh-tra3c telecom
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oraclehoangdinhhanh88
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netnataliej4
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngVượng Đặng
 
Bắt đầu nghiên cứu Big Data
Bắt đầu nghiên cứu Big DataBắt đầu nghiên cứu Big Data
Bắt đầu nghiên cứu Big DataHong Ong
 
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...Viet-Trung TRAN
 
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng PythonBeezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng PythonBeezo
 

Similar to Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf (20)

Ứng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.doc
Ứng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.docỨng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.doc
Ứng Dụng Mô Hình Mapreduce Xây Dựng Hệ Thống Đánh Giá Độ Tƣơng Đồng Văn Bản.doc
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
 
Đề tài Quản lý tiền điện
Đề tài Quản lý tiền điệnĐề tài Quản lý tiền điện
Đề tài Quản lý tiền điện
 
hệ thống thông tin đa phương tiện trên đám mây .pptx
hệ thống thông tin đa phương tiện trên đám mây .pptxhệ thống thông tin đa phương tiện trên đám mây .pptx
hệ thống thông tin đa phương tiện trên đám mây .pptx
 
2 introduction to oop
2 introduction to oop2 introduction to oop
2 introduction to oop
 
Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu
Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus RtuLuận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu
Luận văn: Xây dựng mạng truyền thông công nghiệp Modbus Rtu
 
Đăng ký khóa học Spark and Hadoop.doc
Đăng ký khóa học Spark and Hadoop.docĐăng ký khóa học Spark and Hadoop.doc
Đăng ký khóa học Spark and Hadoop.doc
 
đHspkt.giáo trình mạng doanh nghiệp vũ khánh quý[bookbooming.com]
đHspkt.giáo trình mạng doanh nghiệp   vũ khánh quý[bookbooming.com]đHspkt.giáo trình mạng doanh nghiệp   vũ khánh quý[bookbooming.com]
đHspkt.giáo trình mạng doanh nghiệp vũ khánh quý[bookbooming.com]
 
Long week03-review
Long week03-reviewLong week03-review
Long week03-review
 
xây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directory
xây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directoryxây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directory
xây dựng và quản trị hệ thống mạng doanh nghiệp với microsoft active directory
 
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập  và quản lý ...
[Đồ án môn học] - Đề tài: Nghiên cứu xây dựng giải pháp thu thập và quản lý ...
 
Du an-vien-khoa-hoc-thanh-tra
Du an-vien-khoa-hoc-thanh-traDu an-vien-khoa-hoc-thanh-tra
Du an-vien-khoa-hoc-thanh-tra
 
Trongtruong so27a 09
Trongtruong so27a 09Trongtruong so27a 09
Trongtruong so27a 09
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.net
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụng
 
Bắt đầu nghiên cứu Big Data
Bắt đầu nghiên cứu Big DataBắt đầu nghiên cứu Big Data
Bắt đầu nghiên cứu Big Data
 
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...
 
Dsd02 sta
Dsd02 staDsd02 sta
Dsd02 sta
 
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng PythonBeezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
 

Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf

  • 1. Giảng viên: TS. Nguyễn Văn Quyết Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 1/52 KHAI PHÁ DỮ LIỆU LỚN VỚI APACHE SPARK
  • 2. Tổng quan về Học máy Học máy cho xử lý dữ liệu lớn với Spark Các thao tác trong xử lý dữ liệu lớn với Spark Thực hành xử lý dữ liệu lớn với Spark Hỏi & đáp Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 2/52 Nội dung
  • 3. 1. Tổng quan về học máy Học máy (Machine Learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ: phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tương ứng. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 3/52 Học máy là gì?
  • 4. 1. Tổng quan về học máy • Supervised Learning • Phân lớp/Hồi quy Học có giám sát • Unsupervised Learning • Phân cụm Học không giám sát • Semi-supervised Learning Học bán giám sát • Reinforcement Learning Học tăng cường Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 4/52 Phân loại học máy
  • 5. 1. Tổng quan về học máy Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 5/52 Phân loại học máy
  • 6. 1. Tổng quan về học máy Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 6/52 Phân loại học máy
  • 7. 1. Tổng quan về học máy Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 7/52 Phân loại học máy
  • 8. 1. Tổng quan về học máy Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 8/52 Các ứng dụng của học máy Khai phá dữ liệu Phát hiện bất thường trong chứng khoán, giao dịch ngân hàng Phát hiện các quy luật: tìm quy luật về việc mua hàng hóa Gom nhóm: nhóm khách hàngvào độ tuổi, kinh tế Dự đoán: giá cổ phiếu, giá nhà Trích xuất thông tin từ văn bản Lọc spam: mail spam hay không spam,.. Khai phá thông tin: Trích xuất các từ khóa, tên, địa chỉ,… Phân tích ngữ nghĩa: tiêu cực hay tích cực,… Xử lý hình ảnh/âm thanh/video Gắn thẻ hình ảnh: Facebook Nhận diện chữ viết tay Xe tự hành: phát hiện mép đường, vật cản, biển báo
  • 9. 1. Tổng quan về học máy Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 9/52 Các ứng dụng của học máy
  • 10. 1. Tổng quan về học máy Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 10/52 Một số thuật toán học máy
  • 11. Tổng quan về Học máy Học máy cho xử lý dữ liệu lớn với Spark Một số thuật toán học máy trong Spark MLLib Thực hành phân tích dữ liệu lớn với Spark MLLib Hỏi & đáp Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 11/52 Nội dung
  • 12. 2. Học máy cho xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 12/52 Giới thiệu về Apache Spark Là một engine xử lý dữ liệu lớn dựa vào bộ nhớ phân tán (distributed memory based). Khởi điểm nghiên cứu từ Berkeley AMPLab vào năm 2009. Là opensource, viết bằng Scala và chạy trên JVM. Dựa trên mô hình lập trình Map-Reduce. Khắc phục nhược điểm của Hadoop MapReduce.
  • 13. Khoa Công nghệ Thông tin - UTEHY 09-10-2022 13/52 2. Học máy cho xử lý dữ liệu lớn với Spark Giới thiệu về Apache Spark Nguyễn Văn Quyết Các đặc tính khác của Spark
  • 14. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 14/52 2. Học máy cho xử lý dữ liệu lớn với Spark Giới thiệu về Apache Spark Tính năng ưu việt của Spark là tốc độ xử lý nhanh So với Hadoop, Spark Application chạy trên bộ nhớ nhanh hơn tới 100 lần và nhanh hơn 10 lần khi chạy trên đĩa. Điều này có được nhờ giảm số lượng các hoạt động đọc / ghi vào ổ đĩa.
  • 15. 2. Học máy cho xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 15/52 Giới thiệu về Apache Spark Hỗ trợ nhiều loại ngôn ngữ lập trình: Scala (native) Python Java R Hỗ trợ nhiều loại workload trong 1 engine: Batch Processing (Spark Core, Spark SQL) Machine Learning (MLlib) Streaming (Spark Streaming) Graph (GraphX) Querying Structured Data (Spark SQL)
  • 16. Là 1 trong các thành phần trong bộ thư viện Apache Spark Hỗ trợ thao tác trên dữ liệu sử dụng SQL Cung cấp API hoặc có thể query trực tiếp dữ liệu thông qua SQL Query Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 16/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark SQL (1/5)
  • 17. 2. Học máy cho xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 17/52 Spark SQL (2/5) Được xây dựng phía trên tầng Spark Core, thừa hưởng tất cả các tính năng mà RDD có. Làm việc với tập dữ liệu là DataSet hoặc DataFrame (tập dữ liệu phân tán, có cấu trúc) Hiệu năng cao, khả năng mở rộng và chịu lỗi tốt Tương tích với các thành phần khác trong tổng thể Spark Framework (như Streaming/ Mllib, GraphX) Bao gồm 2 thành phần là DataSet API và Catalyst Optimizer.
  • 18. Kiến trúc của Spark SQL Dataframe APIs: Các APIs hỗ trợ tương tác với Dataframe (tập dữ liệu có cấu trúc, phân tán) như select, đọc, ghi, lọc… Catalyst Optimizer: Tối ưu hóa các bước xử lý trước khi tạo task tính toán Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 18/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark SQL (3/5)
  • 19. 2. Học máy cho xử lý dữ liệu lớn với Spark Kiến trúc của Spark SQL (tiếp) - DataFrame Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 19/52 Spark SQL (4/5)
  • 20. 2. Học máy cho xử lý dữ liệu lớn với Spark Kiến trúc của Spark SQL (tiếp) – Catalyst Optimizer Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 20/52 Spark SQL (5/5)
  • 21. Spark Streaming được thêm vào Apache Spark vào năm 2013. Là một phần mở rộng của Spark API cung cấp khả năng xử lý luồng có thể mở rộng, thông lượng cao và khả năng chịu lỗi của các luồng dữ liệu trực tiếp. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 21/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark Streaming (1/3)
  • 22. Quá trình thu thập dữ liệu có thể được thực hiện từ nhiều nguồn như Kafka, Apache Flume, Amazon Kinesis hoặc TCP socket. Quá trình xử lý có thể được thực hiện bằng cách sử dụng các thuật toán phức tạp với các hàm map, reduce, nối và cửa sổ. Dữ liệu đã xử lý có thể được đẩy ra hệ thống tệp, cơ sở dữ liệu và hiển thị trực tiếp trên dashboard. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 22/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark Streaming (2/3)
  • 23. Coi dữ liệu stream như là 1 bảng không giới hạn (Unbounded Table) Dữ liệu bên trong vẫn là DataFrame. Có thể sử dụng Spark SQL APIs với dữ liệu Stream tương tự như dữ liệu tĩnh. Phiên bản hiện tại đã hỗ trợ cả mô hình event-at-a- time và micro-batching Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 23/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark Streaming (3/3)
  • 24. MLlib là thư viện học máy (ML – machine learning) của Spark. Mục tiêu của nó là làm cho việc học máy có thể mở rộng và dễ dàng. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 24/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark MLlib (1/3)
  • 25. Một số hỗ trợ chính của MLLib Thuật toán học máy: phân lớp, hồi quy, phân cụm, và lọc cộng tác Làm việc với đặc trưng của dữ liệu: trích chọn đặc trưng, biến đổi, giảm chiều dữ liệu. Tiện ích: đại số tuyến tính, thống kê, khai phá dữ liệu,... Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 25/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark MLlib (2/3)
  • 26. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 26/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark MLlib (3/3)
  • 27. GraphX là một thành phần mới trong Spark dung để xử lý song song dữ liệu đồ thị. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 27/52 2. Học máy cho xử lý dữ liệu lớn với Spark Spark GraphX (1/2)
  • 28. 2. Học máy cho xử lý dữ liệu lớn với Spark Hỗ trợ xử lý tốt cho đồ thì thuộc tính (Property Graph) Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 28/52 Spark GraphX (2/2)
  • 29. Tổng quan về Học máy Học máy cho xử lý dữ liệu lớn với Spark Các thao tác trong xử lý dữ liệu lớn với Spark Thực hành xử lý dữ liệu lớn với Spark Hỏi & đáp Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 29/52 Nội dung
  • 30. 3. Các thao tác trong xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 30/52 RDD – Cấu trúc dữ liệu cơ bản của Spark Resilient Distributed Datasets (RDD) là một cấu trúc dữ liệu cơ bản của Spark. Nó là một tập hợp bất biến phân tán của một đối tượng. Mỗi dataset trong RDD được chia ra thành nhiều phân vùng logical. Có thể được tính toán trên các node khác nhau của một cụm máy chủ (cluster).
  • 31. 3. Các thao tác trong xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 31/52 RDD – Cấu trúc dữ liệu cơ bản của Spark RDDs có thể chứa bất kỳ kiểu dữ liệu nào của Python, Java, hoặc đối tượng Scala, bao gồm các kiểu dữ liệu do người dùng định nghĩa. RDD chỉ cho phép đọc, phân mục tập hợp của các bản ghi RDDs có thể được tạo ra qua điều khiển xác định trên dữ liệu trong bộ nhớ hoặc RDDs RDD là một tập hợp có khả năng chịu lỗi, mỗi thành phần có thể được tính toán song song.
  • 32. 3. Các thao tác trong xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 32/52 Thao tác với RDD trong Spark RDD cung cấp các transformation và action hoạt động giống như DataFrame. Transformation xử lý các thao tác lazy Action xử lý thao tác cần xử lý tức thời.
  • 33. 3. Các thao tác trong xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 33/52 Thao tác với RDD trong Spark Một số hàm Transformation distinct: loại bỏ trùng lắp trong RDD filter: tương đương với việc sử dụng where trong SQL – tìm các record trong RDD xem những phần tử nào thỏa điều kiện. map: thực hiện một công việc nào đó trên toàn bộ RDD flatMap: cung cấp một hàm đơn giản hơn hàm map. Yêu cầu output của map phải là một structure có thể lặp và mở rộng được. sortBy: mô tả một hàm để trích xuất dữ liệu từ các object của RDD và thực hiện sort được từ đó. randomSplit: nhận một mảng trọng số và tạo một random seed, tách các RDD thành một mảng các RDD có số lượng chia theo trọng số
  • 34. 3. Các thao tác trong xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 34/52 Thao tác với RDD trong Spark Một số hàm Transformation
  • 35. 3. Các thao tác trong xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 35/52 Thao tác với RDD trong Spark Một số hàm Transformation
  • 36. 3. Các thao tác trong xử lý dữ liệu lớn với Spark Một số hàm Action reduce: thực hiện hàm reduce trên RDD để thu về 1 giá trị duy nhất count: đếm số dòng trong RDD countByValue: đếm số giá trị của RDD first: lấy giá trị đầu tiên của dataset max và min: lần lượt lấy giá trị lớn nhất và nhỏ nhất của dataset … Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 36/52 Thao tác với RDD trong Spark
  • 37. Tổng quan về Học máy Học máy cho xử lý dữ liệu lớn với Spark Các thao tác trong xử lý dữ liệu lớn với Spark Thực hành xử lý dữ liệu lớn với Spark Hỏi & đáp Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 37/52 Nội dung
  • 38. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 1: Download Scala $ cd /usr/local $ sudo wget https://www.scala-lang.org/files/archive/scala-2.12.15.tgz Bước 2: Cài đặt Scala $ sudo tar xvf scala-2.12.15.tgz # giải nén $ sudo mv scala-2.12.15 scala # đổi tên thư mục thành scala $ sudo chown -R hduser:hadoop /usr/local/scala # cấp quyền truy cập Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 38/52 Cài đặt Scala
  • 39. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 3: Thiết lập biến môi trường trong tệp .bashrc $ sudo gedit /home/hduser/.bashrc # mở tệp để sửa Bổ sung các biến môi trường sau vào tệp export SCALA_HOME="/usr/local/scala" export PATH=$PATH:$SCALA_HOME/bin Áp dụng $ source /home/hduser/.bashrc Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 39/52 Cài đặt Scala
  • 40. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 1: Download Spark $ cd /usr/local $ sudo wget https://archive.apache.org/dist/spark/spark-3.2.0/spark-3.2.0-bin- hadoop3.2.tgz Bước 2: Cài đặt Spark $ sudo tar xvf spark-3.2.0-bin-hadoop3.2.tgz # giải nén $ sudo mv spark-3.2.0-bin-hadoop3.2 spark # đổi tên thư mục thành spark $ sudo chown -R hduser:hadoop /usr/local/spark # cấp quyền truy cập Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 40/52 Cài đặt Apache Spark
  • 41. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 3: Thiết lập biến môi trường trong tệp .bashrc $ sudo gedit /home/hduser/.bashrc # mở tệp để sửa Bổ sung các biến môi trường sau vào tệp export SPARK_HOME="/usr/local/spark" export PATH=$PATH:$SPARK_HOME/bin Áp dụng $ source /home/hduser/.bashrc Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 41/52 Cài đặt Apache Spark
  • 42. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 4: Cấu hình biến môi trường trong tệp spark-env.sh $ cd /usr/local/spark hduser@master:/usr/local/spark$ cp conf/spark-env.sh.template conf/spark- env.sh hduser@master:/usr/local/spark$ sudo gedit conf/spark-env.sh Mở tệp spark-env.sh $ sudo gedit spark-env.sh Thêm cấu hình sau vào tệp export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export SCALA_HOME=/usr/local/scala export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 42/52 Cài đặt Apache Spark
  • 43. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 5: Cấu hình các tham số trong tệp spark-defaults.conf hduser@master:/usr/local/spark$ cp conf/spark-defaults.conf.template conf/spark-defaults.conf hduser@master:/usr/local/spark$ sudo gedit conf/spark-defaults.conf Mở tệp spark-defaults.conf $ sudo gedit spark-defaults.conf Thêm cấu hình sau vào tệp spark.master spark://master:7077 spark.eventLog.enabled true spark.eventLog.dir hdfs://master:9000/spark-logs spark.history.fs.logDirectory hdfs://master:9000/spark-events spark.serializer org.apache.spark.serializer.KryoSerializer spark.driver.memory 1g Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 43/52 Cài đặt Apache Spark
  • 44. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 6: Tạo tệp Logs hduser@master:/usr/local/spark$ cp conf/log4j.properties.template conf/log4j.properties Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 44/52 Cài đặt Apache Spark
  • 45. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 7: Khai báo các máy Slave hduser@master:/usr/local/spark$ sudo gedit conf/slaves Khai báo vào tệp slave01 slave02 Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 45/52 Cài đặt Apache Spark
  • 46. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 8: Sao chép Spark, Scala, và tệp .bashrc từ master đến các máy slave Truy cập đến các máy slave và tạo thư mục spark, scala $ ssh slave01 $ sudo mkdir /usr/local/spark $ sudo chown -R hduser:hadoop /usr/local/spark $ sudo mkdir /usr/local/scala $ sudo chown -R hduser:hadoop /usr/local/scala $ exit // Từ máy master thực hiện copy hduser@master:~$ scp -r /usr/local/spark/* hduser@slave01:/usr/local/spark/ hduser@master:~$ scp -r /usr/local/scala/* hduser@slave01:/usr/local/scala/ hduser@master:~$ scp -r /home/hduser/.bashrc hduser@slave01:/home/hduser/ // Làm tương tự cho máy slave02 Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 46/52 Cài đặt Apache Spark
  • 47. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 9: Tạo 2 thư mục trên hdfs để lưu trữ logs cho spark spark-logs spark-events Bước 10: Chạy spark Khởi chạy Hadoop trước khi chạy Spark Trên máy master gõ: $ cd /usr/local/spark $ sbin/start-all.sh Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 47/52 Cài đặt Apache Spark
  • 48. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 11: Kiểm tra các dịch vụ chạy ngầm của Spark Trên máy master Trên các máy slave Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 48/52 Cài đặt Apache Spark
  • 49. 4. Thực hành xử lý dữ liệu lớn với Spark Bước 12: Kiểm tra giao diện quản lý Spark Jobs Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 49/52 Cài đặt Apache Spark
  • 50. 4. Thực hành xử lý dữ liệu lớn với Spark Trên máy master: hduser@master:/usr/local/spark$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 examples/jars/spark-examples_2.12-3.2.0.jar 2 Kiểm tra Spark Job trên giao diện Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 50/52 Chạy thử nghiệm chương trình Spark
  • 51. 4. Thực hành xử lý dữ liệu lớn với Spark Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 51/52 Chạy thử nghiệm chương trình Spark
  • 52. Nguyễn Văn Quyết Khoa Công nghệ Thông tin - UTEHY 09-10-2022 52/52 Trân trọng cảm ơn! Q&A