HBase
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> HBase

Hadoop - Hướng dẫn Apache Hadoop cho người mới bắt đầu

Mục tiêu chính của Hadoop này Hướng dẫn là mô tả từng khía cạnh của Apache Hadoop Framework. Về cơ bản, hướng dẫn này được thiết kế theo cách có thể dễ dàng học Hadoop từ những điều cơ bản.

Trong bài viết này, chúng tôi sẽ cố gắng hết sức để trả lời các câu hỏi như Big data Hadoop là gì, nhu cầu của Hadoop là gì, lịch sử của Hadoop là gì và cuối cùng là ưu nhược điểm của Apache Hadoop framework.

Chúng tôi hy vọng rằng sau khi đọc bài viết này, bạn sẽ hiểu rõ về Hadoop Framework là gì.

Hadoop là gì?

Nó là một khung phần mềm mã nguồn mở để lưu trữ phân tán và xử lý số lượng lớn các tập dữ liệu. Mã nguồn mở có nghĩa là nó có sẵn miễn phí và thậm chí chúng tôi có thể thay đổi mã nguồn của nó theo yêu cầu của bạn.

Nó cũng làm cho nó có thể chạy các ứng dụng trên một hệ thống với hàng ngàn nút. Hệ thống tệp phân tán của nó cung cấp tốc độ truyền dữ liệu nhanh chóng giữa các nút. Nó cũng cho phép hệ thống tiếp tục hoạt động trong trường hợp nút bị lỗi.

Hadoop cung cấp-

  • Lớp lưu trữ - HDFS
  • Công cụ xử lý hàng loạt - MapReduce
  • Lớp quản lý tài nguyên - YARN

Hadoop - Lịch sử

Năm 2003, Google khởi chạy dự án Nutch để xử lý hàng tỷ lượt tìm kiếm. Cũng để lập chỉ mục hàng triệu trang web. Vào tháng 10 năm 2003, Google đã xuất bản GFS (Hệ thống tệp của Google), từ Hadoop giấy đó đã được tạo ra.

Năm 2004, Google phát hành báo cáo với MapReduce . Và vào năm 2005, Nutch đã sử dụng GFS và MapReduce để thực hiện các hoạt động.

Năm 2006, các nhà khoa học máy tính Doug Cắt Mike Cafarella đã tạo Hadoop. Vào tháng 2 năm 2006 Doug Cắt gia nhập Yahoo . Điều này đã cung cấp tài nguyên và nhóm chuyên dụng để biến Hadoop thành một hệ thống chạy trên quy mô web. Năm 2007, Yahoo bắt đầu sử dụng Hadoop trên một cụm 100 nút.

Vào tháng 1 năm 2008, Hadoop đã thực hiện dự án cấp cao nhất của riêng mình tại Apache, khẳng định sự thành công của nó. Nhiều công ty khác đã sử dụng Hadoop ngoài Yahoo !, chẳng hạn như New York Times và Facebook.

Vào tháng 4 năm 2008, Hadoop đã phá kỷ lục thế giới để trở thành hệ thống nhanh nhất để sắp xếp một terabyte dữ liệu. Chạy trên một cụm 910 nút, được sắp xếp một terabyte trong 209 giây.

Vào tháng 12 năm 2011, Apache Hadoop đã phát hành phiên bản 1.0. Vào tháng 8 năm 2013, phiên bản 2.0.6 đã có sẵn. Cuối tháng 6 năm 2017, Apache Hadoop 3.0.0-alpha4 có sẵn. ASF (Apache Software Foundation) quản lý và duy trì khuôn khổ và hệ sinh thái công nghệ của Hadoop.

Tại sao lại sử dụng Hadoop?

Như chúng ta đã tìm hiểu phần Giới thiệu, Bây giờ chúng ta sẽ tìm hiểu nhu cầu của Hadoop là gì?

Nó nổi lên như một giải pháp cho “ Dữ liệu lớn ”Vấn đề-

a. Bộ nhớ cho Dữ liệu lớn - HDFS đã giải quyết vấn đề này. Nó lưu trữ Dữ liệu lớn trong Cách phân phối. HDFS cũng lưu trữ từng tệp dưới dạng khối. Khối là đơn vị dữ liệu nhỏ nhất trong hệ thống tệp.

Giả sử bạn có 512MB dữ liệu. Và bạn đã cấu hình HDFS sao cho nó sẽ tạo ra 128Mb khối dữ liệu. Vì vậy, HDFS chia dữ liệu thành 4 khối (512/128 =4) và lưu trữ nó trên các DataNode khác nhau. Nó cũng sao chép các khối dữ liệu trên các nút dữ liệu khác nhau.

Do đó, lưu trữ dữ liệu lớn không phải là một thách thức.

b. Khả năng mở rộng - Nó cũng giải quyết vấn đề Chia tỷ lệ. Nó chủ yếu tập trung vào việc mở rộng quy mô theo chiều ngang hơn là mở rộng theo chiều dọc. Bạn có thể thêm các nút dữ liệu bổ sung vào cụm HDFS khi cần thiết. Thay vì mở rộng tài nguyên của các nút dữ liệu của bạn.

Do đó nâng cao hiệu suất một cách đáng kể.

c á c. Lưu trữ nhiều loại dữ liệu - HDFS đã giải quyết vấn đề này. HDFS có thể lưu trữ tất cả các loại dữ liệu (có cấu trúc, bán cấu trúc hoặc phi cấu trúc). Nó cũng sau viết một lần và đọc nhiều mô hình .

Do đó, bạn có thể ghi bất kỳ loại dữ liệu nào một lần và bạn có thể đọc nó nhiều lần để tìm kiếm thông tin chi tiết.

d. Tốc độ xử lý dữ liệu - Đây là vấn đề chính của dữ liệu lớn. Để giải quyết vấn đề này, hãy chuyển tính toán sang dữ liệu thay vì dữ liệu sang tính toán. Nguyên tắc này là Vị trí dữ liệu .

Các thành phần cốt lõi của Hadoop

Bây giờ chúng ta sẽ tìm hiểu chi tiết về thành phần cốt lõi Apache Hadoop. Nó có 3 thành phần cốt lõi-

  • HDFS
  • MapReduce
  • YARN (Tuy nhiên, một nhà đàm phán tài nguyên khác)

Hãy thảo luận từng thành phần cốt lõi này.

a. HDFS

Hệ thống tệp phân tán Hadoop (HDFS) là hệ thống lưu trữ chính của Hadoop. HDFS lưu trữ các tệp rất lớn chạy trên một nhóm phần cứng hàng hóa. Nó tuân theo nguyên tắc lưu trữ ít số lượng tệp lớn hơn là số lượng lớn các tệp nhỏ.

Lưu trữ dữ liệu một cách đáng tin cậy ngay cả trong trường hợp lỗi phần cứng. Nó cung cấp khả năng truy cập thông lượng cao vào ứng dụng bằng cách truy cập song song.

Các thành phần của HDFS:

  • Mã Tên - Nó hoạt động như Master trong cụm. Namenode lưu trữ siêu dữ liệu . Một số khối, bản sao và các chi tiết khác. Siêu dữ liệu có trong bộ nhớ trong cái chính. NameNode duy trì và cũng quản lý các nút nô lệ và giao nhiệm vụ cho chúng. Nó sẽ triển khai trên phần cứng đáng tin cậy vì nó là trung tâm của HDFS.
  • Mã dữ liệu - Nó hoạt động như Slave trong cụm. Trong HDFS, DataNode chịu trách nhiệm lưu trữ dữ liệu thực tế trong HDFS. DataNode thực hiện thao tác đọc và ghi theo yêu cầu của khách hàng. DataNodes cũng có thể triển khai trên phần cứng hàng hóa.

b. MapReduce

MapReduce là lớp xử lý dữ liệu của Hadoop. Nó xử lý dữ liệu có cấu trúc và phi cấu trúc lớn được lưu trữ trong HDFS. MapReduce cũng xử lý song song một lượng lớn dữ liệu.

Nó thực hiện điều này bằng cách chia công việc (công việc đã nộp) thành một tập hợp các nhiệm vụ độc lập (công việc phụ). MapReduce hoạt động bằng cách chia quá trình thành các giai đoạn:Bản đồ và Thu nhỏ.

  • Bản đồ - Đây là giai đoạn đầu tiên của quá trình xử lý, nơi chúng tôi chỉ định tất cả mã logic phức tạp.
  • Giảm - Đây là giai đoạn thứ hai của quá trình xử lý. Ở đây, chúng tôi chỉ định xử lý nhẹ như tổng hợp / tổng hợp.

c. SỢI

YARN cung cấp quản lý tài nguyên. Nó là hệ điều hành của Hadoop. Nó chịu trách nhiệm quản lý và giám sát khối lượng công việc, cũng như thực hiện các biện pháp kiểm soát bảo mật. Apache YARN cũng là một nền tảng trung tâm để cung cấp các công cụ quản trị dữ liệu trên các cụm.

YARN cho phép nhiều công cụ xử lý dữ liệu như phát trực tuyến thời gian thực, xử lý hàng loạt, v.v.

Các thành phần của YARN:

  • Trình quản lý Tài nguyên - Nó là một thành phần cấp cụm và chạy trên máy Master. Nó quản lý tài nguyên và lên lịch cho các ứng dụng chạy trên YARN. Nó có hai thành phần:Bộ lập lịch và Trình quản lý ứng dụng.
  • Trình quản lý nút - Nó là một thành phần cấp độ nút. Nó chạy trên mỗi máy nô lệ. Nó liên tục giao tiếp với Trình quản lý tài nguyên để luôn cập nhật

Ưu điểm của Hadoop

Bây giờ chúng ta hãy thảo luận về các lợi thế khác nhau của Hadoop để giải quyết các vấn đề về dữ liệu lớn.

  • Khả năng mở rộng - Bằng cách thêm các nút, chúng tôi có thể dễ dàng phát triển hệ thống của mình để xử lý nhiều dữ liệu hơn.
  • Tính linh hoạt - Trong khuôn khổ này, bạn không phải xử lý trước dữ liệu trước khi lưu trữ. Bạn có thể lưu trữ bao nhiêu dữ liệu tùy thích và quyết định cách sử dụng sau này.
  • Chi phí thấp - Khung mã nguồn mở miễn phí và chạy trên phần cứng hàng hóa giá rẻ.
  • Khả năng chịu lỗi - Nếu các nút không hoạt động, thì các công việc sẽ tự động được chuyển hướng đến các nút khác.
  • Sức mạnh máy tính - Đó là mô hình điện toán phân tán xử lý dữ liệu lớn nhanh chóng. Bạn càng có nhiều nút máy tính thì càng sử dụng nhiều sức mạnh xử lý hơn.

Nhược điểm của Hadoop

Một số nhược điểm của Apache Hadoop Framework được đưa ra dưới đây-

  • Mối quan tâm về bảo mật - Nó có thể là một thách thức trong việc quản lý các ứng dụng phức tạp. Nếu người dùng không biết cách kích hoạt nền tảng đang quản lý nền tảng, thì dữ liệu của bạn có thể là một rủi ro lớn. Vì các cấp độ lưu trữ và mạng mà Hadoop thiếu mã hóa, đây là một điểm đáng quan tâm.
  • Dễ bị tổn thương bởi tự nhiên - Framework được viết gần như bằng java, ngôn ngữ được sử dụng rộng rãi nhất. Java bị tội phạm mạng khai thác rất nhiều. Do đó, dẫn đến nhiều vi phạm bảo mật.
  • Không phù hợp với dữ liệu nhỏ - Vì nó không phù hợp với dữ liệu nhỏ. Do đó, nó thiếu khả năng hỗ trợ hiệu quả việc đọc ngẫu nhiên các tệp nhỏ.
  • Các vấn đề tiềm ẩn về độ ổn định - Vì nó là một khuôn khổ mã nguồn mở. Điều này có nghĩa là nó được tạo ra bởi nhiều nhà phát triển tiếp tục làm việc trong dự án. Mặc dù cải tiến liên tục được thực hiện, nhưng nó có vấn đề về tính ổn định. Để tránh những vấn đề này, tổ chức nên chạy trên phiên bản ổn định mới nhất.

Kết luận

Tóm lại, chúng ta có thể nói rằng nó là công cụ Dữ liệu lớn phổ biến và mạnh mẽ nhất. Nó lưu trữ một lượng lớn dữ liệu theo cách phân tán.

Và sau đó xử lý dữ liệu song song trên một cụm nút. Nó cũng cung cấp lớp lưu trữ đáng tin cậy nhất trên thế giới - HDFS. Công cụ xử lý hàng loạt MapReduce và lớp quản lý tài nguyên- YARN.

Do đó, những daemon này đảm bảo chức năng của Hadoop.


No
  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Giới thiệu về Ảnh chụp nhanh Apache HBase, Phần 2:Lặn sâu hơn

  2. Hadoop OutputFormat trong MapReduce là gì?

  3. Quản trị Cơ sở dữ liệu Hoạt động

  4. Giới thiệu về Kiến trúc &Liên đoàn HDFS

  5. HBase và Hive - Tốt hơn cùng nhau