SlideShare une entreprise Scribd logo
1  sur  46
Giảng viên: TS. Nguyễn Văn Quyết
XỬ LÝ DỮ LIỆU LỚN VỚI MAPREDUCE
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 1/46
Giới thiệu chung về MapReduce
Nguyên lý hoạt động của MapReduce
Chức năng của các thành phần trong MapReduce
Thực hành lập trình với MapReduce
Hỏi & đáp
Nội dung
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 2/46
1. Giới thiệu chung về MapReduce
Xử lý lượng lớn dữ liệu
Google xử lý khoảng 24PB dữ liệu/ngày vào 2009
Một máy chủ không thể đảm nhiệm việc xử lý toàn bộ dữ liệu lớn
Cần hệ thống phân tán để lưu trữ và xử lý song song
Lập trình song song?
Đa luồng – khó
Làm sao để thuận tiện truyền dữ liệu giữa các nodes?
Làm thế nào để mở rộng thêm nhiều máy?
Làm thế nào để việc xử lý thuật tiện khi máy lỗi?
Tại sao cần MapReduce ?
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 3/46
1. Giới thiệu chung về MapReduce
MapReduce là một mô hình lập trình được thiết kế cho
việc xử lý dữ liệu lớn một cách song song bằng việc chia
nhỏ công việc (work) thành tập các nhiệm vụ (tasks) độc
lập.
Hình thành từ 2004
MapReduce: Simplified Data Processing on Large Clusters
Jeffrey Dean and Sanjay Ghemawat
MapReduce là gì?
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 4/46
1. Giới thiệu chung về MapReduce
Hỗ trợ tự động song song hóa và phân tán
Hỗ trợ lập lịch vào/ra dữ liệu
Cân bằng tải
Tối ưu hóa việc truyền dữ liệu trên mạng
Hỗ trợ việc mở rộng hệ thống, tăng hiệu suất
Scale out, not up
Vai trò của MapReduce
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 5/46
1. Giới thiệu chung về MapReduce
Đọc để xử lý một lượng lớn dữ liệu
Map: trích lọc thông tin từ một lượng lớn dữ liệu
Trộn và sắp xếp dữ liệu lớn
Reduce: tổng hợp, lọc kết quả, chuyển đổi dữ liệu
Ghi lại các kết quả lên hệ thống phân tán
Các vấn đề cơ bản có thể giải quyết dùng MapReduce
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 6/46
Các thành phần người dùng
Mapper
Reducer
Combiner (optional)
Partitioner (optional) – Shuffle
Các thành phần hệ thống
Master
InputSplitter*
OutputCommitter*
1. Giới thiệu chung về MapReduce
Các thành phần chính của MapReduce
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 7/46
2. Nguyên lý hoạt động của MapReduce
MapReduce hoạt động dựa vào nguyên tắc chính là
“Chia để trị”
Phân chia dữ liệu thành nhiều phần nhỏ trước khi thực hiện
xử lý
Xử lý các vấn đề nhỏ theo phương thức song song và độc lập
trên các máy tính phân tán.
Tiến hành tổng hợp những kết quả thu được để đưa ra kết
quả sau cùng.
Nguyên lý hoạt động chung của MapReduce
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 8/46
2. Nguyên lý hoạt động của MapReduce
MapReduce Data Flow
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 9/46
2. Nguyên lý hoạt động của MapReduce
Bước 1: Đọc dữ liệu đầu vào với Input Splitter
Bước 2: Xử lý dữ liệu đầu vào với Mapper
Bước 3: Sắp xếp và trộn các kết quả thu được từ các hàm
Map() trên các máy tính phân tán với Combiner &
Partitioner.
Bước 4: Tổng hợp và xử lý các kết quả trung gian thu được
với Reducer
Bước 5: Ghi ra kết quả cuối cùng với Output Committer
Các bước xử lý của MapReduce
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 10/46
2. Nguyên lý hoạt động của MapReduce
Sơ đồ hoạt động của MapReduce
Reduce
<rKey1, rValue1>
Reduce
<rKey2,
rValue2>
Reduce
<rKey3, rValue3>
Input
files
…
Map
<mKey1,
mValue1>
Map
<mKey2,
mValue2>
Map
<mKeyn, mValuen>
Tuples
on
Disk
Data
on
Disk
Output
files
HDF
S
HDF
S
Sort &
Shuffle
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 11/46
Map
phase
Reduce
phase
…
2. Nguyên lý hoạt động của MapReduce
Sơ đồ hoạt động của MapReduce
Reduce
Input
files
…
Map
Tuples
on
Disk
Data
on
Disk
Output
files
HDF
S
HDF
S
Iterarion
1
Iteration n
…
Reduce
Map
Reduce
Map
Reduce
Map
Reduce
Map
Reduce
Map
Tuples
on
Disk
HDF
S
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 12/46
…
Multipe MapReduce
Jobs
3. Chức năng của các thành phần trong MapReduce
Chia nhỏ tệp dữ liệu thành nhiều mảnh (chunks)
Các chunks là đầu vào cho các Mapper
Chia dữ liệu theo ràng buộc
Kích thước mặc định là 128MB
Thông thường sử dụng các kiểu chia đã được cài đặt
sẵn, có thể tùy biến
Input Splitter
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 13/46
3. Chức năng của các thành phần trong MapReduce
InputFormat
FileInputFormat: cơ sở của các InputFileFormat khác
TextFileFormat
KeyValueTextInputFormat
SequenceFileInputFormat
SequenceFileAsTextInputFormat
SequenceFileAsBinaryInputFormat
NLineInputFormat
DBInputFormat
Input Splitter
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 14/46
3. Chức năng của các thành phần trong MapReduce
Đọc dữ liệu vào dưới dạng cặp key-value <K,V>
Ghi dữ liệu ra dưới dạng key-value <K’,V’>
<Key,Value> được sinh ra như thế nào trong
Hadoop?
InputSplit: biểu diễn dữ liệu mức logic (kích thước và vị trí)
RecordReader: lấy thông tin từ InputSplit, đọc dữ liệu và
chuyển nó về dạng <key,value> cho các Mapper
Mapper (1/3)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 15/46
3. Chức năng của các thành phần trong MapReduce
Ví dụ: Bài toán Word Count
Mapper (2/3)
Input Text
File
Deer Bear
River Car Car
River Deer
Car Bear
<0, Deer Bear
River>
<15, Car Car
River>
<28, Deer Car
Bear>
Splittin
g
<K,V> <Deer,
1>
<Bear,
1>
<River,
1>
<Car,
1>
<Car,
1>
<River,
1>
<Deer,
1>
<Car,
1>
<Bear,
1>
Inpu
t
Mappin
g
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 16/46
3. Chức năng của các thành phần trong MapReduce
Bao nhiêu Map Tasks trong 1 chương trình Hadoop
MapReduce?
Số Map Tasks = Số block of input files
Mỗi file có kích thước < block size vẫn được coi là 1 bock
Số Map Tasks = Tổng kích thước file dữ liệu / input split size
Ví dụ: 1 tệp 1GB = 1024MB, input split zie = 128MB
 #MapTask = 1024/128 = 8 map tasks
Mapper (3/3)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 17/46
3. Chức năng của các thành phần trong MapReduce
Nhận Input là output của các Mapper
Tất cả các input có cùng Key phải vào cùng 1 Reducer
Input thường đã được trộn và sắp xếp
Shuffle & Sorting phase
Output là kết quả mong đợi, lưu trên HDFS
Reducer (1/3)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 18/46
3. Chức năng của các thành phần trong MapReduce
Ví dụ: Bài toán Word Count
Reducer (2/3)
Inpu
t
File
Deer Bear
River Car Car
River Deer
Car Bear
<0, Deer Bear
River>
<15, Car Car
River>
<28, Deer Car
Bear>
Splittin
g
<K1,V1
>
<Deer,
1>
<Bear,
1>
<River,
1>
<Car,
1>
<Car,
1>
<River,
1>
<Deer,
1>
<Car,
1>
<Bear,
Inpu
t
Mappin
g
<Bear,
2>
<Car,
3>
<Deer,
2>
<River,
2>
Reduci
ng
Shufflin
g &
Sorting
<Bea
r,
(1,1)
>
<Car,
(1,1,1)
>
<Deer
,
(1,1)
>
<Rive
r,
(1,1)
>
Outpu
t
File
Bear,
2
Car, 3
Deer,
2
River,
2
Final
Result
<K3,
V3>
List<K2,V
2>
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 19/46
K2,
List<V2>
3. Chức năng của các thành phần trong MapReduce
Số Reducers cần thiết
Người dùng có thể thiết lập số Reducer cho Job
Sử dụng lệnh: Job.setNumreduceTasks(int)
Thông thường, số Reducers = (0.95 hoặc 1.75) x
#số nodes x #max số containers/node
• Với 0.95: tất cả các reducer sẽ chạy khi các map hoàn
thành
• Với 1.75: vòng đầu của các reducer sẽ kết thúc bởi các
node tính toán nhanh, và tiếp tục các vòng tiếp theo
Reducer (3/3)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 20/46
3. Chức năng của các thành phần trong MapReduce
Gom các output của Mapper có cùng key với nhau
Chạy trước Reducer
Tùy chọn (có hoặc không)
Thuận lợi
Giảm lượng dữ liệu truyền qua mạng
Giảm lượng dữ liệu cần xử lý của Reducer
Tăng hiệu suất tổng thể của chương trình
Bất lợi
Thao tác nhiều trên ổ đĩa khi làm việc với các local filesystem
Combiner (1/2)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 21/46
3. Chức năng của các thành phần trong MapReduce
So sánh có và không sử dụng Combiner
Combiner (2/2)
<Car,
1>
<River,
1>
<Deer,
1>
<Car,
1>
<Bear,
Combiner
Output
<Bea
r,
(1,1)
>
<Car,
(1,1,1)
>
<Deer
,
(1,1)
>
<Rive
r,
(1,1)
>
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 22/46
key-value
gửi đến
Reducer
Ví dụ: Bài toán Word Count
Mapper Output
<Deer, 1>
<Bear, 1>
<River, 1>
9 cặp
<Car, 1>
4 cặp
key-value
gửi đến
Reducer
3. Chức năng của các thành phần trong MapReduce
Quyết định Key nào của Map Output thực hiện bởi Reducer nào
Sử dụng Hash Function
Mặc định: Key.hashCode() % numOfReducers
Người dùng có thể ghi đè cách thức hoạt động của Partitioner
Dùng các hàm phân bố nhằm cân bằng tải
Một vài Value cần gửi vào cùng 1 reducer
Ví dụ: để tính toán mối tương quan trong giữa các cặp từ nên gửi 2 từ đó vào
cùng 1 reducer.
Partitioner thực hiện sau Combiner, trước Reducer
Partitioner (Shuffler)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 23/46
3. Chức năng của các thành phần trong MapReduce
Nhận kết quả của Reducer và ghi kết quả ra HDFS với
RecordWriter
Kết quả được ghi theo định dạng của OutputFormat
Các Job khác có thể đọc được
Kiểu Split có thể Customize
Tương tự Input Splitter
Output Committer (1/2)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 24/46
3. Chức năng của các thành phần trong MapReduce
OutputFormats
FileOutputFormat: cơ sở của các OutputFormat khác
TextOutputFormat
SequenceFileOutputFormat
SequenceAsBinaryOutputFormat
MultipleOutput
LazyOutputFormat
DBOutputFormat
Output Committer (2/2)
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 25/46
3. Chức năng của các thành phần trong MapReduce
Lập lịch và quản lý các Job
Lập lịch tính toán sao cho các máy xử lý dữ liệu gần nơi lưu trữ 
Giảm băng thông
Nếu 1 task lỗi:  Kill  Re-launch với cùng Input
Số lần mặc định contact với 1 task khi phát hiện crash = 4, có
thể thay đổi
Master restart các node failed, các node khác không ảnh hưởng
Master
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 26/46
4. Thực hành lập trình với MapReduce
Cài đặt Eclipse (có thể trên máy master) (1/3)
Bước 1: Tìm và Download Eclipse phiên bản 2019-12 R, 348MB:
https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloa
ds/release/2019-12/R/eclipse-jee-2019-12-R-linux-gtk-
x86_64.tar.gz&mirror_id=105
Bước 2: Chuyển (Move To) tệp tin vào thư mục /usr/local
$ sudo mv /home/hduser/Downloads/eclipse-jee-2019-12-R-linux-gtk-
x86_64.tar.gz /usr/local/
Hoặc bạn có thể copy trên giao diện
Bước 3: Giải nén tệp
$ cd /ur/local
$ tar xvf eclipse-jee-2019-12-R-linux-gtk-x86_64.tar.gz
Chuẩn bị môi trường – phần mềm
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 27/46
4. Thực hành lập trình với MapReduce
Cài đặt Eclipse (có thể trên máy master) – (2/3)
Bước 4: Tạo Desktop Icon để chạy chương trình:
$ sudo gedit ~/.local/share/applications/eclipse.desktop
Copy nội dung sau vào file:
Chạy lệnh sau để make it executable
$ sudo chmod +x ~/.local/share/applications/eclipse.desktop
Chuẩn bị môi trường – phần mềm
[Desktop Entry]
Name=Eclipse Eclipse
Type=Application
Exec=/usr/local/eclipse/eclipse
Terminal=false
Icon=/usr/local/eclipse/icon.xpm
Comment=Eclipse Integrated
Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=Eclipse
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 28/46
4. Thực hành lập trình với MapReduce
Cài đặt Eclipse (có thể trên máy master) – (3/3)
Bước 5: chạy file thực thi của Eclipse từ đường dẫn
/usr/local/eclipse/
Giao diện khởi động tương tự sau
Chuẩn bị môi trường – phần mềm
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 29/46
4. Thực hành lập trình với MapReduce
Cài đặt Hadoop-Eclipse-Plugin (1/2)
Bước 1: Download hadoop-eclipse-plugin-3.3.0.jar từ link sau:
https://drive.google.com/file/d/1Tfhz1k1imgp7FBOxEOOejwxwOdn-
8KYW/view?usp=sharing
Bước 2: Copy tệp tin hadoop-eclipse-plugin-3.3.0-jar vào thư mục
/usr/local/eclipse/plugins
Bước 3: Khởi động lại Eclipse để tải hadoop-eclipse-plugin
Bước 4: Cấu hình đường dẫn tới thư mục cài đặt Hadoop trên Eclipse
(hình bên)
Chuẩn bị môi trường – phần mềm
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 30/46
4. Thực hành lập trình với MapReduce
Cài đặt Hadoop-Eclipse-Plugin (2/2)
Chuẩn bị môi trường – phần mềm
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 31/46
4. Thực hành lập trình với MapReduce
Viết chương trình MapReduce cho bài toàn đếm từ (Word Count)
Input: Tập các tệp tin văn bản
Output: Số lần xuất hiện của mỗi từ trong tập văn bản đó
Bài tập thực hành 1
Inpu
t
File
Deer Bear
River Car Car
River Deer
Car Bear
Outpu
t
File
Bear,
2
Car, 3
Deer,
2
River,
2
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 32/46
4. Thực hành lập trình với MapReduce
Bước 1: Tạo dự án MapReduce
File  New  Project  Map/Reduce Project  Next
Đặt tên project: WordCount  Nhấn Finish
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 33/46
4. Thực hành lập trình với MapReduce
Bước 2: Tạo hàm Map (1/2)
File  New  Mapper
Đặt tên Package: wordcount
Đặt tên tệp: TokenizerMapper
Nhấn Finish
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 34/46
4. Thực hành lập trình với MapReduce
Bước 2: Tạo hàm Map (1/2)
Viết code cho hàm Map như sau:
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 35/46
4. Thực hành lập trình với MapReduce
Bước 3: Tạo hàm Reduce (1/2)
File  New  Reducer
Đặt tên Package: wordcount
Điền tên tệp: IntSumReducer
Nhấn Finish
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 36/46
4. Thực hành lập trình với MapReduce
Bước 3: Tạo hàm Reduce (2/2)
Viết code cho hàm Reduce như sau:
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 37/46
4. Thực hành lập trình với MapReduce
Bước 4: Tạo hàm chương trình chính (1/2)
File  New  MapReduce Driver
Đặt tên Package: wordcount
Điền tên tệp: WordCountDriver
Điền tên Mapper:
wordcount.TokenizerMapper
Điền tên Reducer:
wordcount.IntSumReducer
Nhấn Finish
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 38/46
4. Thực hành lập trình với MapReduce
Bước 4: Tạo hàm chương trình chính (2/2)
Viết code cho hàm Main (Driver) như sau:
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 39/46
4. Thực hành lập trình với MapReduce
Bước 5: Đóng gói chương trình  Tạo file *.jar (1/2)
Chọn vào Project cần đóng gói
File  Export  Java  Runnable JAR file
Giao diện Runnable JAR file hiển thị
Launch Configuration: Chọn tên tệp chương trình chính
Export Destination: Chọn nơi chưa Jar file tên máy tính
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 40/46
4. Thực hành lập trình với MapReduce
Bước 5: Đóng gói chương trình  Tạo file *.jar (2/2)
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 41/46
4. Thực hành lập trình với MapReduce
Bước 6: Chạy chương trình trên Hadoop Cluster
Khởi động Hadoop System
$ start-all.sh
Chạy chương trình:
$ cd /usr/local/hadoop/bin
$ hadoop jar /home/hduser/WordCountApp.jar /input /output
Trong đó:
/input là thư mục chứa các tệp text trên HDFS
/output là thư mục trên HDFS (ko nên tồn tại trước) chứa kết quả đầu ra của của
chương trình
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 42/46
4. Thực hành lập trình với MapReduce
Bước 7: Theo dõi tiến trình xử lý của MapReduce và check kết quả
Chương trình hoàn thành khi 100% map tasks và 100% reduce tasks
kết thúc, khi đó Job ở trạng thái Completed!
Kiểm tra kết quả ở thư mục /output trên HDFS
Bài tập thực hành 1
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 43/46
4. Thực hành lập trình với MapReduce
Bài toán: Một hệ thống bán hàng gồm N cửa hàng bán lẻ (shop).
Dữ liệu bán hàng của các shop được gửi về hệ thống máy chủ
trung tâm để phân tích theo định kỳ. Dữ liệu của mỗi shop được lưu
trữ trong 1 tệp *.csv (Shop-k.csv, k <=N). Trong đó, mỗi dòng thể
hiện tên các sản phẩm được mua trong mỗi hóa đơn của khách
hàng, được ngăn cách bởi dấu phẩy (,). Giả sử lượng dữ liệu này là
rất lớn. Bạn hãy viết chương trình MapReduce thống kê giúp chủ hệ
thống số lượng mỗi sản phẩm bán được trong kỳ
Bài tập thực hành 2
MILK,BREAD,BISCUIT
BREAD,MILK,BISCUIT,CORNF
LAKES
BREAD,TEA,BOURNVITA
JAM,MAGGI,BREAD,MILK
MAGGI,TEA,BISCUIT
BREAD,TEA,BOURNVITA
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 44/46
Shop-01.csv
Giới thiệu tổng quan về MapReduce
Nguyên lý hoạt động của MapReduce
Chi tiết đặc điểm và vai trò của các thành phần trong
MapReduce
Hướng dẫn thực hành lập trình MapReduce trên Eclipse
Tổng kết bài học
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 45/46
Trân trọng cảm
ơn!
Q&A
Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 46/46

Contenu connexe

Similaire à Lesson 3 - Xu ly du lieu lon voi MapReduce.pptx

Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...jackjohn45
 
Các phím tắt trong AutoCAD
Các phím tắt trong AutoCADCác phím tắt trong AutoCAD
Các phím tắt trong AutoCADHọc Cơ Khí
 
Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...Thành Thư Thái
 
Virtual cluster thesis
Virtual   cluster thesisVirtual   cluster thesis
Virtual cluster thesisSentifi
 
De-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfDe-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfAnhTVit1
 
Hướng dẫn WebGis cơ bản - Basic Guide WebGis
Hướng dẫn WebGis cơ bản - Basic Guide WebGisHướng dẫn WebGis cơ bản - Basic Guide WebGis
Hướng dẫn WebGis cơ bản - Basic Guide WebGisThuận Phạm Văn
 
Quản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NETQuản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NETTrung Thành Nguyễn
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tánduysu
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánduysu
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánduysu
 
bao_cao_apache_jmeter.pdf
bao_cao_apache_jmeter.pdfbao_cao_apache_jmeter.pdf
bao_cao_apache_jmeter.pdfNguynTrngTu
 
Lập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socketLập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socketjackjohn45
 

Similaire à Lesson 3 - Xu ly du lieu lon voi MapReduce.pptx (20)

Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
 
Tuan 3 dinhtuyendong
Tuan 3   dinhtuyendongTuan 3   dinhtuyendong
Tuan 3 dinhtuyendong
 
Các phím tắt trong AutoCAD
Các phím tắt trong AutoCADCác phím tắt trong AutoCAD
Các phím tắt trong AutoCAD
 
Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...Distributed graphlab: a framework for machine learning and data mining in the...
Distributed graphlab: a framework for machine learning and data mining in the...
 
Virtual cluster thesis
Virtual   cluster thesisVirtual   cluster thesis
Virtual cluster thesis
 
Map reduce hdfs
Map reduce hdfsMap reduce hdfs
Map reduce hdfs
 
De-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfDe-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdf
 
Đề 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ướng dẫn WebGis cơ bản - Basic Guide WebGis
Hướng dẫn WebGis cơ bản - Basic Guide WebGisHướng dẫn WebGis cơ bản - Basic Guide WebGis
Hướng dẫn WebGis cơ bản - Basic Guide WebGis
 
Quản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NETQuản lý hoạt động giảng dạy sử dụng ASP.NET
Quản lý hoạt động giảng dạy sử dụng ASP.NET
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tán
 
Chuong 3 CSDL phân tán
Chuong 3 CSDL phân tánChuong 3 CSDL phân tán
Chuong 3 CSDL phân tán
 
Dsd02 sta
Dsd02 staDsd02 sta
Dsd02 sta
 
Chuong2 nmth
Chuong2 nmthChuong2 nmth
Chuong2 nmth
 
Thiet ke csdl pt
Thiet ke csdl ptThiet ke csdl pt
Thiet ke csdl pt
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tán
 
Chuong 2 CSDL phân tán
Chuong 2 CSDL phân tánChuong 2 CSDL phân tán
Chuong 2 CSDL phân tán
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tán
 
bao_cao_apache_jmeter.pdf
bao_cao_apache_jmeter.pdfbao_cao_apache_jmeter.pdf
bao_cao_apache_jmeter.pdf
 
Lập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socketLập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socket
 

Dernier

kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsbkjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsbhoangphuc12ta6
 
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...Nguyen Thanh Tu Collection
 
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...Nguyen Thanh Tu Collection
 
mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...
mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...
mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...mayphatdienhondacom
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...Nguyen Thanh Tu Collection
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...Nguyen Thanh Tu Collection
 
xemsomenh.com-Bố cục của lá số tử vi như thế nào.pdf
xemsomenh.com-Bố cục của lá số tử vi như thế nào.pdfxemsomenh.com-Bố cục của lá số tử vi như thế nào.pdf
xemsomenh.com-Bố cục của lá số tử vi như thế nào.pdfXem Số Mệnh
 
Vợ chồng A Phủ - Tô Hoài - phân tích chi tiết
Vợ chồng A Phủ - Tô Hoài - phân tích chi tiếtVợ chồng A Phủ - Tô Hoài - phân tích chi tiết
Vợ chồng A Phủ - Tô Hoài - phân tích chi tiếtauthihaiyen2000
 
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...Nguyen Thanh Tu Collection
 
CHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜI
CHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜICHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜI
CHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜInguyendoan3122102508
 
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...Nguyen Thanh Tu Collection
 
15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...
15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...
15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...Nguyen Thanh Tu Collection
 
ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...
ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...
ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)
Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)
Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)LinhV602347
 
sách các Bài tập kinh tế vi mô chọn lọc.
sách các Bài tập kinh tế vi mô chọn lọc.sách các Bài tập kinh tế vi mô chọn lọc.
sách các Bài tập kinh tế vi mô chọn lọc.TunQuc54
 

Dernier (17)

kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsbkjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
kjsbgkjbskfkgabksfbgbsfjkvbksfbkbfskbskbkjsb
 
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CHÂN TRỜI ...
 
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
 
mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...
mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...
mayphatdienhonda.com - Máy phát điện là gì ? cấu tạo và ứng dụng , phân loại ...
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
 
xemsomenh.com-Bố cục của lá số tử vi như thế nào.pdf
xemsomenh.com-Bố cục của lá số tử vi như thế nào.pdfxemsomenh.com-Bố cục của lá số tử vi như thế nào.pdf
xemsomenh.com-Bố cục của lá số tử vi như thế nào.pdf
 
Vợ chồng A Phủ - Tô Hoài - phân tích chi tiết
Vợ chồng A Phủ - Tô Hoài - phân tích chi tiếtVợ chồng A Phủ - Tô Hoài - phân tích chi tiết
Vợ chồng A Phủ - Tô Hoài - phân tích chi tiết
 
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
BÀI TẬP DẠY THÊM TOÁN LỚP 12 SÁCH MỚI THEO FORM THI MỚI BGD 2025 - CÁNH DIỀU ...
 
CHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜI
CHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜICHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜI
CHƯƠNG 5. TTHCM VỀ VĂN HÓA, ĐẠO ĐỨC, CON NGƯỜI
 
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 11 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-...
 
15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...
15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...
15 ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 SỞ GIÁO...
 
ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...
ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...
ĐỀ THI THỬ TUYỂN SINH VÀO LỚP 10 THPT MÔN TOÁN CÁC TỈNH NĂM HỌC 2023-2024 CÓ ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)
Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)
Đề cương môn Xã hội Chủ nghĩa Khoa học (sơ lược)
 
sách các Bài tập kinh tế vi mô chọn lọc.
sách các Bài tập kinh tế vi mô chọn lọc.sách các Bài tập kinh tế vi mô chọn lọc.
sách các Bài tập kinh tế vi mô chọn lọc.
 
Talk Academy Presentation 2024 (ENG) MICE.pdf
Talk Academy Presentation 2024 (ENG) MICE.pdfTalk Academy Presentation 2024 (ENG) MICE.pdf
Talk Academy Presentation 2024 (ENG) MICE.pdf
 

Lesson 3 - Xu ly du lieu lon voi MapReduce.pptx

  • 1. Giảng viên: TS. Nguyễn Văn Quyết XỬ LÝ DỮ LIỆU LỚN VỚI MAPREDUCE Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 1/46
  • 2. Giới thiệu chung về MapReduce Nguyên lý hoạt động của MapReduce Chức năng của các thành phần trong MapReduce Thực hành lập trình với MapReduce Hỏi & đáp Nội dung Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 2/46
  • 3. 1. Giới thiệu chung về MapReduce Xử lý lượng lớn dữ liệu Google xử lý khoảng 24PB dữ liệu/ngày vào 2009 Một máy chủ không thể đảm nhiệm việc xử lý toàn bộ dữ liệu lớn Cần hệ thống phân tán để lưu trữ và xử lý song song Lập trình song song? Đa luồng – khó Làm sao để thuận tiện truyền dữ liệu giữa các nodes? Làm thế nào để mở rộng thêm nhiều máy? Làm thế nào để việc xử lý thuật tiện khi máy lỗi? Tại sao cần MapReduce ? Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 3/46
  • 4. 1. Giới thiệu chung về MapReduce MapReduce là một mô hình lập trình được thiết kế cho việc xử lý dữ liệu lớn một cách song song bằng việc chia nhỏ công việc (work) thành tập các nhiệm vụ (tasks) độc lập. Hình thành từ 2004 MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat MapReduce là gì? Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 4/46
  • 5. 1. Giới thiệu chung về MapReduce Hỗ trợ tự động song song hóa và phân tán Hỗ trợ lập lịch vào/ra dữ liệu Cân bằng tải Tối ưu hóa việc truyền dữ liệu trên mạng Hỗ trợ việc mở rộng hệ thống, tăng hiệu suất Scale out, not up Vai trò của MapReduce Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 5/46
  • 6. 1. Giới thiệu chung về MapReduce Đọc để xử lý một lượng lớn dữ liệu Map: trích lọc thông tin từ một lượng lớn dữ liệu Trộn và sắp xếp dữ liệu lớn Reduce: tổng hợp, lọc kết quả, chuyển đổi dữ liệu Ghi lại các kết quả lên hệ thống phân tán Các vấn đề cơ bản có thể giải quyết dùng MapReduce Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 6/46
  • 7. Các thành phần người dùng Mapper Reducer Combiner (optional) Partitioner (optional) – Shuffle Các thành phần hệ thống Master InputSplitter* OutputCommitter* 1. Giới thiệu chung về MapReduce Các thành phần chính của MapReduce Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 7/46
  • 8. 2. Nguyên lý hoạt động của MapReduce MapReduce hoạt động dựa vào nguyên tắc chính là “Chia để trị” Phân chia dữ liệu thành nhiều phần nhỏ trước khi thực hiện xử lý Xử lý các vấn đề nhỏ theo phương thức song song và độc lập trên các máy tính phân tán. Tiến hành tổng hợp những kết quả thu được để đưa ra kết quả sau cùng. Nguyên lý hoạt động chung của MapReduce Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 8/46
  • 9. 2. Nguyên lý hoạt động của MapReduce MapReduce Data Flow Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 9/46
  • 10. 2. Nguyên lý hoạt động của MapReduce Bước 1: Đọc dữ liệu đầu vào với Input Splitter Bước 2: Xử lý dữ liệu đầu vào với Mapper Bước 3: Sắp xếp và trộn các kết quả thu được từ các hàm Map() trên các máy tính phân tán với Combiner & Partitioner. Bước 4: Tổng hợp và xử lý các kết quả trung gian thu được với Reducer Bước 5: Ghi ra kết quả cuối cùng với Output Committer Các bước xử lý của MapReduce Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 10/46
  • 11. 2. Nguyên lý hoạt động của MapReduce Sơ đồ hoạt động của MapReduce Reduce <rKey1, rValue1> Reduce <rKey2, rValue2> Reduce <rKey3, rValue3> Input files … Map <mKey1, mValue1> Map <mKey2, mValue2> Map <mKeyn, mValuen> Tuples on Disk Data on Disk Output files HDF S HDF S Sort & Shuffle Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 11/46 Map phase Reduce phase …
  • 12. 2. Nguyên lý hoạt động của MapReduce Sơ đồ hoạt động của MapReduce Reduce Input files … Map Tuples on Disk Data on Disk Output files HDF S HDF S Iterarion 1 Iteration n … Reduce Map Reduce Map Reduce Map Reduce Map Reduce Map Tuples on Disk HDF S Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 12/46 … Multipe MapReduce Jobs
  • 13. 3. Chức năng của các thành phần trong MapReduce Chia nhỏ tệp dữ liệu thành nhiều mảnh (chunks) Các chunks là đầu vào cho các Mapper Chia dữ liệu theo ràng buộc Kích thước mặc định là 128MB Thông thường sử dụng các kiểu chia đã được cài đặt sẵn, có thể tùy biến Input Splitter Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 13/46
  • 14. 3. Chức năng của các thành phần trong MapReduce InputFormat FileInputFormat: cơ sở của các InputFileFormat khác TextFileFormat KeyValueTextInputFormat SequenceFileInputFormat SequenceFileAsTextInputFormat SequenceFileAsBinaryInputFormat NLineInputFormat DBInputFormat Input Splitter Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 14/46
  • 15. 3. Chức năng của các thành phần trong MapReduce Đọc dữ liệu vào dưới dạng cặp key-value <K,V> Ghi dữ liệu ra dưới dạng key-value <K’,V’> <Key,Value> được sinh ra như thế nào trong Hadoop? InputSplit: biểu diễn dữ liệu mức logic (kích thước và vị trí) RecordReader: lấy thông tin từ InputSplit, đọc dữ liệu và chuyển nó về dạng <key,value> cho các Mapper Mapper (1/3) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 15/46
  • 16. 3. Chức năng của các thành phần trong MapReduce Ví dụ: Bài toán Word Count Mapper (2/3) Input Text File Deer Bear River Car Car River Deer Car Bear <0, Deer Bear River> <15, Car Car River> <28, Deer Car Bear> Splittin g <K,V> <Deer, 1> <Bear, 1> <River, 1> <Car, 1> <Car, 1> <River, 1> <Deer, 1> <Car, 1> <Bear, 1> Inpu t Mappin g Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 16/46
  • 17. 3. Chức năng của các thành phần trong MapReduce Bao nhiêu Map Tasks trong 1 chương trình Hadoop MapReduce? Số Map Tasks = Số block of input files Mỗi file có kích thước < block size vẫn được coi là 1 bock Số Map Tasks = Tổng kích thước file dữ liệu / input split size Ví dụ: 1 tệp 1GB = 1024MB, input split zie = 128MB  #MapTask = 1024/128 = 8 map tasks Mapper (3/3) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 17/46
  • 18. 3. Chức năng của các thành phần trong MapReduce Nhận Input là output của các Mapper Tất cả các input có cùng Key phải vào cùng 1 Reducer Input thường đã được trộn và sắp xếp Shuffle & Sorting phase Output là kết quả mong đợi, lưu trên HDFS Reducer (1/3) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 18/46
  • 19. 3. Chức năng của các thành phần trong MapReduce Ví dụ: Bài toán Word Count Reducer (2/3) Inpu t File Deer Bear River Car Car River Deer Car Bear <0, Deer Bear River> <15, Car Car River> <28, Deer Car Bear> Splittin g <K1,V1 > <Deer, 1> <Bear, 1> <River, 1> <Car, 1> <Car, 1> <River, 1> <Deer, 1> <Car, 1> <Bear, Inpu t Mappin g <Bear, 2> <Car, 3> <Deer, 2> <River, 2> Reduci ng Shufflin g & Sorting <Bea r, (1,1) > <Car, (1,1,1) > <Deer , (1,1) > <Rive r, (1,1) > Outpu t File Bear, 2 Car, 3 Deer, 2 River, 2 Final Result <K3, V3> List<K2,V 2> Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 19/46 K2, List<V2>
  • 20. 3. Chức năng của các thành phần trong MapReduce Số Reducers cần thiết Người dùng có thể thiết lập số Reducer cho Job Sử dụng lệnh: Job.setNumreduceTasks(int) Thông thường, số Reducers = (0.95 hoặc 1.75) x #số nodes x #max số containers/node • Với 0.95: tất cả các reducer sẽ chạy khi các map hoàn thành • Với 1.75: vòng đầu của các reducer sẽ kết thúc bởi các node tính toán nhanh, và tiếp tục các vòng tiếp theo Reducer (3/3) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 20/46
  • 21. 3. Chức năng của các thành phần trong MapReduce Gom các output của Mapper có cùng key với nhau Chạy trước Reducer Tùy chọn (có hoặc không) Thuận lợi Giảm lượng dữ liệu truyền qua mạng Giảm lượng dữ liệu cần xử lý của Reducer Tăng hiệu suất tổng thể của chương trình Bất lợi Thao tác nhiều trên ổ đĩa khi làm việc với các local filesystem Combiner (1/2) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 21/46
  • 22. 3. Chức năng của các thành phần trong MapReduce So sánh có và không sử dụng Combiner Combiner (2/2) <Car, 1> <River, 1> <Deer, 1> <Car, 1> <Bear, Combiner Output <Bea r, (1,1) > <Car, (1,1,1) > <Deer , (1,1) > <Rive r, (1,1) > Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 22/46 key-value gửi đến Reducer Ví dụ: Bài toán Word Count Mapper Output <Deer, 1> <Bear, 1> <River, 1> 9 cặp <Car, 1> 4 cặp key-value gửi đến Reducer
  • 23. 3. Chức năng của các thành phần trong MapReduce Quyết định Key nào của Map Output thực hiện bởi Reducer nào Sử dụng Hash Function Mặc định: Key.hashCode() % numOfReducers Người dùng có thể ghi đè cách thức hoạt động của Partitioner Dùng các hàm phân bố nhằm cân bằng tải Một vài Value cần gửi vào cùng 1 reducer Ví dụ: để tính toán mối tương quan trong giữa các cặp từ nên gửi 2 từ đó vào cùng 1 reducer. Partitioner thực hiện sau Combiner, trước Reducer Partitioner (Shuffler) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 23/46
  • 24. 3. Chức năng của các thành phần trong MapReduce Nhận kết quả của Reducer và ghi kết quả ra HDFS với RecordWriter Kết quả được ghi theo định dạng của OutputFormat Các Job khác có thể đọc được Kiểu Split có thể Customize Tương tự Input Splitter Output Committer (1/2) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 24/46
  • 25. 3. Chức năng của các thành phần trong MapReduce OutputFormats FileOutputFormat: cơ sở của các OutputFormat khác TextOutputFormat SequenceFileOutputFormat SequenceAsBinaryOutputFormat MultipleOutput LazyOutputFormat DBOutputFormat Output Committer (2/2) Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 25/46
  • 26. 3. Chức năng của các thành phần trong MapReduce Lập lịch và quản lý các Job Lập lịch tính toán sao cho các máy xử lý dữ liệu gần nơi lưu trữ  Giảm băng thông Nếu 1 task lỗi:  Kill  Re-launch với cùng Input Số lần mặc định contact với 1 task khi phát hiện crash = 4, có thể thay đổi Master restart các node failed, các node khác không ảnh hưởng Master Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 26/46
  • 27. 4. Thực hành lập trình với MapReduce Cài đặt Eclipse (có thể trên máy master) (1/3) Bước 1: Tìm và Download Eclipse phiên bản 2019-12 R, 348MB: https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloa ds/release/2019-12/R/eclipse-jee-2019-12-R-linux-gtk- x86_64.tar.gz&mirror_id=105 Bước 2: Chuyển (Move To) tệp tin vào thư mục /usr/local $ sudo mv /home/hduser/Downloads/eclipse-jee-2019-12-R-linux-gtk- x86_64.tar.gz /usr/local/ Hoặc bạn có thể copy trên giao diện Bước 3: Giải nén tệp $ cd /ur/local $ tar xvf eclipse-jee-2019-12-R-linux-gtk-x86_64.tar.gz Chuẩn bị môi trường – phần mềm Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 27/46
  • 28. 4. Thực hành lập trình với MapReduce Cài đặt Eclipse (có thể trên máy master) – (2/3) Bước 4: Tạo Desktop Icon để chạy chương trình: $ sudo gedit ~/.local/share/applications/eclipse.desktop Copy nội dung sau vào file: Chạy lệnh sau để make it executable $ sudo chmod +x ~/.local/share/applications/eclipse.desktop Chuẩn bị môi trường – phần mềm [Desktop Entry] Name=Eclipse Eclipse Type=Application Exec=/usr/local/eclipse/eclipse Terminal=false Icon=/usr/local/eclipse/icon.xpm Comment=Eclipse Integrated Development Environment NoDisplay=false Categories=Development;IDE; Name[en]=Eclipse Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 28/46
  • 29. 4. Thực hành lập trình với MapReduce Cài đặt Eclipse (có thể trên máy master) – (3/3) Bước 5: chạy file thực thi của Eclipse từ đường dẫn /usr/local/eclipse/ Giao diện khởi động tương tự sau Chuẩn bị môi trường – phần mềm Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 29/46
  • 30. 4. Thực hành lập trình với MapReduce Cài đặt Hadoop-Eclipse-Plugin (1/2) Bước 1: Download hadoop-eclipse-plugin-3.3.0.jar từ link sau: https://drive.google.com/file/d/1Tfhz1k1imgp7FBOxEOOejwxwOdn- 8KYW/view?usp=sharing Bước 2: Copy tệp tin hadoop-eclipse-plugin-3.3.0-jar vào thư mục /usr/local/eclipse/plugins Bước 3: Khởi động lại Eclipse để tải hadoop-eclipse-plugin Bước 4: Cấu hình đường dẫn tới thư mục cài đặt Hadoop trên Eclipse (hình bên) Chuẩn bị môi trường – phần mềm Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 30/46
  • 31. 4. Thực hành lập trình với MapReduce Cài đặt Hadoop-Eclipse-Plugin (2/2) Chuẩn bị môi trường – phần mềm Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 31/46
  • 32. 4. Thực hành lập trình với MapReduce Viết chương trình MapReduce cho bài toàn đếm từ (Word Count) Input: Tập các tệp tin văn bản Output: Số lần xuất hiện của mỗi từ trong tập văn bản đó Bài tập thực hành 1 Inpu t File Deer Bear River Car Car River Deer Car Bear Outpu t File Bear, 2 Car, 3 Deer, 2 River, 2 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 32/46
  • 33. 4. Thực hành lập trình với MapReduce Bước 1: Tạo dự án MapReduce File  New  Project  Map/Reduce Project  Next Đặt tên project: WordCount  Nhấn Finish Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 33/46
  • 34. 4. Thực hành lập trình với MapReduce Bước 2: Tạo hàm Map (1/2) File  New  Mapper Đặt tên Package: wordcount Đặt tên tệp: TokenizerMapper Nhấn Finish Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 34/46
  • 35. 4. Thực hành lập trình với MapReduce Bước 2: Tạo hàm Map (1/2) Viết code cho hàm Map như sau: Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 35/46
  • 36. 4. Thực hành lập trình với MapReduce Bước 3: Tạo hàm Reduce (1/2) File  New  Reducer Đặt tên Package: wordcount Điền tên tệp: IntSumReducer Nhấn Finish Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 36/46
  • 37. 4. Thực hành lập trình với MapReduce Bước 3: Tạo hàm Reduce (2/2) Viết code cho hàm Reduce như sau: Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 37/46
  • 38. 4. Thực hành lập trình với MapReduce Bước 4: Tạo hàm chương trình chính (1/2) File  New  MapReduce Driver Đặt tên Package: wordcount Điền tên tệp: WordCountDriver Điền tên Mapper: wordcount.TokenizerMapper Điền tên Reducer: wordcount.IntSumReducer Nhấn Finish Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 38/46
  • 39. 4. Thực hành lập trình với MapReduce Bước 4: Tạo hàm chương trình chính (2/2) Viết code cho hàm Main (Driver) như sau: Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 39/46
  • 40. 4. Thực hành lập trình với MapReduce Bước 5: Đóng gói chương trình  Tạo file *.jar (1/2) Chọn vào Project cần đóng gói File  Export  Java  Runnable JAR file Giao diện Runnable JAR file hiển thị Launch Configuration: Chọn tên tệp chương trình chính Export Destination: Chọn nơi chưa Jar file tên máy tính Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 40/46
  • 41. 4. Thực hành lập trình với MapReduce Bước 5: Đóng gói chương trình  Tạo file *.jar (2/2) Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 41/46
  • 42. 4. Thực hành lập trình với MapReduce Bước 6: Chạy chương trình trên Hadoop Cluster Khởi động Hadoop System $ start-all.sh Chạy chương trình: $ cd /usr/local/hadoop/bin $ hadoop jar /home/hduser/WordCountApp.jar /input /output Trong đó: /input là thư mục chứa các tệp text trên HDFS /output là thư mục trên HDFS (ko nên tồn tại trước) chứa kết quả đầu ra của của chương trình Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 42/46
  • 43. 4. Thực hành lập trình với MapReduce Bước 7: Theo dõi tiến trình xử lý của MapReduce và check kết quả Chương trình hoàn thành khi 100% map tasks và 100% reduce tasks kết thúc, khi đó Job ở trạng thái Completed! Kiểm tra kết quả ở thư mục /output trên HDFS Bài tập thực hành 1 Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 43/46
  • 44. 4. Thực hành lập trình với MapReduce Bài toán: Một hệ thống bán hàng gồm N cửa hàng bán lẻ (shop). Dữ liệu bán hàng của các shop được gửi về hệ thống máy chủ trung tâm để phân tích theo định kỳ. Dữ liệu của mỗi shop được lưu trữ trong 1 tệp *.csv (Shop-k.csv, k <=N). Trong đó, mỗi dòng thể hiện tên các sản phẩm được mua trong mỗi hóa đơn của khách hàng, được ngăn cách bởi dấu phẩy (,). Giả sử lượng dữ liệu này là rất lớn. Bạn hãy viết chương trình MapReduce thống kê giúp chủ hệ thống số lượng mỗi sản phẩm bán được trong kỳ Bài tập thực hành 2 MILK,BREAD,BISCUIT BREAD,MILK,BISCUIT,CORNF LAKES BREAD,TEA,BOURNVITA JAM,MAGGI,BREAD,MILK MAGGI,TEA,BISCUIT BREAD,TEA,BOURNVITA Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 44/46 Shop-01.csv
  • 45. Giới thiệu tổng quan về MapReduce Nguyên lý hoạt động của MapReduce Chi tiết đặc điểm và vai trò của các thành phần trong MapReduce Hướng dẫn thực hành lập trình MapReduce trên Eclipse Tổng kết bài học Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 45/46
  • 46. Trân trọng cảm ơn! Q&A Nguyễn Văn Quyết AI Academy Vietnam 02-05-2022 46/46