1. Trang chủ
  2. » Công Nghệ Thông Tin

MÔ HÌNH TỔNG THỂ BIG DATA

14 1,5K 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 1,21 MB

Nội dung

Mô hình tổng thế Big DataSơ đồ kết nối MySQL Apache Kafka Apache Spark Apache Storm Mongo DBTìm hiểu về phương thức hoạt động của:Apache Kafka Apache SparkApache StormThuật toán thu dữ liệu thô xử lý

Trang 1

MÔ HÌNH BIG DATA

1 Mô hình kỹ thuật tổng thể

1.1 Mô hình

Real time Data

(Sensor,

IoT,GPS« )

Batch Data

(Web,

Application,Social

feed )

Apache Kafka

Apache Storm

Apache Spark

Real time View Elatic search

MongoDB

OPERATION (Zookeeper)

Spark Streaming

User device (Cellphone, Tablet,« )

Analytics Dashboard HDFS (Hadoop Distributed File System)

1.2 Mô tả

1.1.1 Dữ liệu đầu vào (input data)

Tùy vào mục đích và ứng dụng mà có thể chia thành 2 dạng khác nhau:

- Batch data: dữ liệu thu thập từ web, application, social network… thường được xử lý một

cách tuần tự, không đòi hỏi tốc độ xử lý quá cao

- Real time data: dữ liệu thu thập từ sensor, GPS, các hệ thống IOT,…đòi hỏi tốc độ xử lý cao,

cho phản hồi ngay lập tức

1.1.2 Data Collecting

Apache Kafka làm nhiệm vụ thu thập dữ liệu từ các nguồn thông qua các API đổi với cả Batch Data và Realtime Data

1.1.3 Processing

- Batch Data sẽ được xử lý bởi Apache Spark

- Realtime data sẽ được xử lý bởi Spark Streaming hoặc Apache Storm

Trang 2

1.1.4 Storage

Dùng MongoDB

1.1.5 Operation

- Zookeeper quản lý Apache Akafka và Apache Storm

- Apache Spark không chịu quản lý của Zookeeper, Apache Spark có Spark Core để tự quản lý

cho riêng minh

2 Mô hình kinh doanh tổng thể

1.3 Mô hình

INPUT DATA

Hybrid box

VOD

Ad network

Mobile App

(Android, iOS)

Web App

(TV24)

DATA COLLECTING

Process collect

Process for realtime data (1)

Process for batch data (1)

Process for realtime data (2)

Process for batch data (2)

Process for realtime data (n)

Process for batch data (n)

STORAGE

NoSQL

USER

Analytics Dashboard

Customer

Orther deparment User device

Output data based on customer fee and demand Output data based on customer fee and demand

1.4 Mô tả

2.1.1 Input data

SCTV hiện đang có hơn 2.3 triệu khách hàng sử dụng các dịch vụ truyền hình, internet do chính SCTV phát triển Do đó, SCTV nắm giữ một khối lượng dữ liệu thô đầu vào rất lớn, các dữ liệu này thu tập từ các nguồn:

Trang 3

- Hybrid STB

- VOD

- Ad network

- Mobile app (Android và iOS)

- Web app (TV24)

2.1.2 Data collecting

- Dữ liệu thu thập từ các nguồn phân tán và được tiếp nhận tại server làm nhiệm vụ thu thập dữ

liệu (Apache Kafka) của SCTV thông qua các API kết nối tới các app, các dịch vụ do SCTV cung cấp

- Dữ liệu ngay khi thu tập này chủ yếu là dữ liệu thô (raw data) nhưng đã có thể kinh doanh vì

nó chứa thông tin khách hàng như: mail, số điện thoại…Từ các thông này, đã có thể cung cấp cho đối tác muốn quảng cáo, makerting trực tiếp đến khách hàng

2.1.3 Process

Sau khi có được dữ liệu thô, dữ liệu sẽ được chuyển đến các server chuyên dụng để xử lý Có hai hình thức xử lý dữ liệu:

- Realtime data: dành cho các ứng dụng đòi hỏi phải có đáp ứng nhanh, tức thời như GPS,

Sensor, IoT…

- Batch data: dành cho ứng dụng không đòi hỏi tốc độ xử lý cao

Dữ liệu tại đây sẽ trải qua các giai đoạn phân tích (analytics), máy học (machine learn)…để tiến hành trích xuất được nhu cầu, hành vi của khách hàng Tạo tiền đề để SCTV cung cấp các dịch vụ phù hợp với mong muốn khách hàng Bên cạnh đó, SCTV còn có thể hợp tác với các đối tác thông qua nguồn tài nguyên dữ liệu này

2.1.4 Storage

Lưu trữ dữ liệu đã phân tích

Trang 4

3 Quy trình xử lý (data pipeline)

1.5 Apache Kafka

3.1.1 Mô hình multiple nodes – multiple broker clusters

PRODUCERS

PRODUCERS

PRODUCERS

ZooKeeper

NODE 1

BROKER 1

BROKER 2

NODE 2 (Kakfa cluster) BROKER 1

BROKER 2

CONSUMERS

CONSUMERS

CONSUMERS

TOPIC

ZOOKEEPER (Stores information about cluster status and consumer offsets)

Một Kafka cluster gồm 5 thành phần chính:

- Topic:

(published) bởi các message producers

Trang 5

 Trong Kafka, Topics được phân vùng và mỗi phân vùng sẽ đại diện bằng một trình tự không thể thay đổi thứ tự của message

trong phân vùng sẽ được gán một sequential ID duy nhất gọi là offset

BROKER

KAFKA TOPIC

Partition 1

Partition 2

Partition 3

Partition 4

- Broker:

Một Kafka cluster (Node) chứa một hoặc nhiều servers mà có thể có một hoặc nhiều server process running được gọi là Broker Topic được tạo trong khi broker processes

- ZooKeeper:

phân tầng của name space của các thanh ghi dữ liệu (data register – gọi là znodes), giống như một file system

liệu liên kết với nó và znodes bị giới hạn số dữ liệu nó có thể có ZooKeeper được

Trang 6

thiết kế để lưu trữ dữ liệu phối hợp: status information, configuration, location information,…

- Producers:

Publish data cho các topic bằng cách chọn các phân vùng thích hợp trong Topic

- Consumer:

Là các Application hoặc Process nhận dữ liệu từ đầu ra topic

3.1.2 Mô hình input – output chi tiết

PRODUCERS

PRODUCERS

PRODUCERS

CONSUMERS (Realtime data)

CONSUMERS (Batch data)

RAW DATA

(Mobile app)

RAW DATA

(Ad network)

RAW DATA

(Web app)

API

API

API

Partition 1

Partition 2

ZooKeeper

3.1.3 Programming

3.1.3.1 Write producers

a) Mô hình

Trang 7

DATA

Create message messagePublish KAFKA

CLUSTER

b) Chi tiết:

- Producers là một application để create message và publish message vào Kafka broker.

- Producer kết nối tới bất kỳ alive nodes và requests metadata về leaders cho các phân vùng

(partitions) của topic Điều này cho phép producer đẩy message trực tiếp cho lead broker cho các phân vùng

3.1.3.2 Write consumers

a) Mô hình:

CONSUMER KAFKA

CLUSTER

Subscribe Message

Process

b) Chi tiết:

- Consumers là những ứng dụng sử dụng các message được published bởi Kafka producers và

process data extract từ nó

Trang 8

- Sơ đồ trên giải thích high-level working của Kafka consumer trong việc sử sụng các message

message (message partition) cụ thể bằng cách chỉ rõ các message offset (beginning position of message offset)

message sau khi vị trí hiện tại của nó (current position) trong Kafka log (Kafka internal data repsentation)

về leaders cho phân vùng của topic (partitions of a topic)

tiêu thụ (consumed) bởi một consumer duy nhất

comsumed tiếp theo Điều này thể hiện trạng thái về những gì đã được tiêu thụ cũng như cung cấp sự linh hoạt khi cố tình quay lại một offset cũ và re-consuming partition 1.6 Apache Spark

3.1.4 Giới thiệu

- Apache Spark là một công nghệ điện toán cụm nhanh như chớp, được thiết kế để tính toán

nhanh

- Nó dựa trên Hadoop MapReduce và nó mở rông mô hình MapReduce để sử dụng một cách

hiệu quả cho nhiều loại tính toán, trong đó bao gồm các truy vấn tương tác (interactive

queries) và stream processing Các tính năng chính của Spark là điện toán cụm trong bộ nhớ (in-memory cluster computing) làm tăng tốc độ xử lý của một ứng dụng

- Spark không chỉ hỗ trợ “Map” và “Reduce” Nó cũng hỗ trợ các truy vấn SQL (SQL queries),

Streaming data, Machine learning (ML), và các đồ thị thuật toán (Graph algorithms)

Sơ đồ dưới đây cho thấy 3 cách để Spark có thể được built với Hadoop components:

Trang 9

Có 3 cách để triển khai Spark như:

- Standalone: Spark Standalone triển khai độc lập có nghĩa là Spark chiếm vị on top của HDFS (Hadoop Distributed File System) và không gian được phân bổ cho HDFS, một cách rõ

ràng

- Hadoop Yarn: triển khai đơn giản, spark chạy trên Yan không cần cài đặt trước

(pre-installation) hoặc yêu cầu root access Nó giúp tích hợp Spark vào Hadoop (Hadoop

ecosystem) hoặc Hadoop stack

- Spark trong MapReduce (SIMR) được sử dụng để khởi động spark job ngoài triển khai

standalone Với SIMR, người dùng có thể bắt đầu Spark và sử dụng shell cùa nó mà không cần bất kỳ quyền admin

Minh họa sau đây mô tả các thành phần khác nhau của Spark:

Trang 10

- Spark Core là engine chung cho nền tảng spark và tất cả các chức năng khác được xây dựng

dựa trên nó Nó cung cấp tính toán In – memory và tập hợp các dữ liệu tham chiếu đến các hệ thống lưu trữ bên ngoài

- Spark SQL là một thành phần on top của Spark Core đưa ra một khái niệm dữ liệu trừu tượng

mới là SchemaRDD, hỗ trợ dữ liệu có cấu trúc (structured) và bán cấu trúc (semi –

structured)

- Spark Streaming thúc đẩy Spark Core lập lịch trình nhanh chóng để thực hiện phân tích trực

tuyến Nó ingest data trong mini-batches và thực hiện chuyển đổi RDD (Resilient Distributed Databased – Phân tán dữ liệu đàn hồi) trên những mini-batches của data

- Mllib (Machine Learning Library) là một machine learning framework phân phối trên Spark

vì kiến trúc Spark dựa trên bộ nhớ phân tán

- GraphX là một graph-processing phân tán trên của Spark Nó cung cấp một API để thể hiện biểu đồ tính toán rằng có thể mô hình hóa đồ thị người dùng định nghĩa bằng cách sử dụng Pregel API trừu tượng

Trang 11

3.1.5 Apache Spark tích hợp với Apache Kafka

- Spark streaming API cho phép khả năng mở rộng, thông lượng cao, chịu lỗi xử lý của các dòng dữ liệu trực tiếp Dữ liệu có thể được hấp thụ từ nhiều nguồn như Kafka, Flume,

Twitter, vv, và có thể được xử lý bằng các thuật toán phức tạp như các chức năng cao cấp như map, reduce, join and window Cuối cùng, xử lý dữ liệu có thể được đẩy ra để hệ thống tập tin, cơ sở dữ liệu, và live dash-boards Resilient Distributed Datasets (RDD) là một cấu trúc dữ liệu cơ bản của Spark Đây là một bộ sưu tập phân phối bất biến của các đối

tượng Mỗi bộ dữ liệu trong RDD được chia thành các phân vùng hợp lý, mà có thể được tính trên các nút khác nhau của cluster

- Kafka là messaging và integration nền tảng cho Spark streaming Kafka hành động như một trung tâm trung tâm cho dòng thời gian thực của dữ liệu và được xử lý bằng các thuật toán phức tạp trong Spark Streaming Một khi dữ liệu được xử lý, Spark streaming có thể được công bố kết quả vào thêm một chủ đề Kafka hoặc lưu trữ trong HDFS, cơ sở dữ liệu hoặc biểu đồ

1.7 Apache Storm

3.1.6 Giới thiệu

- Apache Storm thường được sử dụng để tính toán dữ liệu thời gian thực.

- Storm cho phép chạy “topologies” (graphs of computation) trên “storm cluster”.

Trang 12

- Storm cluster bao gồm:

toán thực tế, thì running on supervisor nodes)

NIMBUS

ZooKeeper

ZooKeeper

ZooKeeper

Supervisor Supervisor Supervisor

Supervisor

Supervisor

- Một storm topology (graph of computation) là một loại real – time computation “stream”.

- Data tuples trao đổi dữ liệu giữa các đơn vị tính toán (computation units), gọi là “spouts” và

“bolts”

- Storm topology được đóng gói trong một file jar, sau đó được submitted tới Nimbus node.

Trang 13

Storm Topology

NIMBUS

ZooKeeper

ZooKeeper

ZooKeeper

Supervisor Supervisor Supervisor

Supervisor

Supervisor

Submit

Spout

Spout

Bolt

Bolt

Bolt

Bolt

- VD: một basic totology của Storm

SPOUT

³ the cow jumped over the moon´

³ an apple a day keeps the doctor away´

³ four score and seven years ago´

³ snow white and the seven dwarfs´

³ i am at two nature´

Splitter

³ snow´ , ³ white´ ,

³ and´³ the´ , ³ seven´ ,

³ dwarfs´

Splitter

³ four´ , ³ score´,

³ and´ , ³ seven´,

³ years´ , ³ ago´

Splitter

³ the´ , ³ cow´,

³ jumped´, ³ over´,

³ the´ , ³ moon´

Counter

³ snow´ - 1

³ four´ - 1

Counter

³ white´ - 1

³ score´ - 1

Counter

³ and´ - 2

³ years´ - 1

Counter

³ the´ - 3

³ cow´ - 1

Couter

³ dwarfs´ - 1

³ over´ - 1

³ moon´ - 1

Counter

³ seven´ - 2

³ jumped´ - 1

Trang 14

3.1.7 Apache Storm tích hợp với Apache Kafka

Kafka Consumer

(realtime data)

Kafka Spout

Kafka Spout

BOLT

BOLT

BOLT

BOLT

BOLT

BOLT

BOLT

MongoDB

USER

User device (Cellphone, Tablet,« ) Analytics Dashboard

Ngày đăng: 25/09/2016, 01:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w