big data và hadoop
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.ibmvnTRANSCRIPT
© 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)
© 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
© 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
© 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
© 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
© 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)
© 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
© 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
© 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/
© 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
© 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
© 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
© 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
© 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
© 2011 IBM Corporation
IBM
Questions
Global TLE Framework
57