Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Hệ thống tính toán
và dữ liệu lớn
NGUYỄN VĂN THÀNH
Big Data
Apache Hadoop
HDFS
MapReduce
HBase
Hive
2
Big Data
3
Big Data là gì? 4
Định nghĩa Big Data
 Tập hợp dữ liệu có dung lượng khổng lồ
 Các công cụ ứng dụng xử lý dữ liệu truyền thống không thể đ...
Định nghĩa Big Data
 Kích thước của Big Data đang ngày một tăng
6
Tính chất của Big Data
Big
Data
Velocity
VarietyVolume
7
Một vài ví dụ Big Data
 Dữ liệu từ các thí nghiệm của máy gia tốc hạt lớn ở châu Âu
 Dữ liệu từ các trạm quan sát vũ trụ...
Tình hình Big Data hiện nay
 Theo tài liệu của Intel vào tháng 9/2013, hiện nay thế giới đang tạo ra 1
petabyte dữ liệu t...
Tình hình Big Data hiện nay 10
40 PB 24,7 TB
50 tỉ bức ảnh Dữ liệu truy
vấn, media..
Lợi ích của Big Data 11
“Vấn đề thật sự không nằm ở việc bạn thu thập dữ liệu,
thay vào đó, là bạn dùng Big Data để làm gì”
Lợi ích của Big Data
Một số lợi ích mà Big Data có thể mang lại:
 cắt giảm chi phí
 tiết kiệm thời gian và giúp tối ưu h...
Các công nghệ khai thác Big Data
Big Data cần đến các kĩ thuật khai thác thông tin rất đặc biệt do tính chất
khổng lồ và p...
Các công nghệ khai thác Big Data
Ngoài ra, các cơ sở dữ liệu hỗ trợ xử lí dữ liệu song song, ứng dụng hoạt
động dựa trên h...
Tương lai của Big Data 15
 Việc tiêu thụ một lượng dữ liệu lớn sẽ dần phổ biến hơn với mọi người, từ những người
nông dân...
Apache Hadoop
16
17
“Hadoop is Swiss army knife of 21st Century”
Giới thiệu Apache Hadoop
“Hadoop là một framework nguồn mở viết bằng Java cho phép phát triển các ứng dụng phân tán
có cườ...
Lịch sử Hadoop 19
Hadoop và Big Data
 Hadoop đơn giản hoá việc thực hiện các yêu cầu xử lý dữ liệu mạnh mẽ,
các ứng dụng phân tán mức cao
...
Hadoop và Big Data 21
Hệ sinh thái Hadoop
 Apache Hadoop nguồn gốc là để quản lý và truy cập dữ liệu, và chỉ bao
gồm 2 thành phần là: Hadoop Di...
Hệ sinh thái Hadoop
 Theo thời gian, Hadoop được kết hợp với 1 loạt các dự án khác để trở
thành một nền tảng hoàn chỉnh c...
Hệ sinh thái Hadoop
 Hiện nay có rất nhiều nhà cung cấp đóng gói và hỗ trợ Hadoop cho việc khai thác
và lưu trữ Big Data ...
Lợi ích của Hadoop 25
Khả năng mở rộng
Mở rộng lên tới hàng nghìn
node trên 1 cluster
Tiết kiệm chi phí
Phần cứng giá rẻ, ...
Kiến trúc Hadoop 26
Với 2 thành phần core là HDFS và MapReduce,
Hadoop 1.0 đã rất thành công trong việc đáp ứng
khả năng l...
Kiến trúc Hadoop
Tuy nhiên Hadoop 1.0 vẫn còn tồn tại một số nhược điểm:
 Không có khả năng mở rộng chiều ngang cho NameN...
Kiến trúc Hadoop 28
Tính năng mới của Hadoop 2.0:
 HDFS federation
 NameNode HA
 YARN: Data Operating System, quản lý t...
Các thành phần của YARN
 ResourceManager (RM):
 Chạy trên master node
 Quản lý lịch trình tài nguyên chung
 Điều phối ...
Các thành phần của YARN
 Containers
 Tạo bởi RM dựa trên request
 Cấp phát tài nguyên (memory, CPU) trên slave nodes
 ...
YARN là chìa khoá của Hadoop 2
 Với các tính năng kể trên, YARN là kiến trúc trung tâm của Hadoop 2
 Cung cấp cơ chế quả...
YARN hoạt động như thế nào? 32
YARN hoạt động như thế nào? 33
YARN hoạt động như thế nào? 34
YARN hoạt động như thế nào? 35
YARN hoạt động như thế nào? 36
YARN hoạt động như thế nào? 37
Hadoop Big Data Platform 38
Hortonworks Data Platform 39
Người dùng Hadoop nổi bật
 Yahoo!:
 19/2/2008 Yahoo tuyên bố ứng dụng Hadoop lớn nhất thế giới với hơn 10.000
node cho 1...
Hadoop HDFS
41
Giới thiệu HDFS
 Hadoop Distributed File System (HDFS): HDFS là một hệ thống tập tin phân
tán của Hadoop cung cấp khả năn...
Giới thiệu HDFS
 HDFS ra đời dựa trên nhu cầu lưu trữ dữ liệu của Nutch, một dự án Search
Engine nguồn mở
 HDFS ứng dụng...
Đặc trưng của HDFS
 Khả năng phát hiện lỗi, chống chịu lỗi
 Kích thước các file sẽ lớn hơn so với các chuẩn truyền thống...
Kiến trúc HDFS 45
 HDFS duy trì một cấu trúc cây phân cấp các file, thư mục mà các file sẽ
đóng vai trò là các node lá.
...
Kiến trúc HDFS
HDFS có kiến trúc master/slave:
 NameNode duy nhất cho toàn cluster: đóng vai trò master, duy trì chịu
trá...
Kiến trúc HDFS
 Các DataNode sẽ chịu trách nhiệm lưu trữ các block thật sự của từng file
của hệ thống file phân tán lên h...
Kiến trúc HDFS
 Định kỳ Datanode sẽ gửi thông điệp “heart beat” để thông báo cho
NameNode về tình trạng “live” và các bản...
Kiến trúc HDFS 49
Thao tác đọc trên HDFS 50
DataNod
e
DataNod
e
DataNod
e
Thao tác ghi trên HDFS 51
DataNod
e
DataNod
e
DataNod
e
Sự toàn vẹn dữ liệu
 HDFS sử dụng checksum để xác nhận dữ liệu (CRC32)
 Khi tạo tập tin
 Client tính checksum (512 byte...
Sao chép dữ liệu (Replication)
 HDFS sao chép ở mức block
 Có ba mức độ sao chép
 Cùng máy – Cùng rack – Khác rack
 Na...
Các giao diện tương tác với HDFS
 Giao diện commandline
 Giao diện java
 Giao diện web
54
Quản trị HDFS
 Permission: HDFS có một mô hình phân quyền tập tin và thư mục giống
với POSIX (Portable Operating System I...
MapReduce
56
Giới thiệu MapReduce
 MapReduce là mô hình dùng cho xử lý tính toán song song và phân tán
trên hệ thống phân tán
 Mô hìn...
Mô hình MapReduce
 Hàm Map
58
 Hàm Reduce
Một số khái niệm Hadoop MapReduce
 Job Tracker: Master MapReduce
 Tiếp nhận các yêu cầu thực thi MapReduce job
 Phân ch...
Cơ chế hoạt động 60
Khả năng chịu lỗi của MapReduce
 JobTracker kiểm tra kết nối tới các TaskTracker theo chu kỳ
 Thực thi lại các lệnh map(...
Ưu điểm của Hadoop MapReduce
Dữ liệu được xử lý là locally (các thao tác được thực hiện ngay trên node chức
các block cần ...
Nhược điểm của MapReduce
 Không reduce() nào được bắt đầu cho đến khi map() kết thúc
 Nếu map() fail bất kỳ lúc nào trướ...
Phát triển ứng dụng MapReduce
 Trên thực tế, để triển khai mô hình ứng
dụng với MapReduce với các ngôn ngữ
(C/C++, Java.....
Ứng dụng MapReduce
 MapReduce không phải là mô hình áp dụng cho tất cả các vấn đề
 Một số trường hợp thích hợp với MapRe...
Ứng dụng MapReduce
 Apache Nutch, search engine mã nguồn mở đã sử dụng MapReduce làm
mô hinh để thực hiện các thao tác cr...
Apache HBase
67
NoSQL và Big Data
 NoSQL là viết tắt cho Not Relational SQL hay Not Only SQL. NoSQL dùng
SQL nhưng nó dùng nhiều hơn cả S...
NoSQL và Big Data
 CSDL NoSQl chấp nhận sự đa dạng về cấu trúc dữ
liệu
 CSDL NoSQl có hiệu suất cao và tính sẵn sàng cao...
Giới thiệu HBase
 HBase là 1 hệ cơ sở dữ liệu mã nguồn mở được xây dựng dựa trên
Google BigTable
 HBase cung cấp khả năn...
Kiến trúc HBase 71
Kiến trúc HBase 72
Kiến trúc của HBase
Khi có yêu cầu đọc hoặc ghi:
 Client kết nối tới Zookeeper để tìm địa
chỉ của ROOT table.
 Client sử...
Mô hình dữ liệu của HBase
 Hbase được xây dựng dựa trên thiết kế của Google BigTable nên có nhiều
điểm giống
 Dữ liệu đư...
Mô hình dữ liệu của HBase
 Mỗi table bao gồm rất nhiều row, có
thể lên tới hàng tỷ rows trong 1 table
của HBase, các row ...
Mô hình dữ liệu của HBase
 1 column của Hbase được khai báo dưới dạng:”families:
qualifier”, trong đó families là tên của...
So sánh HBase 77
So sánh HBase 78
Sử dụng HBase
 Có thể sử dụng Hbase thông qua Java API, REST service, Thrift và Avro
 Sử dụng Hbase cho hệ thống của mìn...
Apache Hive
80
Giới thiệu Apache Hive
 Hive là hạ tầng kho dữ liệu (data warehouse) cho Hadoop
 Nhiệm vụ chính là cung cấp sự tổng hợp ...
Kiến trúc Hive 82
Hoạt động của Hive 83
Mô hình dữ liệu trong Hive
Dữ liệu trong Hive được tổ chức thành các kiểu sau:
 Databases: là namespace cho các tables, d...
Mô hình dữ liệu trong Hive
 Partions: Mỗi table có thể có 1 hoặc nhiều các khóa mà từ đó xác định dữ
liệu sẽ được lưu trữ...
Mô hình dữ liệu trong Hive 86
Các kiểu dữ liệu trong Hive
Các kiểu dữ liệu nguyên thủy sau sẽ được hỗ trợ đối với Hive:
 Integers:
 TINYINT – 1 byte i...
Các kiểu dữ liệu trong Hive 88
Các kiểu dữ liệu khác:
 Structs: là kiểu dữ liệu mà mỗi phần tử bên trong đó có thể được t...
Ví dụ sử dụng Hive
 Kịch bản sử dụng được đưa ra là ta sẽ sử dụng Hive để phân tích dữ liệu
thu được từ các apache webser...
Ví dụ sử dụng Hive
 Ta thực hiện lưu trữ file này dưới đường dẫn /user/logs/access.log.
 Ta thực hiện việc tạo 1 Hive ta...
Ví dụ sử dụng Hive
Một số truy vấn mẫu:
 Liệt kê tất cả thông tin thu được từ trong các table:
 Liệt kê các IP đã thực h...
92
Upcoming SlideShare
Loading in …5
×

Hadoop - Hệ thống tính toán và xử lý dữ liệu lớn

12,127 views

Published on

Trình bày về kiến trúc và các thành phần cơ bản của Hadoop 2.0

Published in: Technology

Hadoop - Hệ thống tính toán và xử lý dữ liệu lớn

  1. 1. Hệ thống tính toán và dữ liệu lớn NGUYỄN VĂN THÀNH
  2. 2. Big Data Apache Hadoop HDFS MapReduce HBase Hive 2
  3. 3. Big Data 3
  4. 4. Big Data là gì? 4
  5. 5. Định nghĩa Big Data  Tập hợp dữ liệu có dung lượng khổng lồ  Các công cụ ứng dụng xử lý dữ liệu truyền thống không thể đảm đương được 5
  6. 6. Định nghĩa Big Data  Kích thước của Big Data đang ngày một tăng 6
  7. 7. Tính chất của Big Data Big Data Velocity VarietyVolume 7
  8. 8. Một vài ví dụ Big Data  Dữ liệu từ các thí nghiệm của máy gia tốc hạt lớn ở châu Âu  Dữ liệu từ các trạm quan sát vũ trụ  Dữ liệu từ công tác giải mã gen di truyền của con người  Dữ liệu sinh ra bởi mạng xã hội (Facebook, Twitter, Google Plus.v.v..) 8
  9. 9. Tình hình Big Data hiện nay  Theo tài liệu của Intel vào tháng 9/2013, hiện nay thế giới đang tạo ra 1 petabyte dữ liệu trong mỗi 11 giây và nó tương đương với một đoạn video HD dài 13 năm. 9
  10. 10. Tình hình Big Data hiện nay 10 40 PB 24,7 TB 50 tỉ bức ảnh Dữ liệu truy vấn, media..
  11. 11. Lợi ích của Big Data 11 “Vấn đề thật sự không nằm ở việc bạn thu thập dữ liệu, thay vào đó, là bạn dùng Big Data để làm gì”
  12. 12. Lợi ích của Big Data Một số lợi ích mà Big Data có thể mang lại:  cắt giảm chi phí  tiết kiệm thời gian và giúp tối ưu hoá sản phẩm  đồng thời hỗ trợ con người đưa ra những quyết định đúng và hợp lý hơn. 12 Theo Oracle, việc phân tích Big Data và những dữ liệu dung lượng lớn đã giúp các tổ chức kiếm được 10,66$ cho mỗi 1$ chi phí phân tích, tức là gấp 10 lần Đối với các doanh nghiệp TMĐT, thu thập và nghiên cứu thông tin về sở thích, thói quen của khách hàng sẽ giúp bán được nhiều hàng hơn nhờ việc đưa ra các chiến lược kinh doanh hiệu quả, tăng trải nghiệm mua sắm của người dùng. Xa hơi một chút, ứng dụng được Big Data có thể giúp các tổ chức, chính phủ dự đoán được tỉ lệ thất nghiệp, xu hướng nghề nghiệp của tương lai để đầu tư cho những hạng mục đó, hoặc cắt giảm chi tiêu, kích thích tăng trưởng kinh tế, v/v...
  13. 13. Các công nghệ khai thác Big Data Big Data cần đến các kĩ thuật khai thác thông tin rất đặc biệt do tính chất khổng lồ và phức tạp của nó. 13 crowsourcing (tận dụng nguồn lực từ nhiều thiết bị điện toán trên toàn cầu để cùng nhau xử lí dữ liệu Các biện pháp machine learning, xử lý ngôn ngữ tự nhiên, xử lí tín hiệu, mô phỏng…
  14. 14. Các công nghệ khai thác Big Data Ngoài ra, các cơ sở dữ liệu hỗ trợ xử lí dữ liệu song song, ứng dụng hoạt động dựa trên hoạt động tìm kiếm, file system dạng rời rạc, NoSQL, Data Warehouse, các hệ thống điện toán đám mây (bao gồm ứng dụng, nguồn lực tính toán cũng như không gian lưu trữ) và bản thân Internet cũng là những công cụ đắc lực phục vụ cho công tác nghiên cứu và trích xuất thông tin từ Big Data 14
  15. 15. Tương lai của Big Data 15  Việc tiêu thụ một lượng dữ liệu lớn sẽ dần phổ biến hơn với mọi người, từ những người nông dân cho đến các anh kĩ sư  Các công ty chuyên cung cấp giải pháp Big Data sẽ mở rộng nó và áp dụng Big Data nhằm giải quyết những vấn đề trong đời thường và trả lời cho các nhu cầu cơ bản của con người
  16. 16. Apache Hadoop 16
  17. 17. 17 “Hadoop is Swiss army knife of 21st Century”
  18. 18. Giới thiệu Apache Hadoop “Hadoop là một framework nguồn mở viết bằng Java cho phép phát triển các ứng dụng phân tán có cường độ dữ liệu lớn một cách miễn phí. Nó cho phép các ứng dụng có thể làm việc với hàng ngàn node khác nhau và hàng petabyte dữ liệu. Hadoop lấy được phát triển dựa trên ý tưởng từ các công bố của Google về mô hình MapReduce và hệ thống file phân tán Google File System (GFS).” 18
  19. 19. Lịch sử Hadoop 19
  20. 20. Hadoop và Big Data  Hadoop đơn giản hoá việc thực hiện các yêu cầu xử lý dữ liệu mạnh mẽ, các ứng dụng phân tán mức cao  Hadoop cung cấp cách thức tiết kiệm chi phí cho việc lưu trữ lượng lớn dữ liệu trên cụm các máy tính phần cứng chi phí thấp  Có sự khác biệt với cách phương pháp phân tán khác  Cung cấp cơ chế mạnh mẽ cho phân tích dữ liệu  Lưu trữ số lượng lớn  Xử lý phân tán và truy cập dữ liệu nhanh chóng  Tin cậy, chống chịu lỗi và khả mở 20
  21. 21. Hadoop và Big Data 21
  22. 22. Hệ sinh thái Hadoop  Apache Hadoop nguồn gốc là để quản lý và truy cập dữ liệu, và chỉ bao gồm 2 thành phần là: Hadoop Distributed File System (HDFS) và MapReduce. 22
  23. 23. Hệ sinh thái Hadoop  Theo thời gian, Hadoop được kết hợp với 1 loạt các dự án khác để trở thành một nền tảng hoàn chỉnh cho BigData 23
  24. 24. Hệ sinh thái Hadoop  Hiện nay có rất nhiều nhà cung cấp đóng gói và hỗ trợ Hadoop cho việc khai thác và lưu trữ Big Data (Hadoop distributions and commercial support) 24
  25. 25. Lợi ích của Hadoop 25 Khả năng mở rộng Mở rộng lên tới hàng nghìn node trên 1 cluster Tiết kiệm chi phí Phần cứng giá rẻ, phần mềm mã nguồn mở Linh hoạt Linh hoạt trong phân tích và khai thác dữ liệu
  26. 26. Kiến trúc Hadoop 26 Với 2 thành phần core là HDFS và MapReduce, Hadoop 1.0 đã rất thành công trong việc đáp ứng khả năng lưu trữ và xử lý phân tán cũng như khả năng mở rộng (khoảng 4000 node trên 1 Hadoop cluster)
  27. 27. Kiến trúc Hadoop Tuy nhiên Hadoop 1.0 vẫn còn tồn tại một số nhược điểm:  Không có khả năng mở rộng chiều ngang cho NameNode (1 thành phần quan trọng của HDFS)  Không hỗ trợ tính sẵn sàng cao cho NameNode  Sự quá tải của JobTracker (1 thành phần điều phối hoạt động của MapReduce)  Không hỗ trợ các ứng dụng Non-MapReduce Big Data (Graph processing..)  Không cho phép tích hợp các engine tính toán, khai thác dữ liệu khác nhau  Chỉ chạy được trên Linux 27
  28. 28. Kiến trúc Hadoop 28 Tính năng mới của Hadoop 2.0:  HDFS federation  NameNode HA  YARN: Data Operating System, quản lý tài nguyên Hadoop cluster  MapReduce 2.0  Hỗ trợ chạy trên Windows  Hỗ trợ chạy trên các nền tảng Cloud (OpenStack, Windows Azure, Amazone, Google)
  29. 29. Các thành phần của YARN  ResourceManager (RM):  Chạy trên master node  Quản lý lịch trình tài nguyên chung  Điều phối tài nguyên giữa các ứng dụng 29  Node Manager (NM):  Chạy trên slave nodes  Giao tiếp với RM
  30. 30. Các thành phần của YARN  Containers  Tạo bởi RM dựa trên request  Cấp phát tài nguyên (memory, CPU) trên slave nodes  Các ứng dụng có thể chạy trên một hoặc nhiều container 30  Application Master (AM)  1 ứng dụng có 1 AM  Đặc tả về framework và ứng dụng  Chạy trong một container  Có thể yêu cầu them container để chạy các nhiệm vụ của ứng dụng
  31. 31. YARN là chìa khoá của Hadoop 2  Với các tính năng kể trên, YARN là kiến trúc trung tâm của Hadoop 2  Cung cấp cơ chế quản lý tài nguyên hiệu quả, linh hoạt, bảo mật và thống nhất các công cụ trên toàn Hadoop cluster  YARN mở rộng Hadoop với những công nghệ mới giúp các Data center quản lý được hiệu quả chi phí, mở rộng tuyến tính của lưu trữ và xử lý dữ liệu  YARN cung cấp cho các lập trinh viên một framework duy nhất để viết các ứng dụng sử dụng dữ liệu trên Hadoop 31
  32. 32. YARN hoạt động như thế nào? 32
  33. 33. YARN hoạt động như thế nào? 33
  34. 34. YARN hoạt động như thế nào? 34
  35. 35. YARN hoạt động như thế nào? 35
  36. 36. YARN hoạt động như thế nào? 36
  37. 37. YARN hoạt động như thế nào? 37
  38. 38. Hadoop Big Data Platform 38
  39. 39. Hortonworks Data Platform 39
  40. 40. Người dùng Hadoop nổi bật  Yahoo!:  19/2/2008 Yahoo tuyên bố ứng dụng Hadoop lớn nhất thế giới với hơn 10.000 node cho 1 Hadoop cluster được sử dụng trong hệ thống tìm kiếm Yahoo Webmap.  Facebook:  2010 Facebook tuyên bố sở hữu những Hadoop cluster lớn nhất thế giới với 21PB lưu trữ.  13/06/2012 họ công bố dữ liệu đã tăng lên đến 100PB  8/11/2012 các dữ liệu tập của Hadoop tại các kho dữ liệu tăng lên gần nửa PB mỗi ngày 40
  41. 41. Hadoop HDFS 41
  42. 42. Giới thiệu HDFS  Hadoop Distributed File System (HDFS): HDFS là một hệ thống tập tin phân tán của Hadoop cung cấp khả năng tăng tuyến tính và lưu trữ dữ liệu đáng tin cậy, được thiết kế để lưu trữ phân tán trên các cluster lớn mà có chi phí thấp 42
  43. 43. Giới thiệu HDFS  HDFS ra đời dựa trên nhu cầu lưu trữ dữ liệu của Nutch, một dự án Search Engine nguồn mở  HDFS ứng dụng kiến trúc của Google File System (GFS) 43 Google File System
  44. 44. Đặc trưng của HDFS  Khả năng phát hiện lỗi, chống chịu lỗi  Kích thước các file sẽ lớn hơn so với các chuẩn truyền thống, các file có kích thước hàng GB sẽ trở nên phổ biến  Chỉ append dữ liệu vào cuối file thay vì ghi đè  Các thao tác đọc ngẫu nhiên không tồn tại 44
  45. 45. Kiến trúc HDFS 45  HDFS duy trì một cấu trúc cây phân cấp các file, thư mục mà các file sẽ đóng vai trò là các node lá.  Mỗi file sẽ được chia ra làm một hay nhiều block và mỗi block này sẽ có một block ID để nhận diện.  Các block của cùng một file (trừ block cuối cùng) sẽ có cùng kích thước và kích thước này được gọi là block size của file đó. Mỗi block của file sẽ được lưu trữ thành ra nhiều bản sao (replica) khác nhau vì mục đích an toàn dữ liệu
  46. 46. Kiến trúc HDFS HDFS có kiến trúc master/slave:  NameNode duy nhất cho toàn cluster: đóng vai trò master, duy trì chịu trách nhiệm duy trì thông tin về cấu trúc cây phân cấp các file, thư mục của hệ thống file và các metadata khác của hệ thống file:  File System Namespace  Thông tin để ánh xạ từ tên file ra thành danh sách các block  Nơi lưu trữ các block  NameNode có khả năng nhận biết cấu trúc topology của mạng để xác định “khoảng cách” giữa 2 node trên Hadoop cluster  Secondary NameNode có khả năng hoạt động ở chế độ standby, sẽ tự động được active ngay khi NameNode gặp sự cố 46
  47. 47. Kiến trúc HDFS  Các DataNode sẽ chịu trách nhiệm lưu trữ các block thật sự của từng file của hệ thống file phân tán lên hệ thống file cục bộ của nó. Mỗi 1 block sẽ được lưu trữ như là 1 file riêng biệt trên hệ thống file cục bộ của DataNode.  Định kỳ Datanode sẽ gửi thông điệp “heart beat” để thông báo cho NameNode về tình trạng “live” và các bản sao blok đang sẵn sàng 47
  48. 48. Kiến trúc HDFS  Định kỳ Datanode sẽ gửi thông điệp “heart beat” để thông báo cho NameNode về tình trạng “live” và các bản sao blok đang sẵn sàng 48
  49. 49. Kiến trúc HDFS 49
  50. 50. Thao tác đọc trên HDFS 50 DataNod e DataNod e DataNod e
  51. 51. Thao tác ghi trên HDFS 51 DataNod e DataNod e DataNod e
  52. 52. Sự toàn vẹn dữ liệu  HDFS sử dụng checksum để xác nhận dữ liệu (CRC32)  Khi tạo tập tin  Client tính checksum (512 byte)  DataNode lưu trữ checksum  Khi đọc tập tin  Client tìm kiếm dữ liệu và checksum từ DataNode  Nếu xác nhận fail, Client sẽ tiến hành đọc bản sao khác 52
  53. 53. Sao chép dữ liệu (Replication)  HDFS sao chép ở mức block  Có ba mức độ sao chép  Cùng máy – Cùng rack – Khác rack  NameNode phát hiện các DataNode có sự cố  Chọn DataNode mới cho bản sao mới  Cân bằng dung lượng sử dụng trên các đĩa  Cân bằng lưu lượng băng thông với DataNode 53
  54. 54. Các giao diện tương tác với HDFS  Giao diện commandline  Giao diện java  Giao diện web 54
  55. 55. Quản trị HDFS  Permission: HDFS có một mô hình phân quyền tập tin và thư mục giống với POSIX (Portable Operating System Interface [for Unix]). Có ba loại quyền truy cập: quyền được phép đọc (r), quyền ghi (w), và quyền thực thi (x)  Trên Hadoop cũng có super-user, có quyền hạn toàn cục và không bị kiểm tra quyền truy cập  Quotas: HDFS cho phép người quản trị có thể thiết lập hạn ngạch (quotas) cho số lượng tên (file/thư mục) sử dụng và dung lượng sử dụng cho các thư mục. Có hai loại hạn ngạch là hạn ngạch tên (name quotas) và hạn ngạch dung lượng (space quotas). 55
  56. 56. MapReduce 56
  57. 57. Giới thiệu MapReduce  MapReduce là mô hình dùng cho xử lý tính toán song song và phân tán trên hệ thống phân tán  Mô hình này sẽ phân rã từ nghiệp vụ chính thành các công việc con để chia từng công việc con này về các máy tính trong hệ thống thực hiện xử lý một cách song song, sau đó thu thập lại các kết quả  Hadoop MapReduce là một framework ứng dụng kiến trúc MapReduce của Google công bố 57
  58. 58. Mô hình MapReduce  Hàm Map 58  Hàm Reduce
  59. 59. Một số khái niệm Hadoop MapReduce  Job Tracker: Master MapReduce  Tiếp nhận các yêu cầu thực thi MapReduce job  Phân chia job thành các task và phân công cho các Task Tracker thực hiện  Quản lý tình trạng thực hiện của Task Tracker  Task Tracker:  Tiếp nhận các task được Job Tracker phân công và thực hiện nó 59
  60. 60. Cơ chế hoạt động 60
  61. 61. Khả năng chịu lỗi của MapReduce  JobTracker kiểm tra kết nối tới các TaskTracker theo chu kỳ  Thực thi lại các lệnh map() và reduce() nếu xảy ra lỗi  Nếu 1 TaskTracker nào gặp sự cố thì job sẽ được gán cho TaskTracker khác  Nếu JobTracker phát hiện ra 2 lỗi trên cùng 1 record dữ liệu, thì sẽ bỏ qua lỗi đó trong lần xử lý kế tiếp của TaskTracker. 61
  62. 62. Ưu điểm của Hadoop MapReduce Dữ liệu được xử lý là locally (các thao tác được thực hiện ngay trên node chức các block cần xử lý), vì vậy các Task Tracker sẽ không phải đi nạp dữ liệu từ các máy tính khác -> Gia tang hiệu suất về mặt thời gian và băng thông 62
  63. 63. Nhược điểm của MapReduce  Không reduce() nào được bắt đầu cho đến khi map() kết thúc  Nếu map() fail bất kỳ lúc nào trước khi reduce() kết thúc thì toàn bộ lệnh phải thực hiện lại 63
  64. 64. Phát triển ứng dụng MapReduce  Trên thực tế, để triển khai mô hình ứng dụng với MapReduce với các ngôn ngữ (C/C++, Java..) chúng ta cần tới MapReduce framework:  Input reader  Map function  Partion function  Compare function  Reduce function  Output writer 64
  65. 65. Ứng dụng MapReduce  MapReduce không phải là mô hình áp dụng cho tất cả các vấn đề  Một số trường hợp thích hợp với MapReduce:  Dữ liệu cần xử lý lớn, kích thước tập tin lớn  Các ứng dụng thực hiện xử lý, phân tích dữ liệu, thời gian xử lý đáng kể, có thể tính bằng phút, giờ, ngày, tháng..  Cần tối ưu hoá về băng thông trên cluster.  Một số trường hợp có thể không phù hợp:  Dữ liệu cần xử lý là tập hợp nhiều tập tin nhỏ.  Cần tìm kiếm nhanh (tốc độ có ý nghĩa đến từng giây) trên tập dữ liệu lớn. Do độ trễ khi xử lý các MapReduce Job và khởi tạo các task trên DataNode. 65
  66. 66. Ứng dụng MapReduce  Apache Nutch, search engine mã nguồn mở đã sử dụng MapReduce làm mô hinh để thực hiện các thao tác crawl dữ liệu  Last.fm là một trang web hàng đầu về nghe nhạc sử dụng MapReduce để thống kê các thông tin về các bài nhạc của mình  Tại VN:  Mwork sử dụng Hadoop để lưu trữ và xử lý Log  Cốc cốc search engine sử dụng Hadoop phục vụ xử lý thao tác crawl 66
  67. 67. Apache HBase 67
  68. 68. NoSQL và Big Data  NoSQL là viết tắt cho Not Relational SQL hay Not Only SQL. NoSQL dùng SQL nhưng nó dùng nhiều hơn cả SQL để đạt được mục tiêu của mình  NoSQL cung cấp một cơ chế cho việc lưu trữ và truy xuất dữ liệu sử dụng mô hình thống nhất nới lỏng hơn so với cơ sở dữ liệu quan hệ truyền thống 68
  69. 69. NoSQL và Big Data  CSDL NoSQl chấp nhận sự đa dạng về cấu trúc dữ liệu  CSDL NoSQl có hiệu suất cao và tính sẵn sàng cao  CSDL NoSQL không thể cung cấp 100% ACID (Atomicity, Consistency, Isolation, Durability). Mặc dù vậy, nó cung cấp sự thống nhất cuối cùng.  NoSQL thuộc nhiều loại như: column store, document store, key-value store, và graph database.  Column: Hbase, Cassandra, Accumulo  Document: MongoDB, Couchbase, Raven  Key-value: Dynamo, Riak, Azure, Redis, Cache, GT.m  Graph: Neo4j, Allegro, Virtouso, Bigdata 69
  70. 70. Giới thiệu HBase  HBase là 1 hệ cơ sở dữ liệu mã nguồn mở được xây dựng dựa trên Google BigTable  HBase cung cấp khả năng lưu trữ dữ liệu lớn lên tới hàng tỷ dòng, hàng triệu cột khác nhau cũng như hàng petabytes dung lượng  Hbase là 1 NoSQL điển hình  HBase đang là 1 trong các top-level project của tổ chức Apache Software Foundation và được cung cấp dưới giấy phép: Apache Lisence 2.0 70
  71. 71. Kiến trúc HBase 71
  72. 72. Kiến trúc HBase 72
  73. 73. Kiến trúc của HBase Khi có yêu cầu đọc hoặc ghi:  Client kết nối tới Zookeeper để tìm địa chỉ của ROOT table.  Client sử dụng ROOT Table để tìm ra địa chỉ của META table chứa thông tin của region mà nó cần tìm.  Client sử dụng META table để tìm kiếm thông tin của region mà nó cần tìm  Client tương tác trực tiếp với RegionServer 73
  74. 74. Mô hình dữ liệu của HBase  Hbase được xây dựng dựa trên thiết kế của Google BigTable nên có nhiều điểm giống  Dữ liệu được lưu trong 1 table của HBase được xác định bởi các khóa: “Table, Rowkey, Column Families, Column, Timestamp” 74
  75. 75. Mô hình dữ liệu của HBase  Mỗi table bao gồm rất nhiều row, có thể lên tới hàng tỷ rows trong 1 table của HBase, các row được xác định với nhau bởi 1 khóa duy nhất “rowkey”, rowkey trong HBase có chức năng tương tự với Primary key trong các hệ cơ sở dữ liệu thông thường .Các row trong cùng 1 talbe luôn được sắp xếp theo thứ tự tự điển theo rowkey.  Mỗi row gồm nhiều column khác nhau, các column gộp lại thành “column families”. Các column trong 1 column families được lưu trữ trong Hfile 75
  76. 76. Mô hình dữ liệu của HBase  1 column của Hbase được khai báo dưới dạng:”families: qualifier”, trong đó families là tên của columns families mà colums được nhóm vào trong đó, qualifier để xác định column.  Gía trị của mỗi columns được gọi là cell, mỗi cells chứa nhiều cặp “version(timestamp, value)”. Trong đó timestamp là giá trị được sinh ra bởi hệ thống hoăc được xác định bởi người dùng. Các version khác nhau được phân biệt với nhau bởi timestamp, trong 1 cells có thể lưu trữ nhiều version của data ứng với thời gian được đưa vào hệ thống khác nhau. Các version này được sắp xếp theo thứ tự từ mới đến cũ. 76
  77. 77. So sánh HBase 77
  78. 78. So sánh HBase 78
  79. 79. Sử dụng HBase  Có thể sử dụng Hbase thông qua Java API, REST service, Thrift và Avro  Sử dụng Hbase cho hệ thống của mình nếu:  Cần đọc ghi random  Cần phục vụ hàng nghìn thao tác trên nhiều TB dữ liệu  Mô hình truy cập dữ liệu là rõ ràng và đơn giản  Không sử dụng Hbase nếu:  Chỉ append dữ liệu và có xu hướng đọc tất cả  Thực hiện những truy vấn phân tích phức tạp  Dữ liệu của bạn chỉ phù hợp với dạng hệ thống standalone mạnh mẽ 79
  80. 80. Apache Hive 80
  81. 81. Giới thiệu Apache Hive  Hive là hạ tầng kho dữ liệu (data warehouse) cho Hadoop  Nhiệm vụ chính là cung cấp sự tổng hợp dữ liệu, truy vấn và phân tích dữ liệu phân tán  Hỗ trợ truy xuất giống SQL đến dữ liệu có cấu trúc, cũng như phân tích BigData với MapReduce 81
  82. 82. Kiến trúc Hive 82
  83. 83. Hoạt động của Hive 83
  84. 84. Mô hình dữ liệu trong Hive Dữ liệu trong Hive được tổ chức thành các kiểu sau:  Databases: là namespace cho các tables, dùng để nhóm và quản lý các nhóm tables khác nhau  Tables: tương tự như table trong các hệ cơ sở dữ liệu quan hệ. Có 2 kiểu table đó là: Managed Table và External tables 84 CREATE TABLE managed_table(dummy STRING); LOAD DATA INPATH '/user/hadoop/data.txt' INTO table managed_table; CREATE EXTERNAL TABLE external_table (dummy STRING) LOCATION '/user/hadoop/external_table'; LOAD DATA INPATH '/user/hadoop/data.txt' INTO TABLE external_table;
  85. 85. Mô hình dữ liệu trong Hive  Partions: Mỗi table có thể có 1 hoặc nhiều các khóa mà từ đó xác định dữ liệu sẽ được lưu trữ ở đâu  Buckets: Dữ liệu trong mỗi partion có thể được phân chia thành nhiều buckets khác nhau dựa trên 1 hash của 1 colume bên trong table. Mỗi bucket lưu trữ dữ liệu của nó bên dưới 1 thư mục riêng. Việc phân chia các partion thành các bucket giúp việc thực thi các query dễ dàng hơn. 85 CREATE TABLE logs (ts BIGINT, line STRING) PARTITIONED BY (dt STRING, country STRING);
  86. 86. Mô hình dữ liệu trong Hive 86
  87. 87. Các kiểu dữ liệu trong Hive Các kiểu dữ liệu nguyên thủy sau sẽ được hỗ trợ đối với Hive:  Integers:  TINYINT – 1 byte integer  SMALLINT – 2 byte integer  INT – 4 byte integer  BIGINT – 8 byte integer  Boolean type  BOOLEAN – TRUE/FALSE  Floating point numbers  FLOAT – single precision  DOUBLE – Double precision  String type  STRING – sequence of characters in a specified character set 87
  88. 88. Các kiểu dữ liệu trong Hive 88 Các kiểu dữ liệu khác:  Structs: là kiểu dữ liệu mà mỗi phần tử bên trong đó có thể được truy cập thông qua việc sử dụng ký hiệu (.) . Ví dụ, với kiểu dữ liệu STRUCT {a INT; b INT} ví dụ trường a của nó có thể truy cập thông qua c.a  Maps (key-value tuples): là kiểu dữ liệu mà các phần tử sẽ được truy cập thông qua ký hiệu ['element name']. Đối với map M thực hiện việc map dữ liệu đối với khóa ‘group’ -> thì dữ liệu sẽ được sử dụng bởi trường M['group']  Arrays (indexable lists): Kiểu mảng.
  89. 89. Ví dụ sử dụng Hive  Kịch bản sử dụng được đưa ra là ta sẽ sử dụng Hive để phân tích dữ liệu thu được từ các apache webserver được lưu trữ trên HDFS  Nội dung của 1 file Log sẽ có định dạng như sau: 89 64.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1"401 12846 64.242.88.10 - - [07/Mar/2004:16:06:51 -0800] "GET /twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2 HTTP/1.1" 200 4523 64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291 64.242.88.10 - - [07/Mar/2004:16:11:58 -0800] "GET /twiki/bin/view/TWiki/WikiSyntax HTTP/1.1" 20
  90. 90. Ví dụ sử dụng Hive  Ta thực hiện lưu trữ file này dưới đường dẫn /user/logs/access.log.  Ta thực hiện việc tạo 1 Hive table để map với các dữ liệu này. 90 CREATE EXTERNAL TABLE request(address STRING, info STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '- -' LINES TERMINATED BY 'n' STORED AS TEXTFILE LOCATION '/user/logs/access.log';
  91. 91. Ví dụ sử dụng Hive Một số truy vấn mẫu:  Liệt kê tất cả thông tin thu được từ trong các table:  Liệt kê các IP đã thực hiện truy cập tới:  Liệt kê số lượng request theo từng IP: 91 SELECT * FROM request; SELECT DISTINCT address FROM request; SELECT address, count(1) FROM request GROUP BY address ORDER BY address DESC;
  92. 92. 92

×