Hiểu sâu
Hadoop
Hadooplà một dự án nguồn mở của Apachenền tảng. Nó là một khung được viết trong Java, ban đầu được phát triển bởi Doug Cutting vào năm 2005. Nó được tạo ra để hỗ trợ phân phối cho Nutchcông cụ tìm kiếm văn bản. Hadoopsử dụng Map ReduceCông nghệ hệ thống tệp của Google và Google làm nền tảng.
Các tính năng của Hadoop
- Nó được tối ưu hóa để xử lý số lượng lớn dữ liệu có cấu trúc, bán cấu trúc và không cấu trúc bằng phần cứng hàng hóa.
- Nó đã chia sẻ kiến trúc không có gì.
- Nó sao chép dữ liệu của mình vào nhiều máy tính để nếu một máy bị hỏng, dữ liệu vẫn có thể được xử lý từ một máy khác lưu bản sao của nó.
Hadooplà cho thông lượng cao chứ không phải độ trễ thấp. Đây là một hoạt động hàng loạt xử lý số lượng lớn dữ liệu; do đó thời gian đáp ứng không phải là ngay lập tức.
- Nó bổ sung cho Xử lý giao dịch trực tuyến và Xử lý phân tích trực tuyến. Tuy nhiên, nó không phải là một thay thế cho a
RDBMS.
- Nó không tốt khi công việc không thể song song hoặc khi có sự phụ thuộc trong dữ liệu.
- Nó không tốt cho việc xử lý các tệp nhỏ. Nó hoạt động tốt nhất với các tệp dữ liệu lớn và bộ dữ liệu.
Các phiên bản của Hadoop
Có hai phiên bản Hadoopcó sẵn:
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Nó có hai phần chính:
1. Khung lưu trữ dữ liệu
Nó là một hệ thống tệp có mục đích chung gọi là Hệ thống tệp phân tán Hadoop ( HDFS).
HDFS là lược đồ ít
Nó chỉ đơn giản là lưu trữ các tệp dữ liệu và các tệp dữ liệu này có thể ở bất kỳ định dạng nào.
Ý tưởng là lưu trữ các tệp càng gần với hình thức ban đầu của chúng càng tốt.
Điều này lần lượt cung cấp cho các đơn vị kinh doanh và tổ chức sự linh hoạt và nhanh nhẹn rất cần thiết mà không phải lo lắng quá mức bởi những gì nó có thể thực hiện.
2. Khung xử lý dữ liệu
Đây là một mô hình lập trình chức năng đơn giản ban đầu được Google phổ biến như MapReduce.
Nó chủ yếu sử dụng hai chức năng: MAPvà REDUCEđể xử lý dữ liệu.
"Các trình ánh xạ" lấy một tập các cặp giá trị khóa và tạo dữ liệu trung gian (là một danh sách khác của các cặp khóa-giá trị).
"Giảm" sau đó hành động trên đầu vào này để tạo ra dữ liệu đầu ra.
Hai chức năng dường như hoạt động độc lập với nhau, do đó cho phép xử lý được phân phối cao theo cách song song, chịu lỗi và có thể mở rộng.
Hạn chế của Hadoop 1.0
Hạn chế đầu tiên là yêu cầu về MapReducechuyên môn lập trình.
Nó chỉ hỗ trợ xử lý hàng loạt, mặc dù phù hợp cho các nhiệm vụ như phân tích nhật ký, dự án khai thác dữ liệu quy mô lớn nhưng không phù hợp với các loại dự án khác.
Một hạn chế lớn là sự Hadoop 1.0kết hợp chặt chẽ về mặt tính toán với nhau MapReduce, điều đó có nghĩa là các nhà cung cấp quản lý dữ liệu được thành lập có hai ý kiến:
Viết lại chức năng của chúng MapReduceđể nó có thể được thực thi trong Hadoophoặc
Trích xuất dữ liệu từ HDFShoặc xử lý nó bên ngoài Hadoop.
Không có tùy chọn nào khả thi vì nó dẫn đến xử lý sự thiếu hiệu quả do dữ liệu được di chuyển vào và ra khỏi Hadoopcụm.
Hadoop 2.0
Trong Hadoop 2.0, HDFStiếp tục là khung lưu trữ dữ liệu.
Tuy nhiên, một khuôn khổ quản lý tài nguyên mới và riêng biệt gọi là Y et Một Nother R esource N egotiater ( sợi ) đã được thêm.
Bất kỳ ứng dụng nào có khả năng tự phân chia thành các tác vụ song song đều được YARN hỗ trợ.
YARN phối hợp phân bổ các nhiệm vụ của ứng dụng đã gửi, do đó nâng cao hơn nữa tính linh hoạt, khả năng mở rộng và hiệu quả của các ứng dụng.
Nó hoạt động bằng cách có một Master Master thay thế Trình theo dõi công việc , chạy các ứng dụng trên các tài nguyên được quản lý bởi Trình quản lý nút mới .
ApplicationMaster có thể chạy bất kỳ ứng dụng nào và không chỉ MapReduce.
Điều này có nghĩa là nó không chỉ hỗ trợ xử lý hàng loạt mà còn xử lý theo thời gian thực. MapReducekhông còn là tùy chọn xử lý dữ liệu duy nhất.
Ưu điểm của Hadoop
Nó lưu trữ dữ liệu trong nguồn gốc của nó. Không có cấu trúc áp đặt trong khi nhập dữ liệu hoặc lưu trữ dữ liệu. HDFSlà lược đồ ít hơn. Chỉ sau này khi dữ liệu cần được xử lý thì cấu trúc được áp đặt trên dữ liệu thô.
Nó có khả năng mở rộng. Hadoopcó thể lưu trữ và phân phối các bộ dữ liệu rất lớn trên hàng trăm máy chủ rẻ tiền hoạt động song song.
Đó là kiên cường để thất bại. Hadooplà khả năng chịu lỗi. Nó thực hiện sao chép dữ liệu một cách siêng năng, có nghĩa là bất cứ khi nào dữ liệu được gửi đến bất kỳ nút nào, cùng một dữ liệu cũng được sao chép sang các nút khác trong cụm, do đó đảm bảo rằng trong trường hợp có lỗi nút, sẽ luôn có một bản sao dữ liệu khác có sẵn để sử dụng.
Nó là linh hoạt. Một trong những lợi thế chính của Hadoopnó là nó có thể hoạt động với bất kỳ loại dữ liệu nào: có cấu trúc, không cấu trúc hoặc bán cấu trúc. Ngoài ra, việc xử lý cực kỳ nhanh chóng Hadoopnhờ vào mô hình "chuyển mã sang dữ liệu".
Hệ sinh thái Hadoop
Sau đây là các thành phần của Hadoophệ sinh thái:
HDFS : HadoopHệ thống tệp phân tán. Nó chỉ đơn giản là lưu trữ các tệp dữ liệu càng gần với hình thức ban đầu càng tốt.
HBase : Đây là cơ sở dữ liệu của Hadoop và so sánh tốt với một RDBMS. Nó hỗ trợ lưu trữ dữ liệu có cấu trúc cho các bảng lớn.
Hive : Nó cho phép phân tích các bộ dữ liệu lớn bằng một ngôn ngữ rất giống với tiêu chuẩn ANSI SQL, ngụ ý rằng bất kỳ ai quen thuộc SQLđều có thể truy cập dữ liệu trên một Hadoopcụm.
Pig : Đó là một ngôn ngữ luồng dữ liệu dễ hiểu. Nó giúp phân tích các bộ dữ liệu lớn theo thứ tự Hadoop. Pigcác kịch bản được tự động chuyển đổi thành MapReducecông việc của trình Pigthông dịch.
ZooKeeper : Đây là một dịch vụ phối hợp cho các ứng dụng phân tán.
Oozie : Đây là một schedularhệ thống quy trình công việc để quản lý các Hadoopcông việc Apache .
Mahout : Đây là một thư viện khai thác dữ liệu và học máy có thể mở rộng.
Chukwa : Đây là hệ thống thu thập dữ liệu để quản lý hệ thống phân tán lớn.
Sqoop : Nó được sử dụng để chuyển dữ liệu hàng loạt giữa Hadoopvà lưu trữ dữ liệu có cấu trúc như cơ sở dữ liệu quan hệ.
Ambari : Đây là một công cụ dựa trên web để cung cấp, quản lý và giám sát Hadoopcác cụm.
Tổ ong
Hivelà một công cụ cơ sở hạ tầng kho dữ liệu để xử lý dữ liệu có cấu trúc Hadoop. Nó nằm trên đầu trang Hadoopđể tóm tắt Dữ liệu lớn và giúp truy vấn và phân tích dễ dàng.
Tổ ong không
Một cơ sở dữ liệu quan hệ
Một thiết kế để xử lý giao dịch trực tuyến ( OLTP).
Một ngôn ngữ cho các truy vấn thời gian thực và cập nhật cấp hàng.
Đặc điểm của tổ ong
Nó lưu trữ lược đồ trong cơ sở dữ liệu và xử lý dữ liệu vào HDFS.
Nó được thiết kế cho OLAP.
Nó cung cấp SQLloại ngôn ngữ để truy vấn được gọi là HiveQLhoặc HQL.
Nó là familier, nhanh, có thể mở rộng và mở rộng.
Kiến trúc tổ ong
Các thành phần sau có trong Kiến trúc Hive:
Giao diện người dùng : Hivelà data warehousecơ sở hạ tầng có thể tạo sự tương tác giữa người dùng và HDFS. Các giao diện người dùng Hivehỗ trợ là Hive Web UI, Hive Command line và Hive HD Insight (Trong Windows Server).
MetaStore : Hivechọn tương ứng database serversđể lưu trữ lược đồ hoặc Metadatacác bảng, cơ sở dữ liệu, cột trong một bảng, kiểu dữ liệu và HDFSánh xạ của chúng.
Công cụ xử lý HiveQL : HiveQLtương tự như để SQLtruy vấn thông tin lược đồ trên Metastore. Đây là một trong những thay thế của phương pháp truyền thống cho MapReducechương trình. Thay vì viết MapReducevào Java, chúng ta có thể viết một truy vấn MapReducevà xử lý nó.
Exceifying Engine : Phần kết hợp của HiveQLcông cụ xử lý và MapReducelà HiveCông cụ thực thi. Công cụ thực thi xử lý truy vấn và tạo kết quả giống như MapReduce results. Nó sử dụng hương vị của MapReduce.
HDFS hoặc HBase : HadoopHệ thống tệp phân tán hoặc HBaselà các kỹ thuật lưu trữ dữ liệu để lưu trữ dữ liệu vào hệ thống tệp.