Thứ năm, 13/10/2016 | 00:00 GMT+7

Giới thiệu về Hadoop

Apache Hadoop là một trong những công cụ open-souce sớm nhất và có ảnh hưởng nhất để lưu trữ và xử lý dung lượng lớn dữ liệu kỹ thuật số sẵn có đã được tích lũy với sự phát triển của World Wide Web. Nó phát triển từ một dự án có tên Nutch, cố gắng tìm ra một cách nguồn mở tốt hơn để thu thập dữ liệu web. Những người tạo ra Nutch bị ảnh hưởng nặng nề bởi suy nghĩ trong hai bài báo quan trọng của Google và ban đầu đã kết hợp chúng vào Nutch, nhưng cuối cùng công việc lưu trữ và xử lý được chia thành dự án Hadoop, đồng thời tiếp tục phát triển Nutch như một dự án thu thập dữ liệu web của riêng mình.

Trong bài viết này, ta sẽ xem xét ngắn gọn hệ thống dữ liệu và một số nhu cầu cụ thể, phân biệt của hệ thống dữ liệu lớn. Sau đó, ta sẽ xem xét cách Hadoop đã phát triển để giải quyết những nhu cầu đó.

Hệ thống dữ liệu

Dữ liệu tồn tại ở khắp mọi nơi: trên giấy vụn, trong sách, ảnh, file đa phương tiện, log server và trên các trang web. Khi dữ liệu đó được thu thập có mục đích, nó sẽ đi vào hệ thống dữ liệu.

Hãy tưởng tượng một dự án trường học nơi học sinh đo mực nước của một con lạch gần đó mỗi ngày. Họ ghi lại các phép đo của bạn trên thực địa vào bảng tạm, quay lại lớp học và nhập dữ liệu đó vào bảng tính. Khi họ đã thu thập đủ số lượng, họ bắt đầu phân tích nó. Họ có thể so sánh các tháng giống nhau từ các năm khác nhau, sắp xếp từ mực nước cao nhất đến thấp nhất. Họ có thể xây dựng biểu đồ để tìm kiếm xu hướng.

Dự án trường học này minh họa một hệ thống dữ liệu:

  • Thông tin tồn tại ở các vị trí khác nhau (sổ ghi chép thực địa của các học sinh khác nhau)
  • Nó được thu thập vào một hệ thống (được nhập bằng tay vào một bảng tính)
  • Nó được lưu trữ (lưu vào đĩa trên máy tính trong lớp học; sổ ghi chép thực địa có thể được sao chép hoặc giữ lại để xác minh tính toàn vẹn của dữ liệu)
  • Nó được phân tích (tổng hợp, sắp xếp hoặc thao tác khác)
  • Dữ liệu đã xử lý được hiển thị (bảng, biểu đồ, đồ thị)

Dự án này nằm ở phần cuối nhỏ của quang phổ. Một máy tính duy nhất có thể lưu trữ, phân tích và hiển thị các phép đo mực nước hàng ngày của một con lạch. Về phía đầu kia của quang phổ, tất cả nội dung trên tất cả các trang web trên thế giới tạo thành một tập dữ liệu lớn hơn nhiều. Về cơ bản, đây là dữ liệu lớn: quá nhiều thông tin mà nó không thể phù hợp trên một máy tính.

Các công ty công cụ tìm kiếm đang phải đối mặt với vấn đề cụ thể này khi nội dung web bùng nổ trong thời đại Dot-com. Năm 2003, Google đã phát hành bài báo có ảnh hưởng của bạn , Hệ thống file của Google mô tả cách phần mềm độc quyền của họ xử lý việc lưu trữ một lượng lớn dữ liệu đang được xử lý cho công cụ tìm kiếm của họ. Tiếp theo là vào năm 2004 MapReduce của Google : Xử lý dữ liệu được đơn giản hóa trên các cụm lớn , trình bày chi tiết cách họ đơn giản hóa việc xử lý lượng lớn dữ liệu như vậy. Hai giấy tờ này ảnh hưởng mạnh mẽ đến kiến trúc của Hadoop.

Dữ liệu lớn khác biệt như thế nào?

Các bài báo của Google và việc Hadoop triển khai những ý tưởng đó dựa trên bốn thay đổi lớn trong suy nghĩ về dữ liệu cần thiết để đáp ứng data volumes :

  1. Các hệ thống dữ liệu lớn đã phải chấp nhận rằng dữ liệu sẽ được phân phối . Việc lưu trữ tập dữ liệu thành từng phần trên một cụm máy là không thể tránh khỏi.

  2. Một khi các cụm trở thành nền tảng lưu trữ, thì phần mềm phải tính đến lỗi phần cứng , vì lỗi phần cứng là điều không thể tránh khỏi khi bạn đang nói về việc chạy hàng trăm hoặc hàng nghìn máy trong một cụm.

  3. Vì máy móc sẽ bị lỗi, chúng cần một cách giao tiếp mới với nhau. Trong tính toán dữ liệu hàng ngày, ta đã quen với một số máy cụ thể, thường được xác định bằng địa chỉ IP hoặc tên server gửi dữ liệu cụ thể đến một máy cụ thể khác. Giao tiếp rõ ràng này phải được thay thế bằng giao tiếp ngầm , trong đó một số máy nói với một số máy khác rằng nó phải xử lý một số dữ liệu cụ thể. Nếu không, các lập trình viên sẽ phải đối mặt với một vấn đề xác minh ít nhất cũng lớn như chính vấn đề xử lý dữ liệu.

  4. Cuối cùng, máy tính cần đến dữ liệu và xử lý nó trên các máy phân tán hơn là di chuyển một lượng lớn dữ liệu trên toàn mạng.

Được phát hành vào năm 2007, version 1.0 của khung lập trình dựa trên Java, Hadoop, là dự án open-souce đầu tiên chấp nhận những thay đổi này trong tư duy. Lần lặp đầu tiên của nó bao gồm hai lớp:

  1. HDFS: Hệ thống file phân tán Hadoop, chịu trách nhiệm lưu trữ dữ liệu trên nhiều máy.
  2. MapReduce: Khung phần mềm để xử lý dữ liệu tại chỗ và song song trên mỗi máy, cũng như lập lịch các việc , theo dõi chúng và chạy lại các việc bị lỗi.

HDFS 1.0

Hệ thống file phân tán Hadoop, HDFS, là lớp lưu trữ phân tán mà Hadoop sử dụng để phân tán dữ liệu và đảm bảo nó được lưu trữ đúng cách để có tính khả dụng cao.

HDFS 1.0 hoạt động như thế nào

HDFS sử dụng sao chép khối để lưu trữ một cách tin cậy các file rất lớn trên nhiều máy với hai phần mềm riêng biệt: server NameNode, quản lý không gian tên hệ thống file và quyền truy cập client , và DataNodes, chịu trách nhiệm phục vụ các yêu cầu đọc và ghi, cũng như khối tạo, xóa và sao chép. Hiểu biết cơ bản về mẫu sao chép có thể hữu ích cho các nhà phát triển và administrator cụm vì mặc dù nó thường hoạt động tốt, nhưng sự mất cân bằng trong phân phối dữ liệu có thể ảnh hưởng đến hiệu suất của cụm và yêu cầu điều chỉnh.

HDFS lưu trữ mỗi file dưới dạng một chuỗi các khối, mỗi khối có kích thước giống nhau ngoại trừ file cuối cùng. Theo mặc định, các khối được sao chép ba lần, nhưng cả kích thước của khối và số lượng bản sao đều có thể được cấu hình trên cơ sở từng file . Các file được ghi một lần và chỉ có một người ghi duy nhất vào bất kỳ lúc nào để cho phép truy cập dữ liệu thông lượng cao và đơn giản hóa các vấn đề về đồng tiền dữ liệu.

NameNode đưa ra tất cả các quyết định về việc sao chép khối dựa trên nhịp tim và báo cáo khối mà nó nhận được từ mỗi DataNode trong cụm. Nhịp tim báo hiệu rằng DataNode khỏe mạnh và báo cáo khối cung cấp danh sách tất cả các khối trên DataNode.

Khi một khối mới được tạo, HDFS đặt bản sao đầu tiên vào nút nơi người viết đang chạy. Bản sao thứ hai được viết trên một nút được chọn ngẫu nhiên trong bất kỳ giá nào ngoại trừ giá nơi bản sao đầu tiên được ghi. Sau đó bản sao thứ ba được đặt trên một máy được chọn ngẫu nhiên trong giá thứ hai này. Nếu nhiều hơn ba bản sao mặc định được chỉ định trong cấu hình, thì các bản sao còn lại được đặt ngẫu nhiên, với hạn chế là không có nhiều hơn một bản sao được đặt trên bất kỳ nút nào và không quá hai bản sao được đặt trên cùng một giá.

Hạn chế của HDFS 1.0

HDFS 1.0 đã cài đặt Hadoop như một công cụ dẫn đầu nguồn mở ban đầu để lưu trữ dữ liệu lớn. Một phần của thành công đó là do các quyết định kiến trúc đã loại bỏ một số sự phức tạp của lưu trữ phân tán khỏi phương trình, nhưng những lựa chọn đó không phải là không có sự đánh đổi. Các hạn chế chính của version version 1.0 bao gồm:

  • Không kiểm soát việc phân phối các khối
    Mẫu sao chép khối của HDFS là xương sống của tính khả dụng cao của nó. Nó có thể rất hiệu quả và loại bỏ sự cần thiết của administrator và nhà phát triển ở cấp lưu trữ khối, nhưng vì nó không xem xét việc sử dụng không gian hoặc tình hình thời gian thực của các node , administrator cụm có thể cần sử dụng chương trình tiện ích cân bằng để phân phối lại các khối.

  • Mã tên: Một điểm thất bại duy nhất
    Một hạn chế đáng kể hơn so với việc phân phối các khối, NameNode đại diện cho một điểm lỗi duy nhất. Nếu quá trình hoặc máy bị lỗi, toàn bộ cụm sẽ không khả dụng cho đến khi server NameNode được khởi động lại và ngay cả khi khởi động lại, nó phải nhận được thông báo nhịp tim từ mọi nút trong cụm trước khi thực sự khả dụng, điều này kéo dài thời gian ngừng hoạt động, đặc biệt là với các cụm.

Bất chấp những hạn chế này, HDFS là một đóng góp lớn để làm việc với dữ liệu lớn.

MapReduce 1.0

Lớp thứ hai của Hadoop, MapReduce, chịu trách nhiệm xử lý hàng loạt dữ liệu được lưu trữ trên HDFS. Việc Hadoop triển khai mô hình lập trình MapReduce của Google giúp nhà phát triển có thể sử dụng các tài nguyên do HDFS cung cấp mà không cần có kinh nghiệm với các hệ thống song song và phân tán.

Cách hoạt động của MapReduce 1.0

Giả sử ta có một bộ sưu tập văn bản và ta muốn biết mỗi từ xuất hiện trong bộ sưu tập bao nhiêu lần. Văn bản được phân phối trên nhiều server , vì vậy các việc ánh xạ được chạy trên tất cả các node trong cụm có các khối dữ liệu trong bộ sưu tập. Mỗi trình ánh xạ tải các file thích hợp, xử lý chúng và tạo một cặp key-value cho mỗi lần xuất hiện.

Các bản đồ này chỉ có dữ liệu từ một nút duy nhất, vì vậy chúng phải được xáo trộn với nhau để tất cả các giá trị có cùng khóa có thể được gửi đến một trình thu gọn. Khi bộ giảm tốc được thực hiện, kết quả được ghi vào đĩa của bộ giảm tốc. Mô hình giao tiếp ngầm này giải phóng user Hadoop khỏi việc phải di chuyển thông tin từ máy này sang máy khác một cách rõ ràng.

Ta sẽ minh họa điều này bằng một vài câu:

Cô ấy bán vỏ sò bằng sáu vỏ sò.
Cô ấy chắc chắn bán vỏ sò tốt.

MAPPING         SHUFFLING           REDUCING {she, 1}        {she, 1, 1}         {she, 2} {sells, 1}      {sells, 1, 1}       {sells, 2} {seashells, 1}  {seashells, 1, 1}   {seashells, 2} {by, 1}         {by, 1}             {by, 1} {six, 1}        {six, 1}            {six, 1} {seashores, 1}  {seashores, 1, 1}   {seashores, 2} {she, 1}        {sure, 1}           {sure, 1} {sure, 1}       {well, 1}           {well, 1} {sells} {seashells, 1} {well, 1}        

Nếu việc ánh xạ này được thực hiện theo trình tự trên một tập dữ liệu lớn thì sẽ mất quá nhiều thời gian, nhưng được thực hiện song song, sau đó giảm xuống, nó có thể mở rộng cho các tập dữ liệu lớn.

Các thành phần cấp cao hơn có thể cắm vào lớp MapReduce để cung cấp chức năng bổ sung. Ví dụ: Apache Pig cung cấp cho các nhà phát triển một ngôn ngữ để viết các chương trình phân tích dữ liệu bằng cách trừu tượng hóa các thành ngữ Java MapReduce lên một cấp độ cao hơn, tương tự như những gì SQL làm cho database quan hệ. Apache Hive hỗ trợ phân tích dữ liệu và báo cáo với giao diện giống SQL đến HDFS. Nó tóm tắt các truy vấn API MapReduce Java để cung cấp chức năng truy vấn cấp cao cho các nhà phát triển. Nhiều thành phần bổ sung có sẵn cho Hadoop 1.x, nhưng hệ sinh thái bị hạn chế bởi một số hạn chế chính trong MapReduce.

Hạn chế của MapReduce 1

  • Kết hợp chặt chẽ giữa MapReduce và HDFS
    Trong việc triển khai 1.x, các trách nhiệm của lớp MapReduce vượt ra ngoài việc xử lý dữ liệu, bao gồm quản lý tài nguyên cụm và được kết hợp chặt chẽ với HDFS. Điều này nghĩa là các nhà phát triển tiện ích bổ sung cho 1.x phải viết các chương trình MapReduce nhiều lần, cho dù nó có phù hợp với nhiệm vụ hay không, vì MapReduce là cách duy nhất để truy cập hệ thống file .

  • Khe tĩnh để phân tích dữ liệu
    Ánh xạ và thu nhỏ diễn ra trên DataNodes, đây là key để làm việc với dữ liệu lớn, nhưng chỉ có một số lượng hạn chế, các khe dành cho mục đích duy nhất có sẵn trên mỗi DataNode. Các vị trí ánh xạ chỉ có thể ánh xạ và các vị trí giảm chỉ có thể giảm bớt. Con số được đặt trong cấu hình không có khả năng điều chỉnh động và chúng không hoạt động và rất lãng phí bất cứ lúc nào dung lượng công việc cụm không phù hợp với cấu hình. Sự khắt khe của việc phân bổ vị trí cũng khiến các ứng dụng không phải MapReduce khó lên lịch phù hợp.

  • JobTracker: Một điểm thất bại duy nhất
    Các ứng dụng Hadoop gửi các việc MapReduce tới JobTracker, từ đó phân phối các việc đó đến các node cụm cụ thể bằng cách định vị TaskTracker với các vị trí có sẵn hoặc theo vị trí địa lý gần dữ liệu. TaskTracker thông báo cho JobTracker nếu một nhiệm vụ không thành công. JobTracker có thể gửi lại công việc, đánh dấu bản ghi để loại trừ khỏi quá trình xử lý trong tương lai hoặc có thể đưa vào blacklist một TaskTracker không tin cậy , nhưng trong trường hợp JobTracker thất bại vì bất kỳ lý do gì, tất cả các việc MapReduce sẽ bị tạm dừng.

Cải tiến trong Hadoop 2.x

Nhánh 2.x của Hadoop, được phát hành vào tháng 12 năm 2011, đã giới thiệu bốn cải tiến chính và sửa chữa các hạn chế chính của version 1. Hadoop 2.0 đã giới thiệu liên kết HDFS, loại bỏ NameNode vừa là hạn chế hiệu suất vừa là điểm lỗi duy nhất. Ngoài ra, nó tách rời MapReduce khỏi HDFS với sự ra đời của YARN (Yet Another Resource Negotiator), mở ra hệ sinh thái của các sản phẩm bổ trợ bằng cách cho phép các mô hình xử lý không phải MapReduce tương tác với HDFS và bỏ qua lớp MapReduce.

1 - Liên kết HDFS

Liên kết HDFS giới thiệu sự tách biệt rõ ràng giữa không gian tên và lưu trữ, làm cho nhiều không gian tên trong một cụm có thể. Điều này cung cấp một số cải tiến chính:

  • Khả năng mở rộng không gian tên Khả năng thêm nhiều Mã tên vào một cụm cho phép mở rộng theo chiều ngang. Các cụm lớn hoặc cụm có nhiều file nhỏ có thể được hưởng lợi từ việc thêm các Mã Tên bổ sung.
  • Tăng hiệu suất Mã tên duy nhất của thông lượng đọc / ghi hệ thống file giới hạn 1.x.Nhiều NameNodes làm giảm bớt ràng buộc này đối với các hoạt động của hệ thống file .
  • Cách ly giữa các không gian tên Trong môi trường nhiều đối tượng thuê với một Mã tên duy nhất, một người hàng xóm ồn ào có thể ảnh hưởng đến mọi user khác trên hệ thống. Với liên kết, có thể cô lập các cư dân của hệ thống.

Liên kết HDFS hoạt động như thế nào

Các NameNodes liên kết quản lý không gian tên hệ thống file . Chúng hoạt động độc lập và không phối hợp với nhau. Thay vào đó, các DataNodes trong cụm đăng ký với mọi NameNode, gửi nhịp tim và chặn các báo cáo và xử lý các lệnh đến từ NameNode.

Các khối được trải rộng trên bộ nhớ chung với cùng một bản sao ngẫu nhiên mà ta đã thấy trong Hadoop 1.x. Tất cả các khối thuộc một không gian tên duy nhất được gọi là một group khối. Các group như vậy được quản lý độc lập, cho phép một không gian tên tạo ID khối cho các khối mới mà không cần phối hợp với các không gian tên khác. Sự kết hợp của một không gian tên và group khối của nó được gọi là Vùng không gian tên, tạo thành một đơn vị độc lập, để khi một trong các Mã Tên liên kết bị xóa, group khối của nó cũng bị xóa.

Ngoài khả năng mở rộng, hiệu suất và sự cô lập được cải thiện do sự ra đời của liên kết NameNode, Hadoop 2.0 cũng giới thiệu tính khả dụng cao cho NameNodes.

2 - TênNode Tính khả dụng cao

Trước Hadoop 2.0, nếu NameNode không thành công, toàn bộ cụm sẽ không khả dụng cho đến khi nó được khởi động lại hoặc đưa lên một máy mới. Tương tự như vậy, nâng cấp lên phần mềm hoặc phần cứng của NameNode đã tạo ra các cửa sổ thời gian chết. Để ngăn chặn điều này, Hadoop 2.0 đã triển khai cấu hình chủ động / thụ động để cho phép chuyển đổi dự phòng nhanh chóng.

Cách hoạt động của NameNode HA

Hai máy riêng biệt được cấu hình là NameNodes, một máy hoạt động, máy còn lại ở chế độ chờ. Chúng chia sẻ quyền truy cập vào một folder chung trên một thiết bị lưu trữ dùng chung và khi một sửa đổi được thực hiện bởi nút hoạt động, nó sẽ ghi lại thay đổi trong file log được lưu trữ trong folder chung đó. Nút chờ liên tục theo dõi folder và khi các chỉnh sửa xảy ra, nó áp dụng các chỉnh sửa đó vào không gian tên của chính nó. Nếu nút hoạt động không thành công, chế độ chờ sẽ đọc các chỉnh sửa chưa được áp dụng từ bộ nhớ dùng chung, sau đó tự chuyển sang trạng thái hoạt động.

3 - SỢI

Hadoop 2.0 đã tách MapReduce khỏi HDFS. Việc quản lý dung lượng công việc, cho thuê nhiều lần, kiểm soát bảo mật và các tính năng có tính khả dụng cao đã được chuyển thành YARN (Yet Another Resource Negotiator). Về bản chất, YARN là một hệ điều hành phân tán quy mô lớn dành cho các ứng dụng dữ liệu lớn, làm cho Hadoop rất phù hợp cho cả MapReduce cũng như các ứng dụng khác không thể chờ xử lý hàng loạt hoàn tất. YARN đã loại bỏ nhu cầu làm việc thông qua khung MapReduce thường xuyên vào I / O, độ trễ cao, cho phép sử dụng các mô hình xử lý mới với HDFS. MapReduce được tách rời vẫn là một khuôn khổ hướng tới user dành riêng cho việc thực hiện tác vụ mà nó dự định thực hiện: xử lý hàng loạt.

Dưới đây là một số mô hình xử lý có sẵn cho user Hadoop 2.x:

  • Xử lý hàng loạt
    Hệ thống xử lý hàng loạt không tương tác và có quyền truy cập vào tất cả dữ liệu trước khi bắt đầu xử lý. Ngoài ra, các câu hỏi đang được khám phá trong quá trình xử lý phải được biết trước khi bắt đầu xử lý. Xử lý hàng loạt thường có độ trễ cao, với tốc độ của các công việc hàng loạt dữ liệu lớn thường được đo bằng phút hoặc hơn.

    Nơi xử lý hàng loạt tỏa sáng: Lập index dữ liệu, thu thập dữ liệu web và xử lý dữ liệu

    Một số chương trình có thể thực hiện việc này cho Hadoop: MapReduce, Tez, Spark, Hive và Flink

  • Xử lý tương tác
    Hệ thống xử lý tương tác là cần thiết khi bạn không biết trước tất cả các câu hỏi của bạn . Thay vào đó, user diễn giải câu trả lời cho một truy vấn, sau đó tạo một câu hỏi mới. Để hỗ trợ loại thăm dò này, phản hồi phải được trả lại nhanh hơn nhiều so với công việc MapReduce thông thường.

    Nơi xử lý tương tác tỏa sáng: Xử lý tương tác hỗ trợ khám phá dữ liệu.

    Một số chương trình thực hiện điều này cho Hadoop: Impala, Drill, HAWQ, Presto, Vortex và Vertica SQL, Tez

  • Xử lý stream
    Hệ thống xử lý stream lấy một lượng lớn các điểm dữ liệu rời rạc và thực hiện một truy vấn liên tục để tạo ra kết quả gần thời gian thực khi dữ liệu mới đến hệ thống.

    Nơi xử lý stream tỏa sáng: Bất kỳ lúc nào bạn cũng có dữ liệu kỹ thuật số được tạo liên tục. Ví dụ bao gồm theo dõi tình cảm của công chúng đối với một vấn đề, sự kiện hoặc sản phẩm trên mạng xã hội để theo dõi các xu hướng mới nổi hoặc theo dõi log server .

    Một số chương trình thực hiện việc này cho Hadoop: Spark Stream, Storm

  • Xử lý đồ thị
    Các thuật toán đồ thị thường yêu cầu giao tiếp giữa các đỉnh hoặc bước nhảy để di chuyển một cạnh từ đỉnh này sang đỉnh khác, điều này đòi hỏi rất nhiều chi phí không cần thiết khi đi qua MapReduce 1.x.

    Đồ thị tỏa sáng ở đâu: Đồ thị lý tưởng để hiển thị các mối quan hệ phi tuyến tính giữa mọi thứ: mối quan hệ bạn bè trên Facebook, người theo dõi trên Twitter, database đồ thị phân tán như cốt lõi của các trang mạng xã hội.

    Một số chương trình thực hiện việc này cho Hadoop: Apache Giraph, Apache Spark's GraphX, Hama, Titan

Đây chỉ là một vài trong số các mô hình và công cụ xử lý thay thế. Để có hướng dẫn toàn diện về hệ sinh thái Hadoop open-souce , bao gồm các mô hình xử lý ngoài MapReduce, hãy xem Bảng Hệ sinh thái Hadoop

4 - Tính khả dụng cao của ResourceManager

Khi nó được phát hành lần đầu tiên, YARN đã có một nút thắt cổ chai riêng: ResourceManager. JobTracker duy nhất trong MapReduce 1.x xử lý việc quản lý tài nguyên, lập lịch công việc và giám sát công việc. Các bản phát hành đầu tiên của YARN đã cải thiện điều này bằng cách phân chia trách nhiệm giữa ResourceManager global và ApplicationMaster cho mỗi ứng dụng. ResourceManager đã theo dõi các tài nguyên cụm và lên lịch cho các ứng dụng, chẳng hạn như MapReduce Jobs nhưng chỉ có một điểm thất bại cho đến bản phát hành 2.4, giới thiệu kiến trúc Active / Standby.

Trong Hadoop 2.4, trình quản lý Tài nguyên duy nhất đã được thay thế bằng một Trình quản lý tài nguyên hoạt động duy nhất và một hoặc nhiều trình quản lý dự phòng. Trong trường hợp bị lỗi ResourceManager đang hoạt động, administrator có thể kích hoạt quá trình chuyển đổi từ chế độ chờ sang hoạt động theo cách thủ công. Họ cũng có thể kích hoạt chuyển đổi dự phòng tự động bằng cách thêm Apache Zookeeper vào ngăn xếp của họ. Trong số các trách nhiệm điều phối nhiệm vụ khác của Zookeeper, nó có thể theo dõi trạng thái của các node YARN và trong trường hợp không thành công, sẽ tự động kích hoạt quá trình chuyển đổi sang chế độ chờ.

Hadoop 3.x

Tại thời điểm viết bài này, Hadoop 3.0.0-alpha1 đã có sẵn để thử nghiệm. Nhánh 3.x nhằm mục đích cung cấp các cải tiến như mã hóa xóa HDFS để tiết kiệm dung lượng đĩa, cải tiến dịch vụ dòng thời gian của YARN để cải thiện khả năng mở rộng, độ tin cậy và khả năng sử dụng, hỗ trợ hơn hai NameNodes và Intra-datanode balancer, v.v. Để tìm hiểu thêm, hãy truy cập tổng quan về những thay đổi chính .

Kết luận

Trong bài viết này, ta đã xem xét cách Hadoop phát triển để đáp ứng nhu cầu của các bộ dữ liệu ngày càng lớn. Nếu bạn quan tâm đến việc thử nghiệm với Hadoop, bạn có thể cần xem phần Cài đặt Hadoop ở Chế độ độc lập trên Ubuntu 16.04 . Để biết thêm về các khái niệm dữ liệu lớn nói chung, hãy xem Giới thiệu về các khái niệm và thuật ngữ dữ liệu lớn .


Tags:

Các tin liên quan