big data và hadoop

15
© 2011 IBM Corporation Big Data và MapRedure Feb. 2013 Nguyn Khiêm, [email protected] © 2011 IBM Corporation IBM Mc đích Mc đích ca bài trình bày này là gii thiutng quan vBig Data, Apache Hadoop và IBM BigInsights, là gimcho nhng bước tiếpcn sâu hơn, c ng nhưứng dng trong thc tin. Global TLE Framework 2 © 2011 IBM Corporation IBM Ni dung Knguyên Big Data MapReduce và Apache Hadoop Mô hình lp trình Hthng tp phân tán Khnăng chuli Bt đầuvi Hadoop và IBM BigInsights Tóm tt Global TLE Framework 3 © 2011 IBM Corporation IBM 4 Big Data là gì? Khilưng dliuccln (volume) Chng loidliu đadng (variety) Tc đcp nht nhanh (velocity)

Upload: developerworks-viet-nam

Post on 28-May-2015

3.927 views

Category:

Technology


2 download

DESCRIPTION

* Trang tài nguyên IBM developerWorks Việt Nam: http://www.ibm.com/developerworks/vn/ * Trang Fanpage của IBM developerWorks Việt Nam: https://www.facebook.com/developerworks.ibmvn

TRANSCRIPT

Page 1: Big Data và Hadoop

© 2011 IBM Corporation

Big Data và MapRedure

Feb. 2013

Nguyễn Khiêm, [email protected]

© 2011 IBM Corporation

IBM

Mục đích

� Mục đích của bài trình bày này là giới thiệu tổngquan về Big Data, Apache Hadoop và IBM BigInsights, là gợi mở cho những bước tiếp cậnsâu hơn, cũũũũng như ứng dụng trong thực tiễn.

Global TLE Framework

2

© 2011 IBM Corporation

IBM

Nội dung

� Kỷ nguyên Big Data

� MapReduce và Apache Hadoop

� Mô hình lập trình

� Hệ thống tệp phân tán

� Khả năng chịu lỗi

� Bắt đầu với Hadoop và IBM BigInsights

� Tóm tắt

Global TLE Framework

3 © 2011 IBM Corporation

IBM4

Big Data là gì?� Khối lượng dữ liệu cực lớn (volume)

� Chủng loại dữ liệu đa dạng (variety)

� Tốc độ cập nhật nhanh (velocity)

Page 2: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Information Sources

Point of Sale

Call Center

Customer

Users

Power User

Customers

Executive

CallCenter

TraditionalDW

Structured Information

Reporting,Trend Analysis,

Decision Making

VarietyStructured &Unstructured

VelocitySpeed of dataIn motion

analytics

VolumePetabytes,

Zetabytes

Big Data Platform

Ability to handle V3

Enable AnalyticsIn motion & At RestText, Video, Audio…

Ease of Use for Developers

Enterprise ClassGPFS, Security, Governance,Data Integration

Ease of Use for End Users

Easy Visualization

Tools

UntappedSources

At Rest Analytics

V3

Better Business Outcomes

Data Integration

© 2011 IBM Corporation

IBM

6

© 2011 IBM Corporation

IBM

Hồ Tú Bảo, bài “Dữ liệu lớn, cơ hội và thách thức lớn” trên Tia sáng, 25/1/2013

http://tiasang.com.vn/Default.aspx?tabid=111&News=6103&CategoryID=2

© 2011 IBM Corporation

IBM

Page 3: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Triết lý với Big Data?

� Đọc 100 terabytes là một “vấn đề” (chậm)

– Máy tính tiêu chuẩn (100 MBPS) ~11 ngày

– Đĩa cao cấp (10Gbit) 1 ngày

– 1000 máy tính tiêu chuẩn 15 phút!

� Thời gian tìm kiếm ngẫu nhiên trên đĩĩĩĩa là một “vấn đề”:

– 1 TB dữ liệu có 1010 bản ghi độ dài 100-byte/bản ghi

• Cập nhật 1% sẽ cần 1 tháng

• Đọc và Ghi toàn bộ mất 1 ngày*

� Một “máy” (node) là không đủ!

� Cần mở rộng “ngang” Scale-out, không phải “dọc” Scale-up!

Global TLE Framework

9

* From the Hadoop mailing list

© 2011 IBM Corporation

IBM

Mở rộng “ngang” – Khó khăn (Scaling out)

� Máy hỏng, đặc biệt nếu có nhiều máy

– Thời gian hỏng trung bình của 1 máy PC = 3 năm, 1000 máy = 1 ngày

– Siêu máy vẫn có thể hỏng và máy tính PC thường có hiệu năng cao hơn nếu

tính theo giá tiền

� Lập trình phân tán khó khăn

– Giao tiếp, đồng bộ, và deadlocks

– Khôi phục do máy hỏng

– Gỡ lỗi

– Tối ưu

� Vấn đề lại lặp lại với mỗi bài toán

� Yêu cầu: Xử lý song song với các máy tính rẻ tiền?

Global TLE Framework

10

© 2011 IBM Corporation

IBM

Cần thiết phải có mô hình mới

• Che dấu chi tiết mức hệ thống với người phát triển

– Không các điều kiện chạy đua, không tranh chấp khóa, thêm

máy không cần sửa chương trình…

• Tách biệt giữa “làm cái gì” và “làm thế nào”

– Người lập trình chỉ tập trung vào bài toán của mình (làm cái gì)

– Khung công tác (“runtime”) sẽ chịu trách nhiệm thực hiện các

việc cụ thể (làm thế nào)

Global TLE Framework

11 © 2011 IBM Corporation

IBM

Nội dung

� Kỷ nguyên Big Data

� MapReduce và Apache Hadoop

� Mô hình lập trình

� Hệ thống tệp phân tán

� Khả năng chịu lỗi

� Bắt đầu với Hadoop và IBM BigInsights

� Tóm tắt

Global TLE Framework

12

Page 4: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Giới thiệu về MapReduce

� Năm 2003 và 2004 Google đăng hai bài báo giớithiệu các thành công nổi bật của họ

– The Google File System

– MapReduce: Xử lý dữ liệu rút gọn với các bó nhiều máytính (Simplified Data Processing on Large Clusters)

� Giới thiệu cách tiếp cận việc xử lý dữ liệu khốilượng lớn, được biết với tên MapReduce

“Một giao diện mạnh và đơn giản cho phép tính toán phân tán, song song, tự động trên quy mô lớn, với việc triển khai giaodiện này nó đã đạt được hiệu năng cao với bó các máy tínhPC thông thường”

Global TLE Framework

13 © 2011 IBM Corporation

IBM

MapReduce dùng được vào việc gì?

� Nhiều dữ liệu, định hướng xử lý khối lượng lớn

� Ví dụ:

– Index building at Google and Yahoo!

– Statistical machine translation

– Spam detection

– Ad optimization

– Natural Language Processing

– Image analysis

– OCR

– IBM’s Watson

– IBM’s latest w3 search (GumShoe)

Global TLE Framework

14

© 2011 IBM Corporation

IBM

MapReduce không dùng vào việc gì?

� Nó không thay thế chiến lược Database & Data Warehouse của bạn

� Nó không thiết kế cho các xử lý sự kiện phức tạp theo thờigian thực

� Không tốt cho sử lý giao dịch (truy cập ngẫu nhiên)

� Không tốt cho bài toán tuần tự

� Không tốt khi xử lý nhiều tệp nhỏ

� Không tốt cho tính toán hiệu năng cao với ít dữ liệu

� Nó không phải là đũũũũa thần!

Global TLE Framework

15 © 2011 IBM Corporation

IBM

Page 5: Big Data và Hadoop

© 2011 IBM Corporation

IBM

MapReduce

Global TLE Framework

17

Tính toán truyền thống

Tính toán MapReduce

© 2011 IBM Corporation

IBM

MapReduce, thực tế

Global TLE Framework

18

Nhiều nodes, ít giao tiếp giữa các nodes,

Một số có thể chậm và hỏng

© 2011 IBM Corporation

IBM

Nội dung

� Kỷ nguyên Big Data

� MapReduce và Apache Hadoop

� Mô hình lập trình

� Hệ thống tệp phân tán

� Khả năng chịu lỗi

� Bắt đầu với Hadoop và IBM BigInsights

� Tóm tắt

Global TLE Framework

19 © 2011 IBM Corporation

IBM

Mô hình lập trình MapReduce

� Mô hình lập trình

– Lấy cảm hứng từ lập trình hàm chức năng

– Cho phép biểu diễn các tính toán phân tán trên khốilượng dữ liệu rất lớn

� Khung-công-tác thực hiện (Execution framework)

– Thiết kế cho xử lý khối lượng dữ liệu rất lớn

– Thiết kế để chạy trên bó các máy tính thông thường

Global TLE Framework

20

“Trong Hadoop, bạn định nghĩa các việc thực hiện map và reduce bằng cách mở rộng các lớpcơ sở riêng của Hadoop. Các việc thực hiện này được gắn chặt với nhau bằng một cấuhình quy định chúng, cùng với các định dạng đầu vào và đầu ra.”

Bài “Phát triển Java 2.0: Phân tích dữ liệu lớn bằng MapReduce của Hadoop” trên dW

Page 6: Big Data và Hadoop

© 2011 IBM Corporation

IBM

MapReduce, mô hình lập trình

� Xử lý các bản ghi theo cặp khóa-giá trị (key-value)

� Hàm Map:

(Kin, Vin) ���� list(Kinter, Vinter)

� Hàm Reduce:

(Kinter, list(Vinter)) ���� list(Kout, Vout)

� Có các bước đệm giữa 2 pha Map và Reduce

� Pha sắp thứ tự (Sort) chuyển và nhóm các khóa(K) giống nhau

Global TLE Framework

21 © 2011 IBM Corporation

IBM

Pha Map

Cặp đầu vào

(key,value)

Cặp đầu ra

(key,value)

(key,value)

(key,value)

(không hoặc nhiều cặp đầu ra)

Global TLE Framework

22

Chỉ với các phép toán đặc trưng trên cặp key-value!

Mỗi “con voi” làm việc với cặp đầu vào, không hề biết các con voi khác

© 2011 IBM Corporation

IBM

Pha Map, ví dụ đếm số từ

Global TLE Framework

23

(line1, “Hello there.”)

(line2, “Why, hello.”)

(“hello”,1)

(“there”,1)

(“why”,1)

(“hello”,1)

© 2011 IBM Corporation

IBM

Pha Sort, ví dụ đếm từ

Global TLE Framework

24

(“hello”, 1)

(“hello”, 1)

(“there”, 1)

(“why”, 1)

Page 7: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Pha Reduce, ví dụ đếm từ

Global TLE Framework

25

(“hello”, 1)

(“hello”, 1)

(“there”, 1)

(“why”, 1)

(“hello”, 2)

(“there”, 1)

(“why”, 1)

© 2011 IBM Corporation

IBM

MapReduce, từ đầu đến cuối (đếm từ)

Global TLE Framework

26

© 2011 IBM Corporation

IBM

Kiến trúc của khung-công-tác MapReduce

� Kiến trúc Khách-Chủ (Master-slave)

� Master: JobTracker

– Chấp nhận công việc đệ trình của người sử dụng

– Gán công việc Map và Reduce cho TaskTrackers

– Giám sát công việc và trạng thái của TaskTracker

� Slaves: TaskTrackers

– Chạy các công việc Map và Reduce

– Quản lý lưu trữ và truyền các đầu ra trung gian

� Thuật ngữ: ClientJob, JobTracker, TaskTracker

Global TLE Framework

27 © 2011 IBM Corporation

IBM

Kiến trúc của khung công tác MapReduce

Global TLE Framework

28

Client JobTracker

TaskTrackers

• Khởi động Map và Reduce Tasks

• Quản lý đầu ra trung gian

• Chạy các hàm Run Map và Reduce

• Báo các tiến độ

• Gửi các Jobs• Thu trạng thái

• Chấp nhận MR jobs

• Gán các tasks

• Xử lý hỏng hóc

TaskTask

Task

TaskTask

Task

TaskTask

Task

TaskTask

Task

Page 8: Big Data và Hadoop

© 2011 IBM Corporation

IBMWhat is MapRedure clip

© 2011 IBM Corporation

IBM

Nội dung

� Kỷ nguyên Big Data

� MapReduce và Apache Hadoop

� Mô hình lập trình

� Hệ thống tệp phân tán (HDFS)

� Khả năng chịu lỗi

� Bắt đầu với Hadoop và IBM BigInsights

� Tóm tắt

Global TLE Framework

30

© 2011 IBM Corporation

IBMGlobal TLE Framework

31

The Modern Data Operating Systemhttps://www.ibm.com/developerworks/vn/library/data/2013Q1/dm-1209hadoopbigdata/

Dự án Hadoop của Apache có haithành phần cốt lõi, kho lưu trữtệp gọi là Hadoop Distributed File System (HDFS – Hệ thốngtệp phân tán Hadoop) và khungcông tác lập trình gọi làMapReduce.

© 2011 IBM Corporation

IBM

Hệ thống tệp phân tán Hadoop Distributed File System (HDFS)

Global TLE Framework

32

� Lấy cảm hứng từ Google File System

� Tệp chia thành Khối (block), đặc trưng

là 64 MB hoặc lớn hơn (128MB)

� Khối được chép trên nhiều DataNodes

(dư thừa)

� Một NameNode lưu trữ metadata (tên

tệp, ví trí khối, v.v..)

� NameNode giữ metadata trong bộ nhớvới việc định kỳỳỳỳ ghi lên đĩĩĩĩa. Có thể cóNameNode thứ cấp (an toàn)

� Tối ưu hóa cho tệp lớn, đọc tuần tự

� Các tệp chỉ được thêm vào (append-only), không ghi đồng thời vào cùngmột khối

� Dữ liệu sửa với CRC32 (check sum 521B)

� Các thuật ngữ: Block, Node, Rack, Hadoop cluster, Namenode, Datanode

Page 9: Big Data và Hadoop

© 2011 IBM Corporation

IBMGlobal TLE Framework

33

Page 17- 27 of 1.5 Hadoop

© 2011 IBM Corporation

IBM

Kiến trúc của Apache Hadoop

Global TLE Framework

34

© 2011 IBM Corporation

IBM

Giao diện dòng lệnh của HDFS

� Nhiều lệnh POSIX-like (portable operating system for UNIX)

• cat, chgrp, chmode, chown, cp, du, ls, mkdir, mv, rm, stat, tail

� Một số lệnh riêng của HDFS

• CopyFromLocal, copyToLocal, get, getmerge, put, setrep

� Ví dụ

© 2011 IBM Corporation

IBM

Thực hiện Hadoop MapReduce job

Global TLE Framework

36

Page 21-30 of 1.6 MapRedure.pdf

https://www.ibm.com/developerworks/vn/library/java/201301/j-javadev2-15/

Page 10: Big Data và Hadoop

© 2011 IBM Corporation

IBMWhat is Hadoop clip

© 2011 IBM Corporation

IBM

Outline

� Kỷ nguyên Big Data

� MapReduce và Apache Hadoop

� Mô hình lập trình

� Hệ thống tệp phân tán

� Khả năng chịu lỗi

� Bắt đầu với Hadoop và IBM BigInsights

� Tóm tắt

Global TLE Framework

38

© 2011 IBM Corporation

IBM

Khả năng chịu lỗi: sự cố Task, TastTracker, JobTracker

Global TLE Framework

39 © 2011 IBM Corporation

IBM

Khả năng chịu lỗi: Sự cố Task

Global TLE Framework

40

Page 11: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Khả năng chịu lỗi: Sự cố TaskTracker

Global TLE Framework

41 © 2011 IBM Corporation

IBM

Khả năng chịu lỗi: Sự cố JobTracker

Global TLE Framework

42

© 2011 IBM Corporation

IBM

Nội dung

� Kỷ nguyên Big Data

� MapReduce và Apache Hadoop

� Mô hình lập trình

� Hệ thống tệp phân tán

� Khả năng chịu lỗi

� Bắt đầu với Hadoop và IBM BigInsights

� Tóm tắt

Global TLE Framework

43 © 2011 IBM Corporation

IBM

Bắt đầu với Hadoop

� Tải về và cài đặt

– Typically unzip and set JAVA_HOME

– Sử dụng kịch bản vỏ (shell scripts) và các dịch vụ

• Dễ dàng với Linux và OS X

• Windows thì cần Cygwin

� Sử dụng một máy ảo

– Dễ nhất để bắt đầu

� Eclipse IDE là tuyệt vời cho phát triển

– Nhập khẩu jars ở mức cao nhất hoặc sử dụng plugin

– Plugin có sẵn để kết nối với bó máy ở xa

� Sử dụng InfoSphere BigInsights của IBM

Global TLE Framework

44

Page 12: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Tiếp cận chung cho việc phát triển ứng dụng (job)

� Hiểu định dạng/cấu trúc dữ liệu

� Viết các hàm map và reduce

– Sử dụng kiểm đơn vị (unit tests!)

� Viết trình điều khiển để chạy một ứng dụng (job)

– Ứng dụng có thể chạy trên IDE của bạn với một tập con dữ liệu

– Khả năng sử dụng gỡ lỗi (debugger!)

� Khi ứng dụng làm việc, cần phải chạy trên bó các máy và tinhchỉnh nếu cần thiết

Global TLE Framework

45 © 2011 IBM Corporation

IBM

Entry Points are Accelerated by Products Within theBig Data Platform

BI / Reportin

g

BI / Reporting

Exploration / Visualization

FunctionalApp

IndustryApp

Predictive Analytics

Content Analytics

Analytic Applications

IBM Big Data Platform

Systems Management

Application Development

Visualization & Discovery

Accelerators

Information Integration & Governance

HadoopSystem

Stream Computing

Data Warehouse

2 – Analyze Raw Data

InfoSphereBigInsights

5 – Analyze Streaming Data

InfoSphere Streams

1 – Unlock Big Data

IBM Vivisimo

3 – Simplify your warehouse

IBM Warehouse Solutions

4 – Reduce costs with Hadoop

InfoSphereBigInsights

� IBM Vision:– Data-in-Motion ���� Velocity & Variety– Data-at-Rest ���� Volume & Variety

© 2011 IBM Corporation

IBM

IBM InfoSphere BigInsights editions

� The Basic edition is free and has a few more features than just Hadoop. It provides a fully tested environment with other open source components..

� Enterprise edition is fee-based(AI members should be able to use the Enterprise edition at no cost as long as it’s used for teaching purposes or research purposes)

Download:

ibm.com/software/data/infosphere/biginsights/basic.html

© 2011 IBM Corporation

IBM

Hadoop components included in BigInsights 1.2

Download:

ibm.com/software/data/infosphere/biginsights/basic.html

Page 13: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Achieve scale:

By partitioning applications into software components

By distributing across stream-connected hardware hosts

Infrastructure provides services for

Scheduling analytics across hardware hosts,

Establishing streaming connectivity

Transform

Filter / Sample

Classify

Correlate

Annotate

Where appropriate:

Elements can be fused together

for lower communication latency

���� Continuous ingestion

���� Continuous analysis

How Streams Works

© 2011 IBM Corporation

IBM

What is Streams Processing Language?

� Designed for stream computing

– Define a streaming-data flow graph

– Rich set of data types to define tuple attributes

� Declarative

– Operator invocations name the input and output streams

– Referring to streams by name is enough to connect the graph

� Procedural support

– Full-featured C++/Java-like language

– Custom logic in operator invocations

– Expressions in attribute assignments and parameter definitions

� Extensible

– User-defined data types

– Custom functions written in SPL or a native language (C++ or Java)

– Custom operator written in SPL

– User-defined operators written in C++ or Java

© 2011 IBM Corporation

IBM

Nội dung

� Kỷ nguyên Big Data

� MapReduce và Apache Hadoop

� Mô hình lập trình

� Hệ thống tệp phân tán

� Khả năng chịu lỗi

� Bắt đầu với Hadoop và IBM BigInsights

� Tóm tắt

Global TLE Framework

51 © 2011 IBM Corporation

IBM

Tóm tắt

� MapReduce giấu sự phức tạp của mô hình lập trình cho làmviệc phân tán và khả năng chịu lỗi

� Triết lý thiết kế:

– Mở rộng khả năng, giảm lo ngại về phần cứng

– Rẻ hơn, cấu hình phần cứng thấp, giá lập trình và quản trịthấp

� MapReduce không phù hợp với mọi vấn đề, nhưng khi nóđược dùng sẽ tiết kiệm được thời gian

� Điện toán đám mây sẽ làm việc sử dụng Hadoop dễ dànghơn

Global TLE Framework

52

Page 14: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Resources• Hadoop: http://hadoop.apache.org/core/

• Video: http://www.ibmbigdatahub.com/videos

• IBM Big Insights: http://www-01.ibm.com/software/data/infosphere/biginsights/

• Pig: http://hadoop.apache.org/pig

• Hive: http://hadoop.apache.org/hive

• Video tutorials: http://www.cloudera.com/hadoop-training

• Amazon Web Services: http://aws.amazon.com/

• Google Code University Distributed Systems: http://code.google.com/edu/parallel

• Amazon Elastic MapReduce guide:http://docs.amazonwebservices.com/ElasticMapReduce/latest/GettingStartedGuide/

• Big Data University: bigdatauniversity.com

• Video:https://www.ibm.com/developerworks/mydeveloperworks/wikis/home/wiki/BigInsights/page/Video%20Guide?lang=en

Global TLE Framework

53 © 2011 IBM Corporation

IBM

Resources

Global TLE Framework

54

- Hadoop Fundamentals (BD001)

- InfoSphere BigInsights Essentials using Apache Hadoop(DW602)

Giáo trình có liên quan(chương trình AI)

https://www.ibm.com/developerworks/vn/library/l-hadoop-1/

Xử lý dữ liệu phân tán bằngHadoop, Phần 1: Khởi đầu (2, 3)

http://www.ibm.com/developerworks/vn/library/12/os-mapreducesql/index.html

Sử dụng các ngôn ngữ như-SQL với khung công tácMapReduce

https://www.ibm.com/developerworks/vn/library/data/2013Q1/dm-1206socialmedia/

Phân tích dữ liệu môi trườngtruyền thông xã hội và dữ liệucó cấu trúc với BigInsightsInfoSphere

https://www.ibm.com/developerworks/vn/library/java/201301/j-javadev2-15/

Phát triển Java 2.0: Phân tíchdữ liệu lớn bằng MapReducecủa Hadoop

https://www.ibm.com/developerworks/vn/library/12/dm-1205bigdatauniversity

Bắt đầu khóa học của bạn vềdữ liệu lớn

© 2011 IBM Corporation

IBM

Resources

Global TLE Framework

55

� Sách miễn phí về Big Data: https://www.ibm.com/developerworks/wikis/display/db2oncampus/FREE+ebook+-+Understanding+Big+Data

� Các sách khác: https://www.ibm.com/developerworks/wikis/display/db2oncampus/FREE+eBooks

© 2011 IBM Corporation

IBM

Trang dW tiếng Việtibm.com/developerworks/vn

Page 15: Big Data và Hadoop

© 2011 IBM Corporation

IBM

Questions

Global TLE Framework

57