Ví dụ về cách 3 thành phần này tương tác với nhau
-
Giả sử bạn cần xử lý một tập dữ liệu lớn (ví dụ: 1TB) trên một cụm máy tính Hadoop gồm 20 node.
- HDFS sẽ chia tập dữ liệu thành các khối nhỏ (ví dụ: 128MB/khối) và lưu trữ chúng trên các node khác nhau trong cụm máy tính. Các khối dữ liệu được sao chép trên nhiều node để đảm bảo tính toàn vẹn của dữ liệu.
- Sau đó, YARN sẽ phân phối các tác vụ xử lý dữ liệu (ví dụ: MapReduce) trên các node khác nhau trong cụm máy tính. YARN sẽ phân phối các tài nguyên (bộ nhớ, CPU) cho các tác vụ xử lý dữ liệu và quản lý việc thực hiện các tác vụ này trên các node khác nhau.
- Cuối cùng, MapReduce sẽ thực hiện các tác vụ xử lý dữ liệu trên các khối dữ liệu được lưu trữ trên các node khác nhau. MapReduce sẽ tải các khối dữ liệu vào bộ nhớ, xử lý chúng và ghi kết quả vào HDFS. MapReduce sẽ chia tập dữ liệu thành các phần nhỏ hơn để xử lý song song trên nhiều node khác nhau và tổng hợp kết quả cuối cùng.
Tài liệu tham khảo
All rights reserved
Trong loạt công cụ dành cho việc xử lý Big Data, Hadoop nổi bật như một giải pháp hiệu quả và mạnh mẽ. Hadoop không chỉ giúp giải quyết vấn đề của lượng dữ liệu lớn, mà còn mang lại khả năng dự đoán và phân tích sâu rộng. Nó không chỉ là một công cụ thông thường, mà còn là một hệ sinh thái đầy đủ, đáp ứng được nhu cầu ngày càng cao của ngành công nghiệp xử lý và khai thác Big Data. Vậy nên, để hiểu rõ Hadoop là gì? Cách Hadoop hoạt động và đóng góp của nó trong lĩnh vực Big Data, hãy cùng tìm hiểu trong bài viết dưới đây.
Apache Hadoop là gì? Đây không chỉ là một framework mà còn là một dự án mã nguồn mở quan trọng, cho phép việc quản lý và lưu trữ dữ liệu lớn thông qua phương pháp xử lý phân tán. Điểm đặc biệt của Hadoop chính là sự tích hợp mô hình MapReduce vào quá trình xử lý dữ liệu lớn.
MapReduce, xuất phát từ Google, chịu trách nhiệm xử lý khối lượng lớn dữ liệu. Nó tiếp nhận dữ liệu lớn và chia thành các đơn vị nhỏ, sau đó sắp xếp và trích xuất dữ liệu phù hợp với yêu cầu người dùng. Mô hình này là cơ sở cho cách Google Search hoạt động hàng ngày.
Hadoop sử dụng MapReduce như một nền tảng lý tưởng, giúp người dùng tổng hợp và xử lý lượng thông tin lớn trong khoảng thời gian ngắn.
Đối với chức năng lưu trữ, Hadoop sử dụng HDFS (Hadoop Distributed File System). HDFS được thiết kế để có độ truy cập nhạy và chi phí thấp, tạo ra một kho thông tin linh hoạt và hiệu quả.
Hadoop ban đầu được phát triển bằng ngôn ngữ Java, nhưng nó cũng hỗ trợ nhiều ngôn ngữ lập trình khác như C++, Python, hoặc Pearl thông qua cơ chế streaming. Điều này tạo ra sự linh hoạt cho người phát triển sử dụng nền tảng này.
Apache Hadoop có các đặc điểm nổi bật như sự tích hợp MapReduce, HDFS hiệu quả và khả năng hỗ trợ nhiều ngôn ngữ, đã trở thành một công cụ mạnh mẽ trong việc xử lý và quản lý dữ liệu lớn, đồng thời mang lại hiệu suất và linh hoạt đáng kể cho người sử dụng.
Cách thành phần của Apache Hadoop là một hợp nhất giữa cấu trúc MapReduce và Hadoop Distributed File System (HDFS). Điều này giúp Hadoop kế thừa những đặc điểm quan trọng từ cả hai phần.
Một cụm Hadoop bao gồm một master node (node chủ) và nhiều worker/slave node (node nhân viên). Cụm này được chia thành hai lớp chính: MapReduce layer và HDFS layer. Master node có các thành phần quan trọng như JobTracker, TaskTracker, NameNode, và DataNode. Trong khi đó, Worker/Slave node chứa DataNode và TaskTracker, có thể sử dụng cho việc xử lý dữ liệu hoặc tính toán tùy thuộc từng yêu cầu cụ thể.
Apache Hadoop bao gồm 4 module chính, và dưới đây là giới thiệu chi tiết về từng loại:
Hadoop Common hoạt động như một thư viện lưu trữ các tiện ích của Java, cung cấp các tính năng cần thiết cho các modules khác. Thư viện này bao gồm hệ thống file và lớp OS trừu tượng. Ngoài ra, nó cũng chứa mã lệnh Java cần thiết để khởi động Hadoop.
Hadoop YARN (Yet Another Resource Negotiator) hoạt động như một framework hỗ trợ quản lý thư viện tài nguyên trong các cluster và thực hiện chạy các tiến trình phân tích. Điều này cung cấp sự linh hoạt cho việc phân phối và sử dụng nguồn lực, giúp tối ưu hóa hiệu suất của hệ thống.
Một trong những thách thức lớn của hệ thống phân tích Big Data là khả năng chịu tải. Không phải mọi hệ thống đều có khả năng xử lý lượng dữ liệu lớn một cách hiệu quả. Chính vì vậy, Hadoop Distributed File System (HDFS) ra đời với mục tiêu chính là phân tán và cung cấp khả năng truy cập thông lượng cao cho các ứng dụng chủ.
Khi HDFS nhận được một tệp tin, nó tự động chia file thành nhiều phần nhỏ. Những phần nhỏ này được nhân bản và phân tán lưu trữ trên nhiều máy chủ, giảm áp lực và tăng hiệu suất hệ thống. Cấu trúc của HDFS bao gồm master node và worker/slave node. Master node quản lý metadata của các file, trong khi worker/slave node (còn gọi là data node) chịu trách nhiệm lưu trữ dữ liệu.
Data node chứa nhiều khối dữ liệu nhỏ của tệp tin và dưới sự chỉ đạo của master node, chúng thực hiện các thao tác thêm, xóa dữ liệu nhằm duy trì cân bằng tải và tối ưu hóa hiệu suất hệ thống. HDFS giúp giải quyết một trong những thách thức lớn nhất của việc xử lý Big Data – quản lý dữ liệu lớn một cách hiệu quả.
Hadoop MapReduce là một module hoạt động dựa trên YARN, đóng vai trò quan trọng trong việc xử lý các tệp dữ liệu lớn. Module này cho phép phân tán dữ liệu từ máy chủ chính sang nhiều máy con khác nhau. Mỗi máy con nhận một phần dữ liệu, đồng thời thực hiện xử lý độc lập. Kết quả sau cùng được báo cáo và tổng hợp lại trên máy chủ.
Quá trình thực thi theo mô hình này mang lại nhiều lợi ích, như giảm thời gian xử lý và giảm áp lực cho hệ thống. Máy chủ chịu trách nhiệm quản lý tài nguyên, cung cấp thông báo và lập lịch hoạt động cho các máy con. Các máy con thực hiện các nhiệm vụ theo lịch trình được xác định trước và báo cáo kết quả về máy chủ.
Tuy nhiên, một điểm yếu của hệ thống là nếu máy chủ gặp sự cố, toàn bộ quá trình xử lý có thể bị tạm dừng. Điều này đòi hỏi sự ổn định và bảo trì đặc biệt để đảm bảo tính liên tục của hệ thống.
Hoạt động của Hadoop là gì? Hadoop hoạt động theo mô hình MapReduce, được thực hiện qua một loạt các giai đoạn cụ thể sau:
Giai đoạn 1: Yêu cầu xử lý người dùng hoặc ứng dụng gửi một job lên Hadoop để yêu cầu xử lý dữ liệu. Job này chứa các thông tin cơ bản như nơi lưu trữ dữ liệu input và output, các class Java chứa lệnh thực thi và các thiết lập cụ thể.
Giai đoạn 2: Phân phối công việc máy chủ, chia khối lượng công việc cho các máy trạm theo thông tin từ job. Nó theo dõi quá trình hoạt động của các máy trạm và thực hiện các lệnh quản lý khi có sự cố xảy ra.
Giai đoạn 3: Thực hiện MapReduce, các nodes thực hiện tác vụ MapReduce bằng cách chia nhỏ dữ liệu và xử lý nó một cách đồng thời. Trong quá trình hoạt động, Hadoop sử dụng một tệp tin nền làm địa chỉ thường trú. Tệp tin này có thể được phân tán trên một hoặc nhiều máy chủ khác nhau, tùy thuộc vào yêu cầu xử lý cụ thể.
Ưu điểm của Hadoop là gì? Chúng ta cùng tìm hiểu các ưu điểm của nó khi xử lý dữ liệu lớn:
Với đầy đủ thông tin từ định nghĩa, đặc điểm đến cách thức hoạt động, Hadoop là một công cụ mạnh mẽ để xử lý dữ liệu lớn. Việc nắm vững kiến thức này sẽ giúp bạn áp dụng Hadoop một cách hiệu quả trong công việc của mình. Hy vọng với các thông tin trên, bạn đã hiểu Hadoop là gì và các thông tin liên quan về nó. Chúc bạn học hỏi thành công và sử dụng ứng dụng Hadoop một cách thành thạo!
Xem thêm:
Nếu bạn muốn mua một laptop lập trình tốt, hãy đến ngay FPT Shop để nhận tư vấn các mẫu laptop chính hãng, giá thành ưu đãi.
Xem ngay các laptop cấu hình cao tại đây: Laptop cao cấp
Nhập số điện thoại mua hàng để hưởng đặc quyền riêng tại FPT Shop
Mã OTP đã được gửi đến số điện thoại
có hiệu lực trong
Đổi số điện thoại nhận mã
Quý khách vui lòng nhập mật khẩu để đăng nhập tài khoản
Mật khẩu có ít nhất 6 ký tự
Cập nhật thông tin tài khoản của quý khách
Big Data là dữ liệu rất lớn và phức tạp không thể xử lý bằng các phương pháp xử lý dữ liệu truyền thống. Big Data đòi hỏi một bộ công cụ và kỹ thuật để phân tích và khai thác thông tin từ nó.
Có một số công cụ Big Data có sẵn trên thị trường như Hadoop giúp lưu trữ và xử lý Big Data, Spark giúp tính toán trong bộ nhớ, Storm giúp xử lý nhanh hơn các dữ liệu luồng, MongoDB cung cấp các khả năng đa nền tảng. Do đó, mỗi công cụ có một chức năng riêng.
Phân tích và xử lý Big Data không phải là một nhiệm vụ dễ dàng. Big Data là một vấn đề lớn và để giải quyết nó, bạn cần một bộ công cụ Big Data không chỉ giải quyết vấn đề này mà còn giúp bạn tạo ra kết quả đáng kể.
Bài viết dưới đây giới thiệu cho bạn Top 8 công cụ Big Data hàng đầu có sẵn trên thị trường.
Nội dung
Những công cụ Big Data tốt nhất hiện nay
Big Data là một phần thiết yếu của hầu hết mọi tổ chức ngày nay và để có được kết quả cần thiết thông qua phân tích những dữ liệu này, cần có một bộ công cụ ở mỗi giai đoạn để xử lý và phân tích dữ liệu. Khi lựa chọn bộ công cụ cần phải xem xét một số yếu tố như sau: kích thước của bộ dữ liệu, giá của công cụ, loại phân tích sẽ được thực hiện,…
Với sự tăng trưởng theo cấp số nhân của Big Data, thị trường tràn ngập với hàng loạt công cụ khác nhau. Những công cụ giúp giảm thiểu chi phí và do đó làm tăng tốc độ phân tích.Hãy cùng tìm hiểu chi tiết về các công cụ Big Data ngay dưới đây bạn nhé!
Top 8 công cụ Big Data bạn nên biết
- Xem thêm: Big Data là gì? Ứng dụng của Big Data
Apache Hadoop
Apache Hadoop là một trong những công cụ được sử dụng phổ biến nhất. Hadoop là một bộ khung mã nguồn mở từ Apache và chạy trên phần cứng. Nó được sử dụng để lưu trữ quá trình và phân tích dữ liệu. Hadoop được viết bằng Java.
Apache Hadoop cho phép xử lý dữ liệu song song khi nó hoạt động trên nhiều máy cùng một lúc. Nó sử dụng cấu trúc cụm. Cụm là một nhóm các hệ thống được kết nối qua mạng LAN.
Nó bao gồm 3 phần:
- Hệ thống tệp phân tán Hadoop (HDFS) – Đây là lớp lưu trữ của Hadoop.
- Map-Reduce – Đây là lớp xử lý dữ liệu của Hadoop.
- YARN – Đây là lớp quản lý tài nguyên của Hadoop
Mọi công cụ được phát triển đi kèm với một số nhược điểm. Và Hadoop có một số nhược điểm sau đây:
- Hadoop không hỗ trợ xử lý thời gian thực. Nó chỉ hỗ trợ xử lý hàng loạt.
- Hadoop không thể thực hiện các phép tính trong bộ nhớ.
Apache Spark
Apache Spark có thể được coi là sự kế thừa của Hadoop khi nó khắc phục được những nhược điểm của Hadoop. Spark, không giống như Hadoop, hỗ trợ cả thời gian thực cũng như xử lý hàng loạt. Nó là một hệ thống phân cụm mục đích chung.
Nó cũng hỗ trợ tính toán trong bộ nhớ, khiến Apache Spark nhanh hơn 100 lần so với Hadoop. Điều này được thực hiện bằng cách giảm số lượng thao tác đọc/ ghi vào đĩa. Nó cung cấp sự linh hoạt hơn so với Hadoop vì nó hoạt động với các kho dữ liệu khác nhau như HDFS, OpenStack và Apache Cassandra.
Nó cung cấp các API cấp cao trong Java, Python, Scala và R. Spark cũng cung cấp một bộ công cụ cấp cao đáng kể bao gồm Spark SQL để xử lý dữ liệu có cấu trúc, MLlib cho Machine Learning, GraphX để xử lý tập dữ liệu đồ thị và Spark Streaming. Nó cũng bao gồm 80 toán tử cấp cao để thực hiện truy vấn hiệu quả.
Apache Storm
Apache Storm là hệ thống tính toán phân tán mã nguồn mở thời gian thực miễn phí. Nếu như Hadoop xử lý dữ liệu hàng loạt (Batch Processing) thì Apache Storm thực hiện xử lý dữ liệu luồng (Unbounded streams of data) một cách đáng tin cậy.
Ưu điểm lớn nhất của Apache Storm là dễ triển khai và có thể tương tác với bất kỳ ngôn ngữ lập trình nào.
Mặt khác, nó đảm bảo việc xử lý từng bộ dữ liệu. Tốc độ xử lý của nó rất nhanh và một tiêu chuẩn có thể quan sát được là tới một triệu tuple được xử lý mỗi giây trên mỗi nút.
Apache Cassandra
Apache Cassandra là hệ cơ sở dữ liệu phân tán, kết hợp những gì tinh tuý nhất của Google Bigtable và Amazon DynamoDB. Ngôn ngữ phát triển Cassandra là Java. Đây là một trong những công cụ dữ liệu lớn tốt nhất có thể chứa tất cả các loại tập dữ liệu cụ thể có cấu trúc, bán cấu trúc và không cấu trúc.
Cassandra được thiết kế có thể chạy trong phần cứng giá rẻ, và cung cấp write throughput khá là cao (latency tầm 0.5ms), trong khi read throughput thì thấp hơn (latency tầm 2.5ms).
MongoDB
MongoDB là một công cụ phân tích dữ liệu nguồn mở, cơ sở dữ liệu NoQuery cung cấp các khả năng đa nền tảng. Đây là công cụ dành cho doanh nghiệp cần dữ liệu nhanh chóng và thời gian thực để đưa ra quyết định.
MongoDB là công cụ hoàn hảo cho những người muốn các giải pháp dựa trên dữ liệu. Nó thân thiện với người dùng vì nó cung cấp cài đặt và bảo trì dễ dàng hơn. MongoDB là công cụ đáng tin cậy và tiết kiệm chi phí.
Nó được viết bằng C, C ++ và JavaScript. Đây là một trong những cơ sở dữ liệu phổ biến nhất cho Big Data vì nó tạo điều kiện thuận lợi cho việc quản lý dữ liệu phi cấu trúc hoặc dữ liệu thay đổi thường xuyên.
MongoDB sử dụng các lược đồ động. Do đó, bạn có thể chuẩn bị dữ liệu nhanh chóng. Điều này cho phép giảm chi phí tổng thể. Nó thực thi trên ngăn xếp phần mềm MEAN, các ứng dụng NET và, nền tảng Java. Nó cũng linh hoạt trong cơ sở hạ tầng đám mây.
Một số công cụ giúp lưu trữ và xử lý dữ liệu Big Data
R Programming
R là một ngôn ngữ lập trình nguồn mở và là một trong những ngôn ngữ phân tích thống kê toàn diện nhất. Nó là một ngôn ngữ lập trình đa mô hình cung cấp một môi trường phát triển năng động.
Ngôn ngữ R là mã nguồn mở nên ai trong chúng ta cũng có thể phân tích source code để hiểu được chính xác cách R vận hành. Bất kỳ ai cũng có thể thêm tính năng và fix bug mà không cần chờ nhà phát hành ra bản vá. Đồng thời, R có thể tích hợp được với ngôn ngữ khác (C,C++). Nó cũng cho phép chúng ta tương tác với nhiều nguồn dữ liệu và các gói thống kê (SAS, SPSS).
Kafka
Kafka là dự án mã nguồn mở, đã được đóng gói hoàn chỉnh, khả năng chịu lỗi cao và là hệ thống nhắn tin nhanh. Vì tính đáng tin cậy của nó, Kafka đang dần được thay thế cho hệ thống nhắn tin truyền thống. Nó được sử dụng cho các hệ thống nhắn tin thông thường trong các ngữ cảnh khác nhau.
Đây là hệ quả khi khả năng mở rộng ngang và chuyển giao dữ liệu đáng tin cậy, là những yêu cầu quan trọng nhất. Một vài ứng dựng hữu ích của Kafka:
- Website Activity Monitoring: theo dõi hoạt động của website
- Stream Processing: xử lý stream
- Log Aggregation: tổng hợp log
- Metrics Collection: thu thập dữ liệu
RapidMiner
Rapid Miner là một nền tảng phần mềm khoa học dữ liệu cung cấp một môi trường tích hợp để chuẩn bị dữ liệu, học máy, học sâu, khai thác văn bản và phân tích dự đoán. Đây là một trong những hệ thống mã nguồn mở hàng đầu cho khai thác dữ liệu.
Chương trình được viết hoàn toàn bằng ngôn ngữ lập trình Java. Chương trình cung cấp một tùy chọn để thử xung quanh với một số lượng lớn các toán tử tùy ý có thể lồng được chi tiết trong các tệp XML và được thực hiện với sự can thiệp của người dùng đồ họa của người khai thác nhanh.
Những công cụ Big Data kể trên không chỉ giúp bạn lưu trữ số lượng lớn dữ liệu mà còn giúp xử lý dữ liệu được lưu trữ một cách nhanh hơn và cung cấp cho bạn kết quả tốt hơn. Đa số các công cụ Big Data đã có sẵn trên thị trường. Bạn chỉ cần chọn công cụ phù hợp với dự án của bạn.
Nguồn: data-flair.training
Cách hoạt động của Hadoop là gì?
Giai đoạn 1
Người dùng hoặc ứng dụng sẽ gửi một job lên Hadoop để yêu cầu xử lý và thao tác. Job này sẽ đi kèm các thông tin cơ bản như: nơi lưu trữ dữ liệu input và output, các java class chứa các dòng lệnh thực thi, các thông số thiết lập cụ thể.
Giai đoạn 2
Sau khi nhận được các thông tin cần thiết, máy chủ sẽ chia khối lượng công việc đến cho các máy trạm. Máy chủ sẽ tiến hành theo dõi quá trình hoạt động của các máy trạm và đưa ra các lệnh cần thiết khi có lỗi xảy ra.
>>> Xem thêm : Ngôn ngữ Golang là gì? Tại sao bạn nên sử dụng ngôn ngữ này
Giai đoạn 3
Các nodes khác nhau sẽ tiến hành chạy tác vụ MapReduce. Nó chia nhỏ các khối và thay phiên nhau xử lý dữ liệu. Khi Hadoop hoạt động, nó sử dụng một tệp tin nền làm địa chỉ thường trú. Tệp tin này có thể tồn tại trên 1 hoặc nhiều máy chủ khác nhau.
Hadoop 1.x và Hadoop 2.x
- Hadoop có 2 phiên bản chính là Hadoop 1.x và hadoop 2.x, trong đó Hadoop 2.x là phiên bản tiếp theo của Hadoop 1.x. Dưới đây là 1 số so sanh cải tiến của Hadoop 2.x so với Hadoop 1.x
Hadoop 1.x | Hadoop 2.x | |
Sử dụng MapReduce và HDFS để lưu trữ và xử lý dữ liệu | Thành phần | Bổ sung thêm YARN để quản lý tài nguyên và cho phép các ứng dụng chạy trên Hadoop sử dụng tài nguyên một cách hiệu quả |
Có 1 NameNode và nhiều Data Node để lưu trữ dữ liệu | Lưu trữ | Có 2 loại NameNode là NameNode chính và NameNode phụ để cải thiện hiệu suất và độ tin cậy hơn |
Chạy một ứng dụng duy nhất trên mỗi cụm | Hỗ trợ | hỗ trợ nhiều ứng dụng khác nhau chạy trên cùng một cụm Hadoop |
hạn chế về hiệu suất và khả năng mở rộng | Hiệu suất và khả năng mở rộng | Cải tiến hiệu suất và khả năng mở rộng, cho phép xử lý các tập dữ liệu lớn và phức tạp hơn |
Nhìn vào hình vẽ trên, có lẽ các bạn cũng đã biết các thành phần trong Hadoop. Ở đây mình sẽ phân tích các thành phần của Hadoop 2.x, đó là
- HDFS
- YARN
- MapReduce
Tại sao dùng Hadoop?
Các điểm thuận lợi khi dùng Hadoop:
- Robus and Scalable – Có thể thêm node mới và thay đổi chúng khi cần.
- Affordable and Cost Effective – Không cần phần cứng đặc biệt để chạy Hadoop.
- Adaptive and Flexible – Hadoop được xây dựng với tiêu chí xử lý dữ liệu có cấu trúc và không cấu trúc.
- Highly Available and Fault Tolerant – Khi 1 node lỗi, nền tảng Hadoop tự động chuyển sang node khác.
Nguồn tham khảo:
- https://www.mastercode.vn/blog/web-development/hadoop-la-gi-huong-dan-cai-dat-cau-hinh-hadoop-tren-windows.84
-
Có thể bạn muốn xem thêm:
26 công cụ và kỹ thuật trong big data có thể bạn chưa biết
Big Data là gì? Tất tần tật về Big Data
Big data là gì? Trò chuyện cùng CTO của Datamart Solutions để hiểu hơn về data
Xem thêm Java Developer Jobs hấp dẫn lương cao tại TopDev!
Hadoop thì có liên quan gì tới Big Data?
Ở nội dung các bài viết trước, mình có giới thiệu qua về nội dung khóa học Data Science Fundamental và Data Analytics Fundamental để làm những bước đệm cho việc học về Data Science nói chung. Chắc hẳn nếu bạn có bạn bè làm về Data Science (Data Engineer, Data Scientist, ..) thì các cái tên Hadoop, Spark, … được nhắc lại nhiều lần và bạn có thể giống mình sẽ tự hỏi: Nó là gì? Mình có tìm các khóa về Spark thì kiến thức cần có trước khi học cần đó là Big Data và Hadoop. Trong bài viết này mình sẽ trình bày một số nội dung lý thuyết liên quan đến Hadoop. Lét gô
Big data
- Big data là thuật ngữ được sử dụng để chỉ các tập dữ liệu lớn và phức tạp, có thể không thể được xử lý bằng các công cụ truyền thống.
- Các tập dữ liệu này thường có kích thước lớn, tốc độ cập nhật nhanh và đa dạng về định dạng.
- Big data thường được tạo ra bởi các nguồn dữ liệu khác nhau, bao gồm các trang web, cảm biến, thiết bị di động, máy chủ, v.v.
- Các ứng dụng của big data là rất đa dạng, bao gồm phân tích dữ liệu, dự đoán và dự báo, hỗ trợ quyết định, máy học, và nhiều hơn thế nữa.
Vậy Hadoop là gì và có liên quan thế nào?
- Hadoop là một hệ sinh thái mã nguồn mở được sử dụng để lưu trữ và xử lý Big Data
- Hadoop có liên quan chặt chẽ đến Big Data vì nó cho phép lưu trữ và xử lý các tập dữ liệu lớn. Hadoop có thể xử lý các tập dữ liệu lớn và phức tạp bằng cách phân tán chúng trên nhiều node khác nhau trong mạng và sử dụng MapReduce để xử lý các tác vụ phân tán. Hadoop cũng hỗ trợ các công cụ và kỹ thuật khác để quản lý, truy vấn và phân tích dữ liệu lớn, bao gồm Pig, Hive, HBase, Spark, v.v. (Những khái niệm mới kia mình sẽ giải thích sau)
- Đến đây thì có vẻ dễ hiểu hơn mối quan hệ giữa chúng rồi đó. Chúng ta cùng đi tìm hiểu sâu hơn về Hadoop nào
How has the Hadoop ecosystem evolved?
The Hadoop ecosystem has grown significantly over the years due to its extensibility. Today, the Hadoop ecosystem includes many tools and applications to help collect, store, process, analyze, and manage big data. Some of the most popular applications are:
- Spark – An open source, distributed processing system commonly used for big data workloads. Apache Spark uses in-memory caching and optimized execution for fast performance, and it supports general batch processing, streaming analytics, machine learning, graph databases, and ad hoc queries.
- Presto – An open source, distributed SQL query engine optimized for low-latency, ad-hoc analysis of data. It supports the ANSI SQL standard, including complex queries, aggregations, joins, and window functions. Presto can process data from multiple data sources including the Hadoop Distributed File System (HDFS) and Amazon S3.
- Hive – Allows users to leverage Hadoop MapReduce using a SQL interface, enabling analytics at a massive scale, in addition to distributed and fault-tolerant data warehousing.
- HBase – An open source, non-relational, versioned database that runs on top of Amazon S3 (using EMRFS) or the Hadoop Distributed File System (HDFS). HBase is a massively scalable, distributed big data store built for random, strictly consistent, real-time access for tables with billions of rows and millions of columns.
- Zeppelin – An interactive notebook that enables interactive data exploration.
Hadoop hoạt động như thế nào?
Giai đoạn 1
Một user hay một ứng dụng có thể submit một job lên Hadoop (hadoop job client) với yêu cầu xử lý cùng các thông tin cơ bản:
- Nơi lưu (location) dữ liệu input, output trên hệ thống dữ liệu phân tán.
- Các java class ở định dạng jar chứa các dòng lệnh thực thi các hàm map và reduce.
- Các thiết lập cụ thể liên quan đến job thông qua các thông số truyền vào.
Giai đoạn 2
Hadoop job client submit job (file jar, file thực thi) và các thiết lập cho JobTracker. Sau đó, master sẽ phân phối tác vụ đến các máy slave để theo dõi và quản lý tiến trình các máy này, đồng thời cung cấp thông tin về tình trạng và chẩn đoán liên quan đến job-client.
Giai đoạn 3
TaskTrackers trên các node khác nhau thực thi tác vụ MapReduce và trả về kết quả output được lưu trong hệ thống file.
Khi “chạy Hadoop” có nghĩa là chạy một tập các trình nền – daemon, hoặc các chương trình thường trú, trên các máy chủ khác nhau trên mạng của bạn. Những trình nền có vai trò cụ thể, một số chỉ tồn tại trên một máy chủ, một số có thể tồn tại trên nhiều máy chủ.
Các daemon bao gồm:
- NameNode
- DataNode
- SecondaryNameNode
- JobTracker
- TaskTracker
Kiến trúc Hadoop là gì?
Một cụm Hadoop nhỏ gồm 1
master
node và nhiều
worker/slave
node. Toàn bộ cụm chứa 2 lớp, một lớp MapReduce Layer và lớp kia là HDFS Layer. Mỗi lớp có các thành phần liên quan riêng.
Master
node gồm JobTracker, TaskTracker, NameNode, và DataNode.
Slave/worker
node gồm DataNode, và TaskTracker. Cũng có thể
slave/worker
node chỉ là dữ liệu hoặc node để tính toán.
Hadoop framework gồm 4 module:
1.Hadoop Distributed File System (HDFS)
Đây là hệ thống file phân tán cung cấp truy cập thông lượng cao cho ứng dụng khai thác dữ liệu. Hadoop Distributed File System (HDFS) là hệ thống tập tin ảo. Khi chúng ta di chuyển 1 tập tin trên HDFS, nó tự động chia thành nhiều mảnh nhỏ. Các đoạn nhỏ của tập tin sẽ được nhân rộng và lưu trữ trên nhiều máy chủ khác để tăng sức chịu lỗi và tính sẵn sàng cao.
HDFS sử dụng kiến trúc master/slave, trong đó master gồm một NameNode để quản lý hệ thống file metadata và một hay nhiều slave DataNodes để lưu trữ dữ liệu thực tại.
Một tập tin với định dạng HDFS được chia thành nhiều khối và những khối này được lưu trữ trong một tập các DataNodes. NameNode định nghĩa ánh xạ từ các khối đến các DataNode. Các DataNode điều hành các tác vụ đọc và ghi dữ liệu lên hệ thống file. Chúng cũng quản lý việc tạo, huỷ, và nhân rộng các khối thông qua các chỉ thị từ NameNode.
Hadoop MapReduce
Đây là hệ thống dựa trên YARN dùng để xử lý song song các tập dữ liệu lớn. Là cách chia một vấn đề dữ liệu lớn hơn thành các đoạn nhỏ hơn và phân tán nó trên nhiều máy chủ. Mỗi máy chủ có 1 tập tài nguyên riêng và máy chủ xử lý dữ liệu trên cục bộ. Khi máy chủ xử lý xong dữ liệu, chúng sẽ gởi trở về máy chủ chính.
MapReduce gồm một single master (máy chủ) JobTracker và các slave (máy trạm) TaskTracker trên mỗi cluster-node. Master có nhiệm vụ quản lý tài nguyên, theo dõi quá trình tiêu thụ tài nguyên và lập lịch quản lý các tác vụ trên các máy trạm, theo dõi chúng và thực thi lại các tác vụ bị lỗi. Những máy slave TaskTracker thực thi các tác vụ được master chỉ định và cung cấp thông tin trạng thái tác vụ (task-status) để master theo dõi.
JobTracker là một điểm yếu của Hadoop Mapreduce. Nếu JobTracker bị lỗi thì mọi công việc liên quan sẽ bị ngắt quãng.
Hadoop Common
Đây là các thư viện và tiện ích cần thiết của Java để các module khác sử dụng. Những thư viện này cung cấp hệ thống file và lớp OS trừu tượng, đồng thời chứa các mã lệnh Java để khởi động Hadoop.
Hadoop YARN
Quản lý tài nguyên của các hệ thống lưu trữ dữ liệu và chạy phân tích.
What are the four main modules of Hadoop?
Hadoop consists of four main modules:
- Hadoop Distributed File System (HDFS) – A distributed file system that runs on standard or low-end hardware. HDFS provides better data throughput than traditional file systems, in addition to high fault tolerance and native support of large datasets.
- Yet Another Resource Negotiator (YARN) – Manages and monitors cluster nodes and resource usage. It schedules jobs and tasks.
- MapReduce – A framework that helps programs do the parallel computation on data. The map task takes input data and converts it into a dataset that can be computed in key value pairs. The output of the map task is consumed by reduce tasks to aggregate output and provide the desired result.
- Hadoop Common – Provides common Java libraries that can be used across all modules.
MapReduce
- MapReduce là một mô hình lập trình được sử dụng để xử lý dữ liệu lớn song song và phân tán trên các cụm máy tính
-
MapReduce bao gồm 2 hàm chính được định nghĩa bởi người dùng
- Map: bộ lọc (filter) và phân loại (sort) trên dữ liệu.
- Reduce:quá trình tổng hợp toàn bộ dữ liệu
-
Ví dụ cho hình vẽ trên: Bài toán đặt ra là tính tổng số lượng các loại hoa quả với dữ liệu nằm trong các file khác nhau (2 files)
- Input: Các tập tin được lưu trữ trong HDFS
- Splitting: Các tập tin được chia thành nhiều phần nhỏ hơn – gọi là input splits (ở đây mỗi input split là một dòng dữ liệu)
- Mapping: Các input splittings được chuyển đến các máy tính trong cụm Hadoop để được xử lý. Các mapper sẽ chuyển đổi input split thành các cặp key-value
- Shuffling: Sau khi các mapper đã tạo ra các cặp key-value, các cặp này sẽ được sắp xếp lại dựa trên key của chúng
- Reducing: Các reducer sẽ lấy các cặp key-value và thực hiện phép tính trên chúng để tạo ra kết quả cuối cùng (ở đây là cộng để tính tổng số lượng)
- Output: Kết quả xử lý sẽ được lưu trữ trong một tập tin đầu ra
Combiner và Partitioner
-
Trong MapReduce, Combiner và Partitioner là hai thành phần quan trọng để tối ưu hóa hiệu suất xử lý.
- Combiner giúp giảm lượng dữ liệu cần được xử lý bởi Reducer bằng cách kết hợp các giá trị giống nhau và loại bỏ các giá trị trùng lặp.
- Partitioner giúp phân phối dữ liệu đầu vào đến các Reducer theo cách tối ưu để giảm thời gian xử lý. Partitioner sẽ ánh xạ các cặp khóa-giá trị được tạo ra bởi Mapper đến các Reducer theo một cách nhất định, thông qua hàm hash. Quá trình phân vùng này giúp đảm bảo rằng các khóa giống nhau sẽ được gửi đến cùng một Reducer, giúp giảm thời gian xử lý và tối ưu hóa hiệu suất của hệ thống MapReduce.
HDFS
- HDFS (Hadoop Distributed File System) là một hệ thống tệp phân tán được sử dụng trong hệ sinh thái Hadoop để lưu trữ và quản lý các tập dữ liệu lớn.
- HDFS hoạt động bằng cách phân tán các tập dữ liệu thành các khối (block) nhỏ và lưu trữ chúng trên nhiều node khác nhau trong cụm máy tính.
- HDFS cũng sử dụng các cơ chế bảo vệ dữ liệu như sao lưu (replication) để đảm bảo tính toàn vẹn của dữ liệu.
- HDFS cũng cung cấp các tính năng như đọc/ghi dữ liệu từ xa và phân quyền truy cập dữ liệu để quản lý việc truy cập vào tập dữ liệu trong cụm máy tính.
HDFS đọc ghi thế nào?
-
Để phân tích quá trình đọc và ghi trên HDFS, chúng ta sẽ cùng đến với một ví dụ sau: Giả sử chúng ta có một tập dữ liệu lớn được chia thành 4 phân vùng và lưu trữ trên HDFS với cấu trúc phân tán như sau:
- Phân vùng 1: Chứa 2 khối dữ liệu, lưu trữ trên DataNode 1 và DataNode 2.
- Phân vùng 2: Chứa 3 khối dữ liệu, lưu trữ trên DataNode 2, DataNode 3 và DataNode 4.
- Phân vùng 3: Chứa 1 khối dữ liệu, lưu trữ trên DataNode 3.
- Phân vùng 4: Chứa 4 khối dữ liệu, lưu trữ trên DataNode 4, DataNode 5 và DataNode 6.
-
Trong quá trình đọc tập dữ liệu:
- Xác định vị trí lưu trữ của dữ liệu: Ứng dụng đọc dữ liệu sẽ truy vấn HDFS để xác định vị trí lưu trữ của các khối dữ liệu cần đọc.
- Lấy dữ liệu từ các node lưu trữ: HDFS sẽ lấy các khối dữ liệu từ các node lưu trữ và trả về cho ứng dụng đọc dữ liệu.
- Ghép các khối dữ liệu lại với nhau: Sau khi dữ liệu được lấy từ các node lưu trữ, các khối dữ liệu sẽ được ghép lại với nhau để tạo thành các tập tin gốc ban đầu.
- Đọc dữ liệu: Dữ liệu được trả về cho ứng dụng để xử lý hoặc hiển thị cho người dùng.
- Xác nhận: Sau khi dữ liệu được đọc, HDFS sẽ trả về một thông báo xác nhận cho ứng dụng để cho biết dữ liệu đã được đọc thành công hoặc không.
-
Trong quá trình ghi tập dữ liệu:
- Xác định vị trí lưu trữ: Hệ thống băm HDFS sẽ tính toán các vị trí lưu trữ cho từng khối dữ liệu, dựa trên hệ thống tên miền phân tán (Distributed Namespace) của HDFS.
- Sao chép dữ liệu: Mỗi khối dữ liệu được sao chép sang ít nhất hai node khác nhau trong cụm để đảm bảo tính toàn vẹn dữ liệu. Số lượng sao chép này có thể được cấu hình.
- Ghi dữ liệu: Dữ liệu được ghi vào HDFS tại các vị trí lưu trữ đã được xác định. Nếu có nhiều tập tin được ghi vào HDFS, các khối dữ liệu của chúng được lưu trữ trên các node khác nhau trong cụm Hadoop.
- Xác nhận: Sau khi dữ liệu đã được ghi vào HDFS, HDFS sẽ trả về một thông báo xác nhận cho ứng dụng để cho biết dữ liệu đã được ghi thành công hoặc không.
- Ghi nhật ký (WAL): HDFS sử dụng một bản ghi nhật ký để đảm bảo tính toàn vẹn dữ liệu. Mỗi khi dữ liệu được ghi vào HDFS, HDFS sẽ ghi một bản ghi nhật ký (gọi là Write Ahead Log – WAL) để đảm bảo rằng dữ liệu đã được ghi đúng và đầy đủ.
Sẽ ra sao nếu một DataNode bị hỏng
Khi một DataNode trong HDFS bị hỏng hoặc không thể truy cập được, HDFS có các cơ chế xử lý lỗi tự động nhằm đảm bảo tính tin cậy của dữ liệu:
- Replication: HDFS sử dụng cơ chế sao lưu (replication) để đảm bảo tính tin cậy của dữ liệu. Khi một DataNode bị hỏng, các khối dữ liệu trên DataNode đó sẽ không thể truy cập được. Tuy nhiên, các bản sao của các khối dữ liệu đó được lưu trữ trên các DataNode khác nhau. HDFS sẽ tự động sao chép các bản sao này đến các DataNode khác để thay thế cho các khối dữ liệu bị hỏng.
- Block replication: Nếu một khối dữ liệu bị hỏng và không thể sao chép lại được, HDFS sẽ sử dụng cơ chế block replication để tạo ra các bản sao mới của khối dữ liệu đó và lưu trữ trên các DataNode khác nhau.
- Balancing: HDFS sử dụng cơ chế cân bằng tải (balancing) để đảm bảo rằng dữ liệu được phân phối đồng đều trên các DataNode. Khi một DataNode bị hỏng, HDFS sẽ tự động cân bằng lại dữ liệu trên các DataNode khác nhau để đảm bảo tính tin cậy của dữ liệu.
- Replication factor: HDFS sử dụng replication factor để đảm bảo tính tin cậy của dữ liệu. Khi một DataNode bị hỏng, HDFS sẽ tăng replication factor lên để tạo ra thêm các bản sao của các khối dữ liệu trên các DataNode khác nhau để đảm bảo tính tin cậy của dữ liệu.
- Heartbeat: HDFS sử dụng cơ chế heartbeat để kiểm tra tính khả dụng của các DataNode. Khi một DataNode không phản hồi trong khoảng thời gian quy định, HDFS sẽ coi DataNode đó là bị hỏng và thực hiện các cơ chế xử lý lỗi như đã nêu trên.
How can AWS support your Hadoop requirements?
Amazon EMR is a managed service that lets you process and analyze large datasets using the latest versions of big data processing frameworks such as Apache Hadoop, Spark, HBase, and Presto on fully customizable clusters.
- Easy to use: You can launch an Amazon EMR cluster in minutes. You don’t need to worry about node provisioning, cluster setup, Hadoop configuration, or cluster tuning.
- Low cost: Amazon EMR pricing is simple and predictable: You pay an hourly rate for every instance hour you use and you can leverage Spot Instances for greater savings.
- Elastic: With Amazon EMR, you can provision one, hundreds, or thousands of compute instances to process data at any scale.
- Transient: You can use EMRFS to run clusters on-demand based on HDFS data stored persistently in Amazon S3. As jobs finish, you can shut down a cluster and have the data saved in Amazon S3. You pay only for the compute time that the cluster is running.
-
Secure: Amazon EMR uses all common security characteristics of AWS services:
- Identity and Access Management (IAM) roles and policies to manage permissions.
- Encryption in-transit and at-rest to help you protect your data and meet compliance standards, such as HIPAA.
- Security groups to control inbound and outbound network traffic to your cluster nodes.
- AWS CloudTrail: Audit all Amazon EMR PI calls made in your account to provide security analysis, resource change tracking, and compliance auditing.
Get started with Hadoop on AWS by creating an account today.
Kết luận
Vừa rồi Teky đã mang đến nhiều thông tin hữu ích xoay quanh chủ đề Hadoop là gì. Với những liệt kê đầy đủ từ định nghĩa, đặc điểm cho đến cách thức hoạt động, mong rằng bạn đã có thể nắm chắc trong tay các kiến thức về công cụ xử lý Big Data hữu hiệu này. Chúc bạn có thể nhanh chóng học hỏi được và áp dụng Hadoop nhuần nhuyễn vào trong công việc của ban thân nhé!
Hadoop là gì? Giới thiệu về công cụ phân tích Big Data hiệu quả
Big Data đang là một trong những lĩnh vực màu mỡ nhất của ngành công nghệ. Khối lượng dữ liệu khổng lồ mà Big Data mang đến đóng vai trò vô cùng to lớn. Big Data có thể giúp dự đoán thị trường, phân tích nhu cầu, xu hướng, dự đoán dịch bệnh hay thậm chí là xác định điều kiện giao thông tức thời. Vì mang trong mình số lượng thông tin lớn nên Big Data không thể được xử lý bằng những công cụ truyền thống không. Ngành công nghệ sẽ sử dụng các công cụ phân tích Big Data chuyên dụng để xử lý lĩnh vực khó nhằn này. Một trong số đó là Hadoop. Vậy bạn đã biết Hadoop là gì hay chưa? Theo dõi ngay bài viết sau.
YARN
- Trong khi HDFS được sử dụng để lưu trữ và quản lý dữ liệu, YARN được sử dụng để quản lý tài nguyên và thực thi các ứng dụng trên cụm máy chủ Hadoop.
- YARN là một hệ thống quản lý tài nguyên phân tán được thiết kế để quản lý tài nguyên của các ứng dụng Hadoop. YARN giúp chia nhỏ các ứng dụng lớn thành các tác vụ nhỏ hơn, được gọi là container, và phân phối chúng trên các Node Manager để thực thi.
- YARN cung cấp các cơ chế độc lập ngôn ngữ, cho phép các ứng dụng được viết bằng nhiều ngôn ngữ khác nhau, chẳng hạn như Java, Python, Scala và R. YARN cũng cung cấp các cơ chế quản lý tài nguyên linh hoạt, cho phép quản lý tài nguyên dựa trên nhu cầu của các ứng dụng.
- Sự liên kết giữa YARN và HDFS là rất quan trọng trong việc xử lý dữ liệu lớn trên Hadoop. Khi một ứng dụng Hadoop được chạy trên YARN, YARN sẽ cung cấp các tài nguyên phần cứng và phần mềm cần thiết cho ứng dụng đó. Ứng dụng này có thể truy cập dữ liệu được lưu trữ trên HDFS để xử lý.
- Điều này có nghĩa là YARN sẽ xác định các tài nguyên phần cứng và phần mềm cần thiết để chạy ứng dụng, sau đó YARN sẽ yêu cầu HDFS để truy cập dữ liệu cần thiết để xử lý. Sau đó, HDFS sẽ cung cấp các khối dữ liệu cho ứng dụng để xử lý.
How does Hadoop work?
Hadoop makes it easier to use all the storage and processing capacity in cluster servers, and to execute distributed processes against huge amounts of data. Hadoop provides the building blocks on which other services and applications can be built.Applications that collect data in various formats can place data into the Hadoop cluster by using an API operation to connect to the NameNode. The NameNode tracks the file directory structure and placement of “chunks” for each file, replicated across DataNodes. To run a job to query the data, provide a MapReduce job made up of many map and reduce tasks that run against the data in HDFS spread across the DataNodes. Map tasks run on each node against the input files supplied, and reducers run to aggregate and organize the final output.
Hadoop là gì?
Hadoop là một Apache framework mã nguồn mở cho phép phát triển các ứng dụng phân tán (distributed processing) để lưu trữ và quản lý các tập dữ liệu lớn. Hadoop hiện thực mô hình MapReduce, mô hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phân đoạn khác nhau được chạy song song trên nhiều node khác nhau. Hadoop được viết bằng Java tuy nhiên vẫn hỗ trợ C++, Python, Perl bằng cơ chế streaming.
Kiến trúc của Hadoop là gì?
Vì sử dụng cùng lúc MapReduce và HDFS nên Hadoop sẽ có cấu trúc của cả 2 loại này. Hadoop kế thừa cấu trúc node từ HDFS. Cụ thể, một cụm Hadoop sẽ bao gồm 1 master node (node chủ) và rất nhiều worker/slave node (node nhân viên). Một cụm cũng bao gồm 2 phần là MapReduce layer và HDFS layer. Master node bao gồm JobTracker, TaskTracker, NameNode, và DataNode. Còn Worker/Slave node bao gồm DataNode và TaskTracker. Trong một số trường hợp, Worker/Slave node được dùng để làm dữ liệu hoặc tính toán.
Hadoop Apache bao gồm 4 module khác nhau. Sau đây sẽ là giới thiệu chi tiết về từng loại.
Hadoop Common
Hadoop Common được dùng như một thư viện lưu trữ các tiện ích của Java. Tại đây có những tính năng cần thiết để các modules khác sử dụng. Những thư viện này mang đến hệ thống file và lớp OS trừu tượng. Song song với đó, nó cũng lưu trữ các mã lệnh của Java để thực hiện quá trình khởi động Hadoop.
Hadoop YARN – Hadoop là gì?
Phần này được dùng như một framework. Nó hỗ trợ hoạt động quản lý thư viện tài nguyên của các cluster và thực hiện chạy phân tích tiến trình.
Hiểu rõ cách hoạt động của các modules sẽ giúp bạn nắm rõ khái niệm Hadoop là gì.
Hadoop Distributed File System (HDFS)
Một trong những vấn đề lớn nhất của các hệ thống phân tích Big Data là quá tải. Không phải hệ thống nào cũng đủ khỏe để có thể tiếp nhận một lượng thông tin khổng lồ như vậy. Chính vì thế, nhiệm vụ của Hadoop Distributed File System là phân tán cung cấp truy cập thông lượng cao giúp cho ứng dụng chủ. Cụ thể, khi HDFS nhận được một tệp tin, nó sẽ tự động chia file đó ra thành nhiều phần nhỏ. Các mảnh nhỏ này được nhân lên nhiều lần và chia ra lưu trữ tại các máy chủ khác nhau để phân tán sức nặng mà dữ liệu tạo nên.
Như đã nói ở trên, HDFS sử dụng cấu trúc master node và worker/slave node. Trong khi master node quản lý các file metadata thì worker/slave node chịu trách nhiệm lưu trữ dữ liệu. Chính vì thế nên worker/slave node cũng được gọi là data node. Một Data node sẽ chứa nhiều khối được phân nhỏ của tệp tin lớn ban đầu. Dựa theo chỉ thị từ Master node, các Data node này sẽ trực tiếp điều hành hoạt động thêm, bớt những khối nhỏ của tệp tin.
>>> Xem thêm : Prototype là gì? Tầm quan trọng của Prototype trong Javascript
Hadoop MapReduce
Module này hoạt động dựa trên YARN trong việc xử lý các tệp dữ liệu lớn. Hadoop MapReduce cho phép phân tán dữ liệu từ một máy chủ sang nhiều máy con. Mỗi máy con này sẽ nhận một phần dữ liệu khác nhau và tiến hành xử lý cùng lúc. Sau đó chúng sẽ báo lại kết quả lên máy chủ. Máy chủ tổng hợp thông tin lại rồi trích xuất theo như yêu cầu của người dùng.
Cách thực thi theo mô hình như vậy giúp tiết kiệm nhiều thời gian xử lý và cũng giảm gánh nặng lên hệ thống. Chức năng của máy chủ là quản lý tài nguyên, đưa ra thông báo, lịch trình hoạt động cho các máy trạm. Các máy trạm sẽ thực thi theo kế hoạch được định sẵn và gửi báo cáo dữ liệu lại cho máy chủ. Tuy nhiên đây cũng là điểm yếu của hệ thống này. Nếu máy chủ bị lỗi thì toàn bộ quá trình sẽ bị ngừng lại hoàn toàn.
Tìm hiểu Apache Hadoop là gì?
Hadoop là một dạng framework, cụ thể là Apache. Apache Hadoop là một mã nguồn mở cho phép sử dụng các distributed processing (ứng dụng phân tán) để quản lý và lưu trữ những tệp dữ liệu lớn. Hadoop áp dụng mô hình MapReduce trong hoạt động xử lý Big Data.
Vậy MapReduce là gì? MapReduce vốn là một nền tảng được Google tạo ra để quản lý dữ liệu của họ. Nhiệm vụ của MapReduce là tiếp nhận một khối lượng dữ liệu lớn. Sau đó sẽ tiến hành tách các dữ liệu này ra thành những phần nhỏ theo một tiêu chuẩn nào đó. Từ đó sẽ sắp xếp, trích xuất các tệp dữ liệu con mới phù hợp với yêu cầu của người dùng. Đây cũng là cách mà thanh tìm kiếm của Google hoạt động trong khi chúng ta sử dụng hằng ngày.
Còn bản thân Hadoop cũng là một dạng công cụ mẫu giúp phân tán dữ liệu theo mô hình như vậy. Cho nên MapReduce được sử dụng như một nền tảng lý tưởng của Hadoop. Về cơ bản, Hadoop sẽ giúp người dùng tổng hợp và xử lý một lượng thông tin lớn trong thời gian ngắn bằng MapReduce.
Còn với chức năng lưu trữ, Hadoop sẽ dùng HDFS. HDFS là gì? Nó được biết đến như một kho thông tin có độ truy cập nhạy và chi phí thấp.
Hadoop được phát triển nên từ ngôn ngữ Java. Tuy nhiên nó vẫn hỗ trợ một số ngôn ngữ lập trình khác như C++, Python hay Pearl nhờ cơ chế streaming.
>>> Xem thêm : Socket là gì? – Tìm hiểu khái niệm các loại socket phổ biến hiện nay
Ưu điểm của Hadoop là gì?
Hadoop cho phép người dùng nhanh chóng kiểm tra được tiến trình hoạt động của các phân tán. Nhờ vào cơ chế xử lý cùng lúc của các lõi CPU, một lượng lớn dữ liệu được phân phối xuyên suốt liên tục và không bị gián đoạn do quá tải.
Hadoop không bị ảnh hưởng bởi cơ chế chịu lỗi của fault-tolerance and high availability (FTHA). Nó có khả năng xử lý lỗi riêng nhờ các thư viện được thiết kế để phát hiện lỗi ở các lớp ứng dụng. Chính vì thế, khi không may có lỗi xảy ra, Hadoop sẽ nhanh chóng xử lý nó trong thời gian ngắn nhất nhờ cơ chế chủ động của mình.
Một ưu điểm nữa của Hadoop là khả năng triển khai rất nhiều master-slave song song để xử lý các phần khác nhau. Vì có nhiều server master nên công việc sẽ công bị trì hoãn dù không may có một master bị lỗi.
Và cuối cùng, do Hadoop được xây dựng từ ngôn ngữ Java nên nó có khả năng tương thích với rất nhiều nền tảng và hệ điều hành khác nhau, từ Window, Linux đến MacOs…
Mời bạn đọc tham khảo thêm:OpenCV là gì? Cách sử dụng OpenCV như thế nào
Học Viện Công Nghệ Teky được chọn là địa chỉ học lập trình uy tín nhất cho trẻ
TEKY là Học viện sáng tạo công nghệ với chương trình giảng dạy STEAM (Science – Technology – Engineering – Art – Mathematics) theo chuẩn Mỹ đầu tiên tại Việt Nam dành cho trẻ em từ 4 đến 18 tuổi.
Được thành lập vào tháng 6 năm 2016, TEKY quyết tâm thực hiện sứ mệnh mang đến cho thế hệ trẻ Việt Nam kiến thức toàn diện về STEAM, đặc biệt là các tư duy công nghệ, khoa học máy tính và kỹ năng thế kỷ 21 – 4Cs (Critical Thinking: Tư duy phản biện – Communication: Giao tiếp – Creativity: Sáng tạo – Collaboration: Làm việc nhóm).
Đây là chương trình không chỉ trang bị kiến thức lập trình mà còn rèn luyện nhóm kỹ năngTrẻ sẽ được:
- Học tư duy phản biện thông qua việc phân tích các vấn đề.
- Học tính sáng tạo tư duy Logic thông qua việc lắp đặt và lập trình robot th ông qua các mô hình Lego Mindstorm, app trò chơi. Giúp con học giỏi môn Toán trên lớp
- Kỹ năng hợp tác thông qua các trò chơi team-building, các dự án nhóm trên lớp.
- Phát huy khả năng giao tiếp hiệu quả bằng nhiều bài tập và hoạt động hấp dẫn.
Các bộ môn giảng dạy tại Teky gồm: Lập trình và phát triển ứng dụng, lập trình game, lập trình web với python Lập trình Scratch Robotics Engineering, Công nghệ 3D và MultiMedia. Chúng tôi tin rằng trẻ em Việt Nam có cơ hội phát triển mạnh mẽ trong một nền kinh tế số và cần được trang bị sẵn sàng để trở thành những doanh nhân công nghệ trong tương lai.
Liên hệ ngay học viện công nghệ sáng tạo TEKY để được tư vấn khóa học:
- Cam kêt 7 tuổi có thể lập trình
- Top 10 dự án giáo dục có tầm ảnh hưởng nhất Đông Nam Á 2017 & 2018
- Top 3 Dự án xuất sắc nhất, NextGen – Thụy Sĩ
- Hotline Hà Nội: 024-7109-6668 | 0975-241-015
- Hotline Hồ Chí Minh: 028-7109 9948 | 097-900-8642
Website https://teky.edu.vn | Email: [email protected] |
Giải pháp Big Data – Hadoop
Bài đăng này đã không được cập nhật trong 2 năm
Big data là gì?
Với sự phát triển không ngừng của mang xã hội, sự ra đời của các thiết bị mới tiên tiến, mọi hoạt động thường ngày đang dần được internet hóa. Dẫn đến lượng thông tin ngày càng đa dạng đã đặt ra thách thức cho các nền công nghiệp khác nhau phải tìm một phương pháp khác để xử lý dữ liệu. Big Data có thể hiểu là “Dữ liệu lớn” – sở dĩ có tên gọi là Big data không đơn giản đó nói về khối lượng dữ liệu, còn có 2 yếu tố khác là tốc độ dữ liệu và tính đa dạng của dữ liệu.
Những nguồn thông tin chính tạo ra Big data:
- Dữ liệu từ các kênh truyền thông xã hội: Facebook, Instagram, Twiter..
- Dữ liệu giao dịch chứng khoán
- Dữ liệu điện lực
- Dữ liệu giao thông
- Các dữ liệu tìm kiếm
Giải pháp nào cho Big data?
- Big Data lớn về số lượng, dữ liệu phức tạp có thể có cấu trúc hoặc không có cấu trúc (noSQL). Những yếu tố này làm cho Big Data khó bắt giữ lại, khai phá và quản lý nếu dùng các phương thức truyền thống.
Ví dụ bạn có một con server, với lượng data khổng lồ, bạn chỉ có thể nghĩ đến phương án tăng RAM, tăng CPU. Nhưng số lượng đó cũng có giới hạn. Vậy thì phải làm sao?
Hadoop ra đời để giải quyết vấn đề đó
Hadoop là gì?
Năm 2005, Hadoop được tạo ra bởi Doug Cutting và Mike Cafarella khi làm việc tại Yahoo. Doug Cutting đặt tên Hadoop theo con voi đồ chơi của con trai mình
- Là Framework cho phép phát triển các ứng dụng phân tán.
- Hadoop hiện thực mô hình MapReduce, mô hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phân đoạn khác nhau được chạy song song trên nhiều node khác nhau
- Viết bằng Java tuy nhiên hỗ trợ được các ngôn ngữ khác như C++, Python, Perl bằng cơ chế streaming.
- Là một ứng dụng Linux-based (chỉ chạy trên môi trường Linux).
Vấn đề mà Hadoop giải quyết
- Làm việc với khối lượng dữ liệu khổng lồ (tính bằng Petabyte).
- Xử lý trong môi trường phân tán, dữ liệu lưu trữ ở nhiều phần cứng khác nhau, yêu cầu xử lý đồng bộ
- Các lỗi xuất hiện thường xuyên.
- Băng thông giữa các phần cứng vật lý chứa dữ liệu phân tán có giới hạn.
Hướng giải quyết của Hadoop
- Quản lý file phân tán: Hadoop Distributed File System (HDFS) sẽ chia nhỏ dữ liệu ra thành nhiều phần. Dữ liệu được quản lý một cách có hệ thống.
- MapReduce là mô hình tổ chức của Hadoop, MapReduce sẽ chia nhỏ task ra thành nhiều phần và xử lý song song trên các Node CPU khác nhau, máy chủ là Master Node
Các điểm thuận lợi khi dùng Hadoop
- Robus and Scalable – Có thể thêm node mới và thay đổi chúng khi cần.
- Affordable and Cost Effective – Không cần phần cứng đặc biệt để chạy Hadoop.
- Adaptive and Flexible – Hadoop được xây dựng với tiêu chí xử lý dữ liệu có cấu trúc và không cấu trúc.
- Highly Available and Fault Tolerant – Khi 1 node lỗi, nền tảng Hadoop tự động chuyển sang node khác.
- Một điểm cộng khác cho Hadoop nó là mã nguồn mở, có thể tương thích với tất cả platforms
Tóm lại, Big Data đã và đang được nghiên cứu và ứng dụng rộng rãi trong nhiều lĩnh vực, từ các ông lớn trong lĩnh vực công nghệ như Google, Facebook, Twitter… cũng như các công ty trong nước và ngoài nước. Big Data là thách thức đặt ra cho các tổ chức, doanh nghiệp trong thời đại số hiện nay. Một khi làm chủ được dữ liệu lớn thì họ sẽ có cơ hội thành công lớn hơn trong bối cảnh cạnh tranh ngày nay, thế giới thì sẽ được hưởng lợi hơn từ việc trích xuất thông tin một cách chính xác hơn, hữu ích hơn với chi phí thấp hơn. Trong tương lai, chúng ta sẽ còn tiếp tục chứng kiến sự tăng trưởng của Big Data.
Tham khảo: https://www.tutorialspoint.com/hadoop/
All rights reserved
Big Data đang trở thành một phần thế mạnh và là tài sản to lớn của mỗi công ty, và Hadoop là công nghệ cốt lõi cho việc lưu trữ và truy cập dữ liệu lớn.
Keywords searched by users: hadoop and big data
Categories: Tóm tắt 66 Hadoop And Big Data
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/