« Home « Kết quả tìm kiếm

L I NÓI Đ U Ph n 1: Gi i Thi u Ph n 2: N i dung Ch ng 1: T ng quan v BIG DATA VÀ HADOOP MAPREDUCE 0 1 A 0 0 1 A F 1 E E 2 1 E C 0 1.1. S L C V BIG DATA 1.1.1.Big data là gì


Tóm tắt Xem thử

- LÝ DO CHON ĐỀ TÀI Phần 2: Nội dung Chương 1: Tổng quan về BIG DATA VÀ HADOOP MAPREDUCE 1.1.
- SƠ LƯỢC VỀ BIG DATA 1.1.1.Big data là gì? Dữ liệu lớn (Tiếng Anh: Big data) là một thuật ngữ cho việc xử lý một tập hợp dữ liệu rất lớn và phức tạp mà các ứng dụng xử lý dữ liệu truyền thống không xử lý được.
- Dữ liệu lớn bao gồm các thách thức như phân tích, thu thập, giám sát dữ liệu, tìm kiếm, chia sẻ, lưu trữ, truyền nhận, trực quan, truy vấn và tính riêng tư.
- Thuật ngữ này thường chỉ đơn giản đề cập đến việc việc sử dụng các phân tích dự báo, phân tích hành vi người dùng, hoặc một số phương pháp phân tích dữ liệu tiên tiến khác trích xuất giá trị từ dữ liệu mà ít khi đề cập đến kích thước của bộ dữ liệu.Vài nghi ngờ cho rằng số lượng của dữ liệu có sẵn hiện nay thực sự lớn, nhưng đó không phải là đặc trưng phù hợp nhất của hệ sinh thái dữ liệu mới này.
- Công nghệ dùng trong 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ó.
- Năm 2011, tập đoàn phân tích McKinsey đề xuất những công nghệ có thể dùng với Big Data bao gồm 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 thuật toán về gen và di truyền, những biện pháp machine learning (ý chỉ các hệ thống có khả năng học hỏi từ dữ liệu, một nhánh của trí tuệ nhân tạo), xử lí ngôn ngữ tự nhiên (giống như Siri hay Google Voice Search, nhưng cao cấp hơn), xử lí tín hiệu, mô phỏng, phân tích chuỗi thời gian, mô hình hóa, kết hợp các server mạnh lại với nhau.
- Những người làm việc với Big Data thường cảm tháy khó chịu với các hệ thống lưu trữ dữ liệu vì tốc độ chậm, do đó họ thích những loại ổ lưu trữ nào có thể gắn trực tiếp vào máy tính (cũng như ổ cứng gắn trong máy tính của chúng ta vậy).
- Ổ đó có thể là SSD cho đến các đĩa SATA nằm trong một lưới lưu trữ cỡ lớn.
- Những người này nhìn vào ổ NAS hay hệ thống lưu trữ mạng SAN với góc nhìn rằng những thứ này quá phức tạp, đắt và chậm.
- Những tính chất nói trên không phù hợp cho hệ thống dùng để phân tích Big Data vốn nhắm đến hiệu năng cao, tận dụng hạ tầng thông dụng và chi phí thấp.
- Ngoài ra, việc phân tích Big Data cũng cần phải được áp dụng theo thời gian thực hoặc cận thời gian thực, thế nên độ trễ cần phải được loại bỏ bất kì khi nào và bất kì nơi nào có thể.
- Những nguồn chính tạo ra big data - Hộp đen dữ liệu: đây là dữ liệu được tạo ra bởi máy bay, bao gồm máy bay phản lực và trực thăng.
- Hộp đen dữ liệu này bao gồm thông tin tạo ra bởi giọng nói của phi hành đoàn, các bản thu âm và thông tin về chuyến bay.
- Dữ liệu từ các kênh truyền thông xã hội: Đây là dữ liệu được tạo ra và phát triển bởi như các trang web truyền thông xã hội như Twitter, Facebook, Instagram, Pinterest và Google.
- Dữ liệu giao dịch chứng khoán: Đây là số liệu từ thị trường chứng khoán đối với quyết định mua và bán cổ phiếu được thực hiện bởi khách hàng.
- Dữ liệu điện lực: đây là dữ liệu tạo ra bởi điện lực.
- Nó bao gồm các thông tin cụ thể từ các điểm giao nhau của các nút thông tin sử dụng.
- Dữ liệu giao thông: dữ liệu này bao gồm sức chưa và các mẫu phương tiện giao thông, độ sẵn sàng và khoảng cách đã đi được của từng phương tiện giao thông.
- Dữ liệu các thiết bị tìm kiếm: đây là dữ liệu được tạo ra từ các công cụ tìm kiếm và đây cũng là nguồn dữ liệu lớn nhất của Big Data.
- Công cụ tìm kiếm có cơ sở dữ liệu cực kỳ rộng lớn, nơi họ có thể tìm thấy dữ liệu họ cần.
- Lợi ích của big data Nhìn chung, có bốn lợi ích mà Big Data có thể mang lại: cắt giảm chi phí, giảm thời gian, tăng thời gian phát triển và tối ưu hóa 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.
- Người dùng cuối như mình và các bạn sẽ được hưởng lợi cũng từ việc tối ưu hóa như thế, chứ bản thân chúng ta thì khó mà tự mình phát triển hay mua các giải pháp để khai thác Big Data bởi giá thành của chúng quá đắt, có thể đến cả trăm nghìn đô.
- Ngoài ra, lượng dữ liệu mà chúng ta có được cũng khó có thể xem là “Big” nếu chỉ có vài Terabyte sinh ra trong một thời gian dài.
- Các kỹ năng big data Big data và các nỗ lực phân tích big data yêu cầu kĩ năng cụ thể, dù là từ bên trong tổ chức hay thông qua các chuyên gia bên ngoài.
- Nhiều kĩ năng có liên quan đến các thành phần công nghệ dữ liệu quan trọng như Hadoop, Spark, NoSQL, cơ sở dữ liệu trong bộ nhớ và phần mềm phân tích.
- Các lĩnh vực khác cụ thể là về các nguyên tắc như khoa học dữ liệu, khai thác dữ liệu, phân tích thống kê và định lượng, hình dung dữ liệu, lập trình mục đích chung, và cấu trúc dữ liệu và các thuật toán.
- Ngoài ra cũng cần có những người có kĩ năng quản lý tổng thể để quản lý tiến độ của các dự án big data.
- Với độ phổ biến của các dự án phân tích dữ liệu và sự thiếu hụt nhân lực về các kĩ năng trên, việc tìm kiếm các chuyên gia có kinh nghiệm có thể là một trong những thách thức lớn nhất đối với các tổ chức.
- SƠ LƯỢC VỀ HADOOP 1.2.1.
- Hadoop là gì ? Apache Hadoop định nghĩa: “Apache Hadoop là một framework dùng để chạy những ứng dụng trên 1 cluster lớn được xây dựng trên những phần cứng thông thường 1 .
- Hadoop hiện thực mô hình Map/Reduce, đây là mô hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phân đoạn khác nhau, và các phần này sẽ được chạy song song trên nhiều node khác nhau.
- Thêm vào đó, Hadoop cung cấp 1 hệ thống file phân tán (HDFS) cho phép lưu trữ dữ liệu lên trên nhiều node.
- Cả Map/Reduce và HDFS đều được thiết kế sao cho framework sẽ tự động quản lý được các lỗi, các hư hỏng về phần cứng của các node.” Wikipedia định nghĩa: “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.
- Vậy ta có thể kết luận như sau.
- Hadoop là một framework cho phép phát triển các ứng dụng phân tán.
- Tuy nhiên, nhờ cơ chế streaming, Hadoop cho phép phát triển các ứng dụng phân tán bằng cả java lẫn một số ngôn ngữ lập trình khác như C.
- Hadoop cung cấp một phương tiện lưu trữ dữ liệu phân tán trên nhiều node, hỗ trợ tối ưu hoá lưu lượng mạng, đó là HDFS.
- HDSF che giấu tất cả các thành phần phân tán, các nhà phát triển ứng dụng phân tán sẽ chỉ nhìn thấy HDFS như một hệ thống file cục bộ bình thường.
- Hadoop giúp các nhà phát triển ứng dụng phân tán tập trung tối đa vào phần logic của ứng dụng, bỏ qua được một số phần chi tiết kỹ thuật phân tán bên dưới (phần này do Hadoop tự động quản lý.
- Tức Hadoop chỉ chạy trên môi trường Linux 2 Apache Hadoop (hay còn gọi tắt là Hadoop) là một framework được sử dụng để phát triển ứng dụng xử lý dữ liệu được thực hiện trong môi trường tính toán phân tán.
- Tương tự như đặt lại dữ liệu trong hệ thống file cục bộ của máy tính cá nhân, trong Hadoop, dữ liệu đặt lại trong hệ thống file phân tán gọi là Hadoop Distributed File system.
- Mô hình xử lý được dựa trên Data Locality định nghĩa trong đó tính toán logic được gửi tới một nút (server) chứa dữ liệu.
- Một chương trình như vậy xử lý dữ liệu đặt trong Hadoop HDFS.
- Các ứng dụng xây dựng sử dụng HADOOP đang chạy trên các tập dữ liệu lớn phân tán trên các nhóm máy tính thương mại.
- Đó là yếu tốc chính để có thể có được một chiêc máy tính tốt hơn với giá thành thấp.
- Lịch sử Hadoop Hadoop được tạo ra bởi Dough Cutting, người sáng tạo ra Apache Lucene – bộ thư viện tạo chỉ mục tìm kiếm trên text được sử dụng rộng rãi.
- Hadoop bắt nguồn từ Nutch, một ứng dụng search engine nguồn mở.
- Nutch được khởi xướng từ năm 2002, và một hệ thống search engine (gồm crawler và tìm kiếm) nhanh chóng ra đời.
- Tuy nhiên, các nhà kiến trúc sư của Nutch nhanh chóng nhận ra rằng Nutch sẽ không thể mở rộng ra để có thể thực hiện vai trò searcher engine của mình trên tập dữ liệu hàng tỷ trang web (lúc khả năng của Nutch chỉ có thể crawl tối đa 100 triệu trang).
- Nguyên nhân chính của giới hạn này là do Nutch lúc này chỉ chạy trên một máy đơn (stand alone) nên gặp phải các khuyết điểm: Khả năng lưu trữ bị giới hạn: giả sử mỗi trang web cần 10kb đĩa cứng để lưu, thì với hơn 100 triệu trang ta cần 1 Tetabyte đĩa cứng, và với khối lượng hàng tỷ trang web đang có trên mạng thì cần có tới hàng chục petabye để lưu trữ.
- Tốc độ truy xuất chậm: với khối lượngdữ liệu lớn như vậy, việc truy xuất tuần tự để phân tích dữ liệu và index trở nên rất chậm chạp, và thời gian để đáp ứng các câu truy vấn tìm kiếm (search query) là không hợp lý.
- Năm 2003, Google công bố kiến trúc của hệ thống file phân tán GFS (viết tắt từ Google File System) của họ.
- Các nhà kiến trúc sư của Nutch thấy rằng GFS sẽ giải quyết được nhu cầu lưu trữ các file rất lớn từ quá trình crawl và index.
- Năm 2004, họ bắt tay vào việc ứng dụng kiến trúc của GFS vào cài đặt một hệ thống file phân tán nguồn mở có tên Nutch Distributed File System (NDFS).
- Vào đầu năm 2005, các nhà phát triển Nutch đã xây dựng được phiên bản MapReduce trên Nutch, và vào giữa năm 2005, tất cả các thuật toán chính của Nutch đều được cải tiến lại để chạy trên nền NDFS và MapReduce.
- NDFS và MapRecude trong Nutch đã nhanh chóng tìm được các ứng dụng của mình bên ngoài lĩnh vực search engine, và vào tháng hai 2006 Dough Cutting đã tách riêng NDFS và MapReduce ra để hình thành một dự án độc lập có tên Hadoop.
- Tại đây ông được tạo một môi trường tuyệt vời để phát triển Hadoop và vào tháng 2 năm 2008 Yahoo đã công bố sản phẩm search engine của họ được xây dựng trên một Hadoop cluster có kích thước 10.000 nhân vi xử lý.
- Vào thời gian này, Hadoop được sử dụng bởi rất nhiều công ty ngoài Yahoo! như Last.fm, Facebook, New York Times.
- Năm 2008, Hadoop đã phá kỷ lục thế giới về sắp xếp một terabyte dữ liệu.
- Chạy trên một cluster gồm 910 node, Hadoop đã sắp xếp một terabyte dữ liệu trong vòng 209 giây, phá kỷ lục cũ là 297 giây.
- Sau đó ít lâu, Google công bố ứng dụng chạy trên MapReduce của họ đã sắp xếp được một terabyte dữ liệu trong 68 giây.
- Vào tháng 5 năm 2009, một đội các nhà phát triển của Yahoo! đã dùng Hadoop để sắp xếp một terabyte dữ liệu trong vòng 62 giây.
- Các thành phần của Hadoop Ngày nay, ngoài NDFS (đã được đổi tên lại thành HDFS – Hadoop Distributed File System) và MapReduce, đội ngũ phát triển Hadoop đã phát triển các dự án con dựa trên HDFS và MapReduce.
- Hiện nay, Hadoop gồm có các dự án con sau: Hình 2-1 Cấu trúc các thành phần của Hadoop + Core: cung cấp các công cụ và giao diện cho hệ thống phân tán và các tiện ích I/O.
- MapReduce (MapReduce Engine): một framework giúp phát triển các ứng dụng phân tán theo mô hình MapReduce một cách dễ dàng và mạnh mẽ, ứng dụng phân tán MapReduce có thể chạy trên một cluster lớn với nhiều node.
- HDFS: hệ thống file phân tán, cung cấp khả năng lưu trữ dữ liệu khổng lồ và tính năng tối ưu hoá việc sử dụng băng thông giữa các node.
- HDFS có thể được sử dụng để chạy trên một cluster lớn với hàng chục ngàn node.
- HBase: một cơ sở dữ liệu phân tán, theo hướng cột (colunm-oriented).
- HBase sử dụng HDFS làm hạ tầng cho việc lưu trữ dữ liệu bên dưới, và cung cấp khả năng tính toán song song dựa trên MapReduce.
- Hive: một data warehouse phân tán.
- Hive quản lý dữ liệu được lưu trữ trên HDFS và cung cấp một ngôn ngữ truy vấn dựa trên SQL.
- Chukwa: một hệ thống tập hợp và phân tích dữ liệu.
- Chukwa chạy các collector (các chương trình tập hợp dữ liệu), các collector này lưu trữ dữ liệu trên HDFS và sử dụng MapReduce để phát sinh các báo cáo.
- Pig: ngôn ngữ luồng dữ liệu cấp cao và framework thực thi dùng cho tính toán song song.
- Phù hợp với việc phân tích Big Data Dữ liệu lớn hướng tới lưu trữ phân tán và không cấu trúc trong tự nhiên, các clusters là phù hợp nhất cho phân tích Big Data.
- Từ đây, nó được xử lý logic (không phải dữ liệu thực) tới các nút tính toán, lượng băng thông dược sử dụng là ít.
- Định nghĩa này gọi là data locality concept mà giúp tăng hiệu quả của các ứng dụng trên Hadoop.
- Khả năng mở rộng Các clusters có thể dễ dàng mở rộng quy mô bằng cách thên vào các nút cluster, do đó cho phép tăng sự tăng lên về kích thước của Big Data.
- Hơn nữa, sự mở rộng cũng không yêu cầu thay đổi tính logic của ứng dụng.
- Khả năng chịu lỗi (Fault Tolerance) Hệ sinh thái Hadoop có sự chuẩn bị để tái tạo dữ liệu vào trong các nút khác.
- Thoe cách đó, mặc dù một nốt xảy ra lỗi, dữ liệu vẫn được xử lý bằng cách sử dụng dữ liệu lưu trữ trong các nút khác.
- Ứng dụng của Hadoop trong một số công ty: Ngày nay, ngoài Yahoo!, có nhiều công ty sử dụng Hadoop như là một công cụ để lưu trữ và phân tích dữ liệu trên các khối dữ liệu lớn như: Twitter: sử dụng Hadoop để xử lý tweets (các bài viết văn bản lên đến 140 ký tự hiển thị trên profile của tác giả), logs và các nguồn dữ liệu phát sinh trong quá trình hoạt động của Twitter.
- Facebook: Sử dụng Hadoop để lưu trữ các log nội bộ và kích thước của nguồn dữ liệu.
- Các dữ liệu này được dùng làm nguồn cho các báo cáo phân tích và máy học.
- Hiện tại, facebook có 2 Hadoop cluster chính: một cluster 1100 máy với 8800 nhân và 12 Petabyte ổ cứng lưu trữ.
- A9.com – Amazon: Sử dụng Hadoop để đánh giá chỉ số tìm kiếm sản phẩm trên Amazon, xử lý đến hàng triệu Session mỗi ngày.
- Và còn rất nhiều công ty hiện đang sử dụng Hadoop vào việc lưu trữ và xử lý dữ liệu, đặc biệt cho các nguồn dữ liệu lớn với kích thước lên tới hàng petabyte