Khi nào nên sử dụng Hadoop, HBase, Hive và Pig?


185

Những lợi ích của việc sử dụng Hadoop hoặc HBase hoặc Hive là gì?

Theo hiểu biết của tôi, HBase tránh sử dụng map-less và có bộ lưu trữ hướng theo cột trên đỉnh HDFS. Hive là một giao diện giống như sql cho HadoopHBase .

Tôi cũng muốn biết Hive so sánh với Pig như thế nào .


Hadoop : Hệ thống tệp phân tán Hadoop + Mô hình xử lý tính toán MapReduce. HBase : Lưu trữ khóa-giá trị, tốt cho việc đọc và viết trong thời gian gần. Hive : Được sử dụng để trích xuất dữ liệu từ HDFS bằng cú pháp giống như SQL. Pig : là ngôn ngữ luồng dữ liệu để tạo ETL.
dbustosp

Câu trả lời:


348

MapReduce chỉ là một khung tính toán . HBase không có gì để làm với nó. Điều đó nói rằng, bạn có thể đặt hoặc tìm nạp dữ liệu đến / từ HBase một cách hiệu quả bằng cách viết các công việc MapReduce. Ngoài ra, bạn có thể viết các chương trình tuần tự bằng các API HBase khác, chẳng hạn như Java, để đặt hoặc tìm nạp dữ liệu. Nhưng chúng tôi sử dụng Hadoop, HBase, vv để xử lý lượng dữ liệu khổng lồ, vì vậy điều đó không có ý nghĩa nhiều. Sử dụng các chương trình tuần tự thông thường sẽ rất kém hiệu quả khi dữ liệu của bạn quá lớn.

Quay trở lại phần đầu tiên của câu hỏi của bạn, Hadoop về cơ bản có 2 điều: Hệ thống tệp phân tán (HDFS) + khung tính toán hoặc xử lý (MapReduce) . Giống như tất cả các FS khác, HDFS cũng cung cấp cho chúng tôi lưu trữ, nhưng theo cách chịu lỗi với thông lượng cao và nguy cơ mất dữ liệu thấp hơn (vì sao chép). Nhưng, là một FS, HDFS thiếu quyền truy cập đọc và ghi ngẫu nhiên . Đây là nơi HBase đi vào hình ảnh. Đó là kho lưu trữ dữ liệu lớn, có thể mở rộng, có thể mở rộng , được mô phỏng theo BigTable của Google. Nó lưu trữ dữ liệu dưới dạng cặp khóa / giá trị.

Đến với Hive. Nó cung cấp cho chúng tôi các cơ sở lưu trữ dữ liệu trên đầu cụm Hadoop hiện có. Cùng với đó, nó cung cấp giao diện giống như SQL giúp công việc của bạn dễ dàng hơn, trong trường hợp bạn đến từ nền SQL. Bạn có thể tạo các bảng trong Hive và lưu trữ dữ liệu ở đó. Cùng với đó, bạn thậm chí có thể ánh xạ các bảng HBase hiện tại của mình sang Hive và hoạt động trên chúng.

Trong khi Pig về cơ bản là một ngôn ngữ dataflow cho phép chúng ta xử lý lượng dữ liệu khổng lồ rất dễ dàng và nhanh chóng. Pig về cơ bản có 2 phần: Phiên dịch lợn và ngôn ngữ, PigLatin . Bạn viết kịch bản Pig bằng PigLatin và sử dụng trình thông dịch Pig xử lý chúng. Pig làm cho cuộc sống của chúng ta dễ dàng hơn rất nhiều, nếu không thì việc viết MapReduce luôn không dễ dàng. Trong thực tế trong một số trường hợp nó thực sự có thể trở thành một nỗi đau.

Tôi đã viết một bài báo về một so sánh ngắn về các công cụ khác nhau của hệ sinh thái Hadoop một thời gian trước đây. Đây không phải là một so sánh chuyên sâu, mà là một đoạn giới thiệu ngắn về mỗi công cụ này có thể giúp bạn bắt đầu. (Chỉ để thêm vào câu trả lời của tôi. Không có ý định tự quảng cáo)

Cả truy vấn Hive và Pig đều được chuyển đổi thành các công việc MapReduce dưới mui xe.

HTH


Bạn quên nói về yarnhệ sinh thái Hadoop :(.
Kenry Sanchez

53

Tôi đã triển khai nền tảng Dữ liệu Hive gần đây trong công ty của mình và có thể nói chuyện với người đó ngay từ khi tôi còn là một nhóm một người.

Mục tiêu

  1. Để có các tệp nhật ký web hàng ngày được thu thập từ hơn 350 máy chủ truy cập hàng ngày thông qua một số ngôn ngữ như SQL
  2. Để thay thế dữ liệu tổng hợp hàng ngày được tạo thông qua MySQL bằng Hive
  3. Xây dựng báo cáo tùy chỉnh thông qua các truy vấn trong Hive

Tùy chọn kiến ​​trúc

Tôi đã điểm chuẩn các tùy chọn sau:

  1. Tổ ong + HDFS
  2. Hive + HBase - truy vấn quá chậm nên tôi đã bỏ tùy chọn này

Thiết kế

  1. Tệp nhật ký hàng ngày đã được chuyển đến HDFS
  2. Các công việc MR đã phân tích các tệp nhật ký này và các tệp đầu ra trong HDFS
  3. Tạo các bảng Hive với các phân vùng và vị trí trỏ đến các vị trí HDFS
  4. Tạo tập lệnh truy vấn Hive (gọi nó là HQL nếu bạn thích khác với SQL ), lần lượt chạy các công việc MR trong nền và tạo dữ liệu tổng hợp
  5. Đặt tất cả các bước này vào quy trình làm việc của Oozie - được lên lịch với Điều phối viên Oozie hàng ngày

Tóm lược

HBase giống như một Bản đồ. Nếu bạn biết khóa, bạn có thể nhận ngay giá trị. Nhưng nếu bạn muốn biết có bao nhiêu khóa số nguyên trong Hbase nằm trong khoảng từ 1000000 đến 2000000 không phù hợp với riêng Hbase .

Nếu bạn có dữ liệu cần được tổng hợp, cuộn lại, phân tích trên các hàng thì hãy xem xét Hive .

Hy vọng điều này sẽ giúp.

Hive thực sự đá ... Tôi biết, tôi đã sống được 12 tháng rồi ... HBase cũng vậy ...


1
HBase là một cơ sở dữ liệu NonQuery lưu trữ dữ liệu trong HDFS. Nó được sử dụng khi bạn cần truy cập đọc / ghi ngẫu nhiên, thời gian thực vào dữ liệu lớn của bạn.
Root Loop

28

Hadoop là một khung công tác cho phép xử lý phân tán các tập dữ liệu lớn trên các cụm máy tính bằng các mô hình lập trình đơn giản.

Có bốn mô-đun chính trong Hadoop.

  1. Hadoop Common : Các tiện ích phổ biến hỗ trợ các mô-đun Hadoop khác.

  2. Hệ thống tệp phân tán Hadoop ( HDFS ™ ): Một hệ thống tệp phân tán cung cấp quyền truy cập thông lượng cao vào dữ liệu ứng dụng.

  3. Hadoop YARN : Một khung để lập lịch công việc và quản lý tài nguyên cụm.

  4. Hadoop MapReduce : Một hệ thống dựa trên YARN để xử lý song song các tập dữ liệu lớn.

Trước khi đi xa hơn, hãy lưu ý rằng chúng tôi có ba loại dữ liệu khác nhau.

  • Có cấu trúc : Dữ liệu có cấu trúc có lược đồ mạnh và lược đồ sẽ được kiểm tra trong quá trình ghi & đọc. ví dụ: Dữ liệu trong các hệ thống RDBMS như Oracle, MySQL Server, v.v.

  • Không cấu trúc : Dữ liệu không có bất kỳ cấu trúc nào và nó có thể là bất kỳ dạng nào - Nhật ký máy chủ web, E-Mail, Hình ảnh, v.v.

  • Bán cấu trúc : Dữ liệu không được cấu trúc chặt chẽ nhưng có một số cấu trúc. ví dụ: các tệp XML.

Tùy thuộc vào loại dữ liệu sẽ được xử lý, chúng ta phải chọn đúng công nghệ.

Một số dự án nữa, là một phần của Hadoop:

  • HBase ™ : Cơ sở dữ liệu phân tán, có thể mở rộng, hỗ trợ lưu trữ dữ liệu có cấu trúc cho các bảng lớn.

  • Hive ™: Cơ sở hạ tầng kho dữ liệu cung cấp tóm tắt dữ liệu và truy vấn đặc biệt.

  • Pig ™ : Khung ngôn ngữ và luồng thực thi dữ liệu cấp cao để tính toán song song.

So sánh Hive Vs PIG có thể được tìm thấy tại bài viết này và bài đăng khác của tôi tại câu hỏi SE này .

HBASE sẽ không thay thế Map Giảm. HBase là cơ sở dữ liệu phân tán có thể mở rộng & Map Giảm là mô hình lập trình để xử lý dữ liệu phân tán. Map Giảm có thể tác động lên dữ liệu trong HBASE khi xử lý.

Bạn có thể sử dụng HIVE / HBASE cho dữ liệu có cấu trúc / bán cấu trúc và xử lý dữ liệu với Hadoop Map Giảm

Bạn có thể sử dụng SQOOP để nhập dữ liệu có cấu trúc từ cơ sở dữ liệu RDBMS truyền thống Oracle, SQL Server, v.v. và xử lý nó với Hadoop Map Giảm

Bạn có thể sử dụng FLUME để xử lý dữ liệu và cấu trúc không có cấu trúc với Hadoop Map Giảm

Có một cái nhìn tại: Các trường hợp sử dụng Hadoop .

Hive nên được sử dụng để truy vấn phân tích dữ liệu được thu thập trong một khoảng thời gian. ví dụ: Tính xu hướng, tóm tắt nhật ký trang web nhưng không thể sử dụng nó cho các truy vấn thời gian thực.

HBase phù hợp để truy vấn Big Data theo thời gian thực. Facebook sử dụng nó để nhắn tin và phân tích thời gian thực.

PIG có thể được sử dụng để xây dựng các cơ sở dữ liệu, chạy các công việc được lên lịch, xử lý khối lượng dữ liệu lớn, tổng hợp / tóm tắt và lưu trữ vào các hệ thống cơ sở dữ liệu quan hệ. Tốt cho phân tích đặc biệt.

Hive có thể được sử dụng để phân tích dữ liệu đặc biệt nhưng nó không thể hỗ trợ tất cả các định dạng dữ liệu không có cấu trúc không giống như PIG.


Facebook không còn sử dụng HBase mã nguồn mở cho các hệ thống nhắn tin thời gian thực. Họ đã thay thế nó bằng [cơ sở dữ liệu Myrocks] trong nhà của họ. ( Engineering.fb.com/core-data/
trộm

22

Hãy xem xét rằng bạn làm việc với RDBMS và phải chọn những gì sẽ sử dụng - quét toàn bộ bảng hoặc truy cập chỉ mục - nhưng chỉ một trong số chúng.
Nếu bạn chọn quét toàn bộ bảng - sử dụng tổ ong. Nếu truy cập chỉ mục - HBase.


Trên thực tế, bạn có thể xây dựng Hive trên HBase để bạn có thể sử dụng HQL để quét toàn bộ cơ sở trong khi có thể thực hiện truy vấn được lập chỉ mục trên hbase trực tiếp. Nhưng tôi nghi ngờ điều này mang lại cho bạn hiệu suất chậm hơn khi quét toàn bộ.
FrostNovaZzz

HBase là hệ thống định hướng ghi, nó không tối ưu khi quét, mặc dù dữ liệu được lưu trữ được sắp xếp. Vì vậy, trong khi quét một số phạm vi có thể là lựa chọn tốt, quét toàn bộ sẽ chậm hơn nhiều sau đó trực tiếp từ HDFS
David Gruzman

5

Để so sánh giữa Hadoop Vs Cassandra / HBase, hãy đọc bài viết này .

Về cơ bản HBase cho phép đọc và ghi rất nhanh với khả năng mở rộng. Làm thế nào nhanh và có thể mở rộng? Facebook sử dụng nó để quản lý trạng thái người dùng, ảnh, tin nhắn trò chuyện, v.v ... HBase rất nhanh đôi khi các ngăn xếp đã được Facebook phát triển để sử dụng HBase làm kho lưu trữ dữ liệu cho chính Hive.

Trong đó As Hive giống như một giải pháp kho dữ liệu. Bạn có thể sử dụng cú pháp tương tự như SQL để truy vấn nội dung Hive dẫn đến công việc Giảm bản đồ. Không lý tưởng cho các hệ thống giao dịch nhanh.


5

Tôi đã làm việc với kiến ​​trúc Lambda xử lý thời gian thực và tải hàng loạt. Cần xử lý thời gian thực khi cần đưa ra quyết định nhanh trong trường hợp Báo cháy gửi bằng cảm biến hoặc phát hiện gian lận trong trường hợp giao dịch ngân hàng. Cần xử lý hàng loạt để tóm tắt dữ liệu có thể được đưa vào hệ thống BI.

chúng tôi đã sử dụng các công nghệ hệ sinh thái Hadoop cho các ứng dụng trên.

Xử lý thời gian thực

Apache Storm: Xử lý luồng dữ liệu, ứng dụng Quy tắc

HBase: Kho dữ liệu để phục vụ bảng điều khiển thời gian thực

Batch Xử lý Hadoop: Crunching khối dữ liệu khổng lồ. Tổng quan 360 độ hoặc thêm bối cảnh cho các sự kiện. Các giao diện hoặc khung như Pig, MR, Spark, Hive, Shark giúp đỡ trong điện toán. Lớp này cần lịch trình mà Oozie là lựa chọn tốt.

Lớp xử lý sự kiện

Apache Kafka là lớp đầu tiên tiêu thụ các sự kiện vận tốc cao từ cảm biến. Kafka phục vụ cả luồng dữ liệu phân tích theo thời gian thực và hàng loạt thông qua các trình kết nối Linkedin.


5

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

  1. 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.
  2. Nó đã chia sẻ kiến ​​trúc không có gì.
  3. 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ó.
  4. 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.
  5. 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.
  6. 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.
  7. 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:

  1. Hadoop 1.0
  2. 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: MAPREDUCEđể 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

  1. Hạn chế đầu tiên là yêu cầu về MapReducechuyên môn lập trình.

  2. 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.

  3. 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:

    1. Viết lại chức năng của chúng MapReduceđể nó có thể được thực thi trong Hadoophoặc

    2. 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

  1. Một cơ sở dữ liệu quan hệ

  2. Một thiết kế để xử lý giao dịch trực tuyến ( OLTP).

  3. 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

  1. Nó lưu trữ lược đồ trong cơ sở dữ liệu và xử lý dữ liệu vào HDFS.

  2. Nó được thiết kế cho OLAP.

  3. Nó cung cấp SQLloại ngôn ngữ để truy vấn được gọi là HiveQLhoặc HQL.

  4. 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:

  1. Giao diện người dùng : Hivedata 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).

  2. 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.

  3. 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ó.

  4. Exceifying Engine : Phần kết hợp của HiveQLcông cụ xử lý và MapReduceHiveCô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.

  5. 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.


1

Trước hết chúng ta nên làm rõ rằng Hadoop đã được tạo như một sự thay thế nhanh hơn cho RDBMS . Để xử lý lượng dữ liệu lớn với tốc độ rất nhanh mà trước đó phải mất rất nhiều thời gian trong RDBMS.

Bây giờ người ta nên biết hai thuật ngữ:

  1. Dữ liệu có cấu trúc : Đây là dữ liệu mà chúng tôi đã sử dụng trong RDBMS truyền thống và được chia thành các cấu trúc được xác định rõ.

  2. Dữ liệu phi cấu trúc : Điều này rất quan trọng để hiểu, khoảng 80% dữ liệu trên thế giới là không có cấu trúc hoặc bán cấu trúc. Đây là những dữ liệu ở dạng thô và không thể được xử lý bằng RDMS. Ví dụ: dữ liệu facebook, twitter. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-en môi.html ).

Vì vậy, một lượng lớn dữ liệu đã được tạo ra trong vài năm qua và dữ liệu hầu như không có cấu trúc, đã sinh ra HADOOP. Nó chủ yếu được sử dụng cho lượng dữ liệu rất lớn mất nhiều thời gian không khả thi khi sử dụng RDBMS. Nó có nhiều nhược điểm, rằng nó không thể được sử dụng cho dữ liệu tương đối nhỏ trong thời gian thực nhưng họ đã tìm cách loại bỏ nhược điểm của nó trong phiên bản mới hơn.

Trước khi đi xa hơn, tôi muốn nói rằng một công cụ Dữ liệu lớn mới được tạo khi họ thấy lỗi trên các công cụ trước đó. Vì vậy, bất kỳ công cụ nào bạn sẽ thấy được tạo ra đã được thực hiện để khắc phục vấn đề của các công cụ trước đó.

Hadoop có thể nói một cách đơn giản là hai điều: MapreduceHDFS . Mapreduce là nơi diễn ra quá trình xử lý và HDFS là DataBase nơi lưu trữ dữ liệu. Cấu trúc này tuân theo hiệu trưởng WORM tức là viết một lần đọc nhiều lần. Vì vậy, một khi chúng tôi đã lưu trữ dữ liệu trong HDFS, chúng tôi không thể thay đổi. Điều này dẫn đến việc tạo ra HBASE , một sản phẩm NOSQL nơi chúng ta có thể thay đổi dữ liệu sau khi viết nó một lần.

Nhưng theo thời gian, chúng ta đã thấy rằng Hadoop có nhiều lỗi và do đó chúng ta đã tạo ra môi trường khác nhau trên cấu trúc Hadoop. PIG và HIVE là hai ví dụ phổ biến.

HIVE được tạo ra cho những người có nền tảng SQL . Các truy vấn được viết tương tự như SQL có tên là HIVEQL . HIVE được phát triển để xử lý dữ liệu có cấu trúc hoàn toàn . Nó không được sử dụng cho dữ liệu cấu trúc.

PIG mặt khác có ngôn ngữ truy vấn riêng, tức là PIG LATIN . Nó có thể được sử dụng cho cả cấu trúc cũng như dữ liệu phi cấu trúc .

Chuyển sang sự khác biệt khi sử dụng HIVE và khi nào sử dụng PIG, tôi không nghĩ ai khác ngoài kiến ​​trúc sư của PIG có thể nói. Theo liên kết: https://developer.yahoo.com/bloss/hadoop/compared-pig-latin-sql-constructing-data- Processing-pipelines-444


1

Hadoop:

HDFS là viết tắt của Hệ thống tệp phân tán Hadoop sử dụng mô hình xử lý tính toán Map-Giảm.

HBase:

HBase là bộ lưu trữ Key-Value, tốt cho việc đọc và viết trong thời gian gần.

Tổ ong:

Hive được sử dụng để trích xuất dữ liệu từ HDFS bằng cú pháp giống như SQL. Hive sử dụng ngôn ngữ HQL.

Con lợn:

Pig là ngôn ngữ luồng dữ liệu để tạo ETL. Đó là một ngôn ngữ kịch bản.


0

Hãy để tôi cố gắng trả lời trong vài từ.

Hadoop là một hệ sinh thái bao gồm tất cả các công cụ khác. Vì vậy, bạn không thể so sánh Hadoop nhưng bạn có thể so sánh MapReduce.

Dưới đây là một vài xu của tôi:

  1. Hive: Nếu nhu cầu của bạn rất SQLish có nghĩa là câu lệnh vấn đề của bạn có thể được cung cấp bởi SQL, thì điều dễ làm nhất là sử dụng Hive. Một trường hợp khác, khi bạn sử dụng tổ ong là khi bạn muốn một máy chủ có cấu trúc dữ liệu nhất định.
  2. Pig: Nếu bạn cảm thấy thoải mái với Pig Latin và bạn cần nhiều hơn các đường ống dữ liệu. Ngoài ra, dữ liệu của bạn thiếu cấu trúc. Trong những trường hợp đó, bạn có thể sử dụng Pig. Thành thật mà nói, không có nhiều sự khác biệt giữa Hive & Pig đối với các trường hợp sử dụng.
  3. MapReduce: Nếu vấn đề của bạn không thể giải quyết được bằng cách sử dụng SQL thẳng, trước tiên bạn nên thử tạo UDF cho Hive & Pig và sau đó nếu UDF không giải quyết được vấn đề thì hãy giải quyết nó thông qua MapReduce.

0

Pig: tốt hơn là xử lý tệp và làm sạch ví dụ dữ liệu: xóa giá trị null, xử lý chuỗi, giá trị không cần thiết Hive: để truy vấn dữ liệu đã xóa


0

1. Chúng tôi đang sử dụng Hadoop để lưu trữ Dữ liệu lớn (dữ liệu iestr struct, Unitectture và Semistr struct) ở định dạng tệp biểu mẫu như txt, csv.

2.Nếu chúng tôi muốn cập nhật cột trong dữ liệu của mình thì chúng tôi đang sử dụng công cụ Hbase

3. Trong trường hợp của Hive, chúng tôi đang lưu trữ Dữ liệu lớn có định dạng có cấu trúc và ngoài ra chúng tôi đang cung cấp Phân tích về dữ liệu đó.

4.Pig là công cụ sử dụng ngôn ngữ Pig Latin để phân tích dữ liệu ở bất kỳ định dạng nào (cấu trúc, bán cấu trúc và cấu trúc).


0

Làm sạch dữ liệu trong Pig rất dễ dàng, một cách tiếp cận phù hợp sẽ là làm sạch dữ liệu thông qua lợn và sau đó xử lý dữ liệu thông qua tổ ong và sau đó tải nó lên hdfs.


0

Sử dụng Hive, Hbase và Pig ghi lại trải nghiệm thời gian thực của tôi trong các dự án khác nhau.

Hive được sử dụng chủ yếu cho:

  • Mục đích phân tích nơi bạn cần phân tích dữ liệu lịch sử

  • Tạo báo cáo kinh doanh dựa trên các cột nhất định

  • Quản lý hiệu quả dữ liệu cùng với thông tin siêu dữ liệu

  • Nối các bảng trên các cột nhất định thường được sử dụng bằng cách sử dụng khái niệm xô

  • Lưu trữ và truy vấn hiệu quả bằng cách sử dụng khái niệm phân vùng

  • Không hữu ích cho các hoạt động cấp giao dịch / hàng như cập nhật, xóa, v.v.

Lợn được sử dụng chủ yếu cho:

  • Phân tích dữ liệu thường xuyên trên dữ liệu lớn

  • Tạo các giá trị / tổng hợp trên dữ liệu khổng lồ

  • Tạo các chỉ số hiệu suất chính cấp doanh nghiệp rất thường xuyên

Hbase được sử dụng chủ yếu:

  • Để xử lý dữ liệu theo thời gian thực

  • Để quản lý hiệu quả lược đồ phức tạp và lồng nhau

  • Để truy vấn thời gian thực và kết quả nhanh hơn

  • Để dễ dàng mở rộng với các cột

  • Hữu ích cho các hoạt động cấp giao dịch / hàng như cập nhật, xóa, v.v.


0

Câu trả lời ngắn cho câu hỏi này là -

Hadoop - Là khung tạo điều kiện cho hệ thống tệp và mô hình lập trình phân tán cho phép chúng tôi lưu trữ dữ liệu có kích thước khiêm tốn và xử lý dữ liệu theo kiểu phân tán rất hiệu quả và thời gian xử lý rất ít so với các phương pháp truyền thống.

(HDFS - Hệ thống tệp phân tán Hadoop) (Bản đồ thu nhỏ - Mô hình lập trình để xử lý phân tán)

Hive - Là ngôn ngữ truy vấn cho phép đọc / ghi dữ liệu từ hệ thống tệp phân tán Hadoop theo kiểu SQL rất phổ biến như thời trang. Điều này làm cho cuộc sống dễ dàng hơn đối với nhiều người không lập trình vì họ không phải viết chương trình Giảm bản đồ nữa ngoại trừ các tình huống rất phức tạp khi Hive không được hỗ trợ.

Hbase - Là cơ sở dữ liệu cột NoQuery. Dưới lớp lưu trữ cho Hbase là HDFS. Trường hợp sử dụng quan trọng nhất cho cơ sở dữ liệu này là có thể lưu trữ hàng tỷ hàng với hàng triệu cột. Tính năng độ trễ thấp của Hbase giúp truy cập nhanh hơn và ngẫu nhiên bản ghi trên dữ liệu phân tán, là tính năng rất quan trọng để làm cho nó hữu ích cho các dự án phức tạp như Công cụ giới thiệu. Ngoài ra, khả năng tạo phiên bản ở mức kỷ lục cho phép người dùng lưu trữ dữ liệu giao dịch rất hiệu quả (điều này giải quyết vấn đề cập nhật hồ sơ chúng tôi có với HDFS và Hive)

Hy vọng điều này hữu ích để nhanh chóng hiểu 3 tính năng trên.


0

Tôi tin rằng chủ đề này đã không được thực hiện công bằng đặc biệt đối với HBase và Pig nói riêng. Mặc dù tôi tin rằng Hadoop là sự lựa chọn của hệ thống tệp phân tán, có khả năng phục hồi cho việc triển khai hồ dữ liệu lớn, sự lựa chọn giữa HBase và Hive đặc biệt được phân tách rõ ràng.

Như trong, rất nhiều trường hợp sử dụng có một yêu cầu cụ thể về các giao diện giống như SQL hoặc No-SQL. Với Phoenix đứng đầu HBase, mặc dù khả năng như SQL chắc chắn có thể đạt được, tuy nhiên, hiệu suất, tích hợp của bên thứ ba, cập nhật bảng điều khiển là một loại trải nghiệm đau đớn. Tuy nhiên, đó là một lựa chọn tuyệt vời cho cơ sở dữ liệu yêu cầu mở rộng theo chiều ngang.

Pig đặc biệt xuất sắc cho lô không đệ quy như tính toán hoặc đường ống ETL (ở đâu đó, nơi nó vượt trội hơn Spark bởi khoảng cách thoải mái). Ngoài ra, việc triển khai dataflow cấp cao là một lựa chọn tuyệt vời cho truy vấn và kịch bản hàng loạt. Sự lựa chọn giữa Pig và Hive cũng xoay quanh nhu cầu của kịch bản phía máy khách hoặc máy chủ, các định dạng tệp được yêu cầu, v.v. Pig hỗ trợ định dạng tệp Avro không đúng trong trường hợp của Hive. Sự lựa chọn cho 'ngôn ngữ luồng dữ liệu thủ tục' so với 'ngôn ngữ luồng dữ liệu khai báo' cũng là một đối số mạnh mẽ cho sự lựa chọn giữa lợn và tổ ong.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.