Hiểu sâu
Hadoop
Hadoop
là một dự án nguồn mở của Apache
nề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 Nutch
công cụ tìm kiếm văn bản. Hadoop
sử dụng Map Reduce
Cô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ó.
Hadoop
là 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 Hadoop
có 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: MAP
và 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ề MapReduce
chuyê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.0
kế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 Hadoop
hoặc
Trích xuất dữ liệu từ HDFS
hoặ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 Hadoop
cụm.
Hadoop 2.0
Trong Hadoop 2.0
, HDFS
tiế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. MapReduce
khô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. HDFS
là 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. Hadoop
có 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. Hadoop
là 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 Hadoop
nó 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 Hadoop
nhờ 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 Hadoop
hệ sinh thái:
HDFS : Hadoop
Hệ 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 Hadoop
cụ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
. Pig
các kịch bản được tự động chuyển đổi thành MapReduce
công việc của trình Pig
thô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 schedular
hệ thống quy trình công việc để quản lý các Hadoop
cô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 Hadoop
và 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 Hadoop
các cụm.
Tổ ong
Hive
là 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 SQL
loại ngôn ngữ để truy vấn được gọi là HiveQL
hoặ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 : Hive
là data warehouse
cơ 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 Hive
hỗ trợ là Hive Web UI, Hive Command line và Hive HD Insight (Trong Windows Server).
MetaStore : Hive
chọn tương ứng database
servers
để lưu trữ lược đồ hoặc Metadata
cá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 : HiveQL
tương tự như để SQL
truy 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 MapReduce
chương trình. Thay vì viết MapReduce
vào Java
, chúng ta có thể viết một truy vấn MapReduce
và xử lý nó.
Exceifying Engine : Phần kết hợp của HiveQL
công cụ xử lý và MapReduce
là Hive
Cô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 : Hadoop
Hệ thống tệp phân tán hoặc HBase
là các kỹ thuật lưu trữ dữ liệu để lưu trữ dữ liệu vào hệ thống tệp.