BigData Storage & Processing| Môn Lưu trữ và xử lý dữ liệu lớn| Trường Đại học Bách Khoa Hà Nội

Lec2: Hadoop Ecosystem 

1. BTVN (HDFS, chạy Ví dụ về Hadoop)

Hadoop hình thành từ 2008 do Yahooh phát triển

Apache Hadoop thân thiện hơn MapReduce (của Google)

MapReduce là mô thức xử lý dữ liệu mặc định trong Hadoop

- Mục tiêu chính

Lưu trữ dự liệu khả mở (scalability), tin cậy (reliability)

Powerfull data processing

(Efficient visualization)

Introduction to Big Data Storage & Processing
Hệ số:
Lec1:
1. How big is big data?
(Hadoop Spark)
Data 5V
Velocity (speed of generating data)– Variety(types and forms of data)
Value(potential for …) Veracity (level of quality, accuracy and uncertainty)
Volume (vast amouns of data, how large can scale?)
- Big data technology stack
Data => Scalable Data Storage => Data Ingestion and Processing =>
Transform question to algorithm => Asking the right question => (Management,
Seciruty, Privacy, Governmance) Value.
- Scalable data management
Scalability
Accessibility
Transparency
Availability
- Scalable data ingestion and processing
Data ingestion (nhập dữ liệu)
Data processing (xử dữ liệu)
- Scalable analytic algorithms
Challenges
Big volume
Big dimensionality
Realtime processing
Scaling-up ML algorithms
- Data engineers (làm việc backend nhiều hơn, infrastructure) vs. Data scientists
(làm việc nhiều hơn với khách hàng).
-
1 | Page
Lec2: Hadoop Ecosystem
1. BTVN (HDFS, chạy dụ về Hadoop)
Hadoop hình thành từ 2008 do Yahooh phát triển
Apache Hadoop thân thiện hơn MapReduce (của Google)
MapReduce thức xử dữ liệu mặc định trong Hadoop
- Mục tiêu chính
Lưu trữ dự liệu khả mở (scalability), tin cậy (reliability)
Powerfull data processing
(Efficient visualization)
- Hadoop lấy cảm hứng từ Bài báo Page Rank của Google (Map Reduce).
Hadoop Common: Các tiện ích chung hỗ trợ các thành phần của Hadoop
Hadoop YARN: framework quản tài nguyên lập lịch trong cụm Hadoop
IMR of Amazon
*Hadoop mở rộng bằng kỹ thuật scale-out
- một máy master (nhiều máy master phụ)
- HDFS: Hadoop Distributed File System
Hardware failure is the norm rather than the exception.
Detection of faults and quick, automatic recovery from them is a core
architectural goal of HDFS.
The emphasis is on high throughput of data access rather than low latency of
data access
It should provide high aggregate data bandwidth and scale to hundreds of
nodes in a single cluster
This assumption simplifies data coherency issues and enables high
throughput data access.
Moving Computation is cheaper than moving data
HDFS has a master/slave architecture. An HDFS cluster consists of a single
NameNode, a master server
The architecture does not preclude running multiple DataNodes on the same
machine but in a real deployment that is rarely the case.
2 | Page
- MapReduce:
Simplicity Flexbiltity Scalability
A MapReduce job = {Isolated Tasks} n
Lec3: HDFS (Hadoop Distributed File System)
1. Overview
2. Kiến trúc HDFS
- Metadata in memory: gồm các list, thuộc tính bản như thời gian khởi tạo
- Transaction Log
Rack gồm nhiều Node, Node chứa nhiều Board (Block), đơn vị nhỏ nhất
chunk
Không nên để 2 Board cùng 1 Rack
Lec4: (MapReduce - Parallel Programming with Hadoop)
3 | Page
1. Số Mapper bằng số chunk đầu vào
Không cấu hình được số Mapper (do lượng dữ liệu đầu vào)
Cho những Mapper chạy trên đúng nốt chứa dữ liệu (Locality)
2. Số lượng Reducer bằng số lượng máy
3. Master Server chia M nhiệm vụ map cho các máy giám sát các tiến trình.
Nhiệm vụ map đọc dữ liệu cục bộ, lưu trữ kết quả map lưu trên cục bộ
(không lưu vào HDFS để ko nhân bản nên, sử dụng sẽ bỏ đi).
Pha Shuffle giao cho Reducers những buffers, những cái đọc xử từ xa
bởi Reducers.
Reducers cho ra kết quả trên bộ lưu trữ ổn định (HDFS).
4. Fault Tolerance
2. Map Input: (StudentName, ClassID)
Map Output: ((ClassA, 1),(ClassA, 1),..(ClassF, 1),(ClassF, 1),..)
Reduce input: ((ClassA,[1, 1,..]], ... (ClassF,[1, 1,..]),..)
Reduce output: ((ClassA, num_stu_A),..(ClassF, num_stu_F),..)
2. Map Input: (StudentName, classID)
Map output: (class_code, 1)
Reduce input: (class_code, [1,1,...])
Reduce output: (classID, numberOfStudent)
3. Map Input: (LastName, departmentID), (departmentID, departmentName);
Map output: (departmentID, Lastname), (departmentID, departmentName);
Reduce Input: (departmentID, [Lastname, departmentName]);
Reduce Output: (Lastname, departmentName)
4 | Page
4. Map Input: (node, [adjacents])
Map Output: (adjacent, node)
Reduce input: (adjacent, [nodes])
Reduce output: (adjacent, [nodes])
Map Input: (3, [1, 2]), (1, [2, 3]).
Map Output: (1, [3]), (2, [3]), (2, [1]), (3, [1])
Reduce Input: (1, [3]), (2, [1]), (2, [3]), (3, [1])
Reduce Output: (1,[3]) (2, [1, 3]) (3, [[1])
5. Map Input: (S1, [S2,S3]), (S2, [S1]), (S3, [S1,S2])
(S1, W1), (S2, W2), (S3, W3)
(S1, n1), (S2, n2), (S3, n3)
Map output: (S2, W1/n1), (S3, W1/n1), (S1, W2/n2), (S1, W3/n3), (S2,
W3/n3)
Reduce input: (S1, [W2/n2, W3/n3]), (S2, [W1/n1, W3/n3]), (S3, [W1/n1])
Reduce output: (S1, W11=W2/n2+W3/n3), (S2, W22=W1/n1+W3/n3), (S3,
W33=W1/n1)
Lec4: No SQL
1. Key-Value
Lec4: CAP theorem
1. Tăng database
- Scale up (vertically)
Tăng một máy
- Scale out (horizontally)
Tăng số lượng máy
- Consistency: nhất quán
- Availability: sẵn sàng
- Partition Tolerance: đáp ứng phân vùng
- Dữ liệu quan hệ dựa trên nguyên ACID (Atomicty, Consistency, Isolation,
Durability)
5 | Page
Lec4: Elasticsearch & Kibano
- Dựa trên full-text search
- Dựa trên Lucene library
- Interface HTTP hình tài liệu JSON
- Kibana hỗ trợ hiển thị cho Elasticsearch
Lec5: DHT
1. Distributed Hash Table (DHT)
- Mỗi máy 1 bảng look-up gồm nhiều cặp key-value
6 | Page
Lec6: Spark
1. Spark gì?
Spark một công cụ phân tích hợp nhất để xử dữ liệu quy lớn.
Kết hợp giữa SQL, Streaming phân tích phức tạp.
Resilient Distributed Dataset RDD
Tập hợp các đối tượng phân tán bất biến (immutable)
Chia thành nhiều phân vùng (partitions) => thể được tính trên các nút khác
nhau
1. Tạo RDDs
- 2 cách tạo RDDs
Sử dụng parallelize()
7 | Page
Tải từ external storage
2. RDD Operations
- Hai loại operations
Chuyển đổi: các hoạt động trả về RDD mới, dụ: map(), filter()
Hành động: các thao tác trả về một kết quả cho chương trình điều khiển
hoặc ghi vào bộ nhớ như count(), first()
- Transformation
Spark theo dõi sự phụ thuộc giữa các RDD, được gọi biểu đồ dòng (inline
graph)
3. Common Transformation and Actions
8 | Page
- 2 bảng Transformation 2 bảng Actions
4. Persistence (Caching)
-
Zeppelin notebook
5. Pair PDD
- Cặp key-value
Spark Streaming
9 | Page
- Kiểu dữ liệu Discretized Stream (DStream)
- Dynamic Load Balancing
Đưa ra danh sách các từ số lần xuất hiện
Đưa ra danh sách các từ trong 30s gần nhất
Machine Learning
-
GraphX
-
10 | Page
11 | Page
| 1/11

Preview text:

Introduction to Big Data Storage & Processing Hệ số: Lec1: 1. How big is big data? (Hadoop và Spark) Bì Data 5V
Velocity (speed of generating data)– Variety(types and forms of data) –
Value(potential for …) – Veracity (level of quality, accuracy and uncertainty) –
Volume (vast amouns of data, how large can scale?) - Big data technology stack
Data => Scalable Data Storage => Data Ingestion and Processing =>
Transform question to algorithm => Asking the right question => (Management,
Seciruty, Privacy, Governmance) Value. - Scalable data management Scalability Accessibility Transparency Availability
- Scalable data ingestion and processing
Data ingestion (nhập dữ liệu)
Data processing (xử lý dữ liệu) - Scalable analytic algorithms Challenges Big volume Big dimensionality Realtime processing Scaling-up ML algorithms
- Data engineers (làm việc backend nhiều hơn, infrastructure) vs. Data scientists
(làm việc nhiều hơn với khách hàng). - 1 | Page Lec2: Hadoop Ecosystem
1. BTVN (HDFS, chạy Ví dụ về Hadoop)
Hadoop hình thành từ 2008 do Yahooh phát triển
Apache Hadoop thân thiện hơn MapReduce (của Google)
MapReduce là mô thức xử lý dữ liệu mặc định trong Hadoop - Mục tiêu chính
Lưu trữ dự liệu khả mở (scalability), tin cậy (reliability) Powerfull data processing (Efficient visualization)
- Hadoop lấy cảm hứng từ Bài báo Page Rank của Google (Map Reduce).
Hadoop Common: Các tiện ích chung hỗ trợ các thành phần của Hadoop
Hadoop YARN: framework quản lý tài nguyên và lập lịch trong cụm Hadoop IMR of Amazon
*Hadoop mở rộng bằng kỹ thuật scale-out
- Có một máy master (nhiều máy master phụ)
- HDFS: Hadoop Distributed File System
Hardware failure is the norm rather than the exception.
Detection of faults and quick, automatic recovery from them is a core architectural goal of HDFS.
The emphasis is on high throughput of data access rather than low latency of data access
It should provide high aggregate data bandwidth and scale to hundreds of nodes in a single cluster
This assumption simplifies data coherency issues and enables high throughput data access.
Moving Computation is cheaper than moving data
HDFS has a master/slave architecture. An HDFS cluster consists of a single NameNode, a master server
The architecture does not preclude running multiple DataNodes on the same
machine but in a real deployment that is rarely the case. 2 | Page - MapReduce:
Simplicity – Flexbiltity – Scalability
A MapReduce job = {Isolated Tasks} n
Lec3: HDFS (Hadoop Distributed File System) 1. Overview 2. Kiến trúc HDFS
- Metadata in memory: gồm các list, thuộc tính cơ bản như thời gian khởi tạo - Transaction Log
Rack gồm nhiều Node, Node chứa nhiều Board (Block), đơn vị nhỏ nhất là chunk
Không nên để 2 Board cùng 1 Rack
Lec4: (MapReduce - Parallel Programming with Hadoop) 3 | Page
1. Số Mapper bằng số chunk đầu vào
Không cấu hình được số Mapper (do lượng dữ liệu đầu vào)
Cho những Mapper chạy trên đúng nốt chứa dữ liệu (Locality)
2. Số lượng Reducer bằng số lượng máy 3.
Master Server chia M nhiệm vụ map cho các máy và giám sát các tiến trình.
Nhiệm vụ map đọc dữ liệu cục bộ, lưu trữ kết quả map lưu trên cục bộ
(không lưu vào HDFS để ko nhân bản nên, sử dụng sẽ bỏ đi).
Pha Shuffle giao cho Reducers những buffers, những cái đọc và xử lý từ xa bởi Reducers.
Reducers cho ra kết quả trên bộ lưu trữ ổn định (HDFS). 4. Fault Tolerance 2.
Map Input: (StudentName, ClassID)
Map Output: ((ClassA, 1),(ClassA, 1),..(ClassF, 1),(ClassF, 1),..)
Reduce input: ((ClassA,[1, 1,..]], ... (ClassF,[1, 1,..]),..)
Reduce output: ((ClassA, num_stu_A),..(ClassF, num_stu_F),..) 2.
Map Input: (StudentName, classID) Map output: (class_code, 1)
Reduce input: (class_code, [1,1,...])
Reduce output: (classID, numberOfStudent) 3.
Map Input: (LastName, departmentID), (departmentID, departmentName);
Map output: (departmentID, Lastname), (departmentID, departmentName);
Reduce Input: (departmentID, [Lastname, departmentName]);
Reduce Output: (Lastname, departmentName) 4 | Page 4. Map Input: (node, [adjacents]) Map Output: (adjacent, node)
Reduce input: (adjacent, [nodes])
Reduce output: (adjacent, [nodes])
Map Input: (3, [1, 2]), (1, [2, 3]).
Map Output: (1, [3]), (2, [3]), (2, [1]), (3, [1])
Reduce Input: (1, [3]), (2, [1]), (2, [3]), (3, [1])
Reduce Output: (1,[3]) (2, [1, 3]) (3, [[1]) 5.
Map Input: (S1, [S2,S3]), (S2, [S1]), (S3, [S1,S2]) (S1, W1), (S2, W2), (S3, W3) (S1, n1), (S2, n2), (S3, n3)
Map output: (S2, W1/n1), (S3, W1/n1), (S1, W2/n2), (S1, W3/n3), (S2, W3/n3)
Reduce input: (S1, [W2/n2, W3/n3]), (S2, [W1/n1, W3/n3]), (S3, [W1/n1])
Reduce output: (S1, W11=W2/n2+W3/n3), (S2, W22=W1/n1+W3/n3), (S3, W33=W1/n1) Lec4: No SQL 1. Key-Value Lec4: CAP theorem 1. Tăng database - Scale up (vertically) Tăng một máy - Scale out (horizontally) Tăng số lượng máy - Consistency: nhất quán - Availability: sẵn sàng
- Partition Tolerance: đáp ứng phân vùng
- Dữ liệu quan hệ dựa trên nguyên lý ACID (Atomicty, Consistency, Isolation, Durability) 5 | Page
Lec4: Elasticsearch & Kibano - Dựa trên full-text search - Dựa trên Lucene library
- Interface HTTP và mô hình tài liệu JSON
- Kibana hỗ trợ hiển thị cho Elasticsearch Lec5: DHT
1. Distributed Hash Table (DHT)
- Mỗi máy có 1 bảng look-up gồm nhiều cặp key-value 6 | Page Lec6: Spark 1. Spark là gì?
Spark là một công cụ phân tích hợp nhất để xử lý dữ liệu quy mô lớn.
Kết hợp giữa SQL, Streaming và phân tích phức tạp.
Resilient Distributed Dataset – RDD
Tập hợp các đối tượng phân tán bất biến (immutable)
Chia thành nhiều phân vùng (partitions) => có thể được tính trên các nút khác nhau 1. Tạo RDDs - 2 cách tạo RDDs Sử dụng parallelize() 7 | Page Tải từ external storage 2. RDD Operations - Hai loại operations
• Chuyển đổi: các hoạt động trả về RDD mới, ví dụ: map(), filter()
• Hành động: các thao tác trả về một kết quả cho chương trình điều khiển
hoặc ghi nó vào bộ nhớ như count(), first() - Transformation
• Spark theo dõi sự phụ thuộc giữa các RDD, được gọi là biểu đồ dòng (inline graph)
3. Common Transformation and Actions 8 | Page
- 2 bảng Transformation nà 2 bảng Actions
4. Persistence (Caching) - Zeppelin notebook 5. Pair PDD - Cặp key-value Spark Streaming 9 | Page
- Kiểu dữ liệu Discretized Stream (DStream) - Dynamic Load Balancing
Đưa ra danh sách các từ và số lần xuất hiện
Đưa ra danh sách các từ trong 30s gần nhất Machine Learning - GraphX - 10 | Page 11 | Page