I want to know the relationship between HDFS and databases.
Không có relation
như vậy giữa 2. Nếu bạn vẫn muốn tìm một số giống nhau, điều duy nhất mà là phổ biến giữa 2 là cung cấp cho store
dữ liệu. Nhưng điều này tương tự với bất kỳ kết hợp FS và DB nào. MySQL và ext3, ví dụ. Bạn nói rằng bạn đang lưu trữ dữ liệu trong MySQL, nhưng cuối cùng dữ liệu của bạn được lưu trữ trên FS của bạn. Thông thường, mọi người sử dụng cơ sở dữ liệu NoSQL, như HBase, trên đầu trang của cụm Hadoop của họ để khai thác tính song song và hành vi phân phối do HDFS cung cấp.
Is it always necessary that to use HDFS, the data be in a some NoSQL format?
Thực ra không có gì giống như NoSQL format
. Bạn có thể sử dụng HDFS cho bất kỳ loại dữ liệu, văn bản, nhị phân, xml vv vv
Is there a specific database that always comes attached when using HDFS?
số Điều duy nhất mà đi kèm cùng với HDFS là MapReduce framework
. Bạn rõ ràng có thể làm cho một DB làm việc với HDFS. Folks thường sử dụng NoSQL DBs trên đầu trang của HDFS. Có một số lựa chọn như Cassandra, HBase, vv. Hoàn toàn tùy thuộc vào bạn để quyết định nên sử dụng cái nào.
Can I use a relational database as the native database for Hadoop?
Không có tính năng OOTB cho phép điều này.Hơn nữa, nó không có ý nghĩa nhiều khi sử dụng RDBMS với Hadoop. Hadoop đã được phát triển cho những lần RDBMS không phải là tùy chọn thích hợp, như xử lý các dữ liệu PB, xử lý dữ liệu phi cấu trúc… Có nói rằng, bạn không phải nghĩ về Hadoop như là một sự thay thế cho các RDBMB. Cả hai đều có mục tiêu hoàn toàn khác nhau.
EDIT:
thường folks sử dụng NoSQL DBS (như HBase, Cassandra) với Hadoop. Việc sử dụng các DB này với hadoop chỉ đơn thuần là vấn đề cấu hình. Bạn không cần bất kỳ chương trình kết nối nào để đạt được điều này. Ngoài điểm được thực hiện bởi @Doctor Dan, có một vài lý do khác đằng sau việc chọn NoSQL DBs thay cho SQL DBs. Một điều là size
. Các NoSQL DB này cung cấp khả năng mở rộng ngang tuyệt vời cho phép bạn lưu trữ PBs dữ liệu dễ dàng. Bạn có thể mở rộng hệ thống truyền thống, nhưng theo chiều dọc. Một lý do khác là complexity
dữ liệu. Các địa điểm, nơi các DB này đang được sử dụng, chủ yếu là xử lý dữ liệu không có cấu trúc cao mà không phải là rất dễ dàng để đối phó với việc sử dụng các hệ thống truyền thống. Ví dụ: dữ liệu cảm biến, dữ liệu nhật ký, v.v.
Về cơ bản, tôi không hiểu tại sao SQOOP tồn tại. Tại sao chúng ta không thể trực tiếp sử dụng dữ liệu SQL trên Hadoop.
Mặc dù Hadoop rất giỏi xử lý các nhu cầu BigData của bạn, nhưng đó không phải là giải pháp cho mọi nhu cầu của bạn. Nó không thích hợp cho nhu cầu thời gian thực. Giả sử bạn là một Công ty giao dịch trực tuyến có số liệu rất lớn. Bạn thấy rằng bạn có thể xử lý dữ liệu này rất dễ dàng bằng cách sử dụng Hadoop. Nhưng vấn đề là bạn không thể phục vụ nhu cầu thời gian thực của khách hàng của bạn với Hadoop. Đây là nơi SQOOP đi vào hình ảnh. Nó là một công cụ nhập/xuất cho phép bạn di chuyển dữ liệu giữa một DB SQL và Hadoop. Bạn có thể di chuyển BigData vào cụm Hadoop của bạn, xử lý nó ở đó và sau đó đẩy các kết quả trở lại vào SQL DB của bạn bằng cách sử dụng SQOOP để phục vụ các nhu cầu thời gian thực của khách hàng của bạn.
HTH
Nó sẽ giúp ích. Cảm ơn bạn. Tôi không xem xét điểm mà Hadoop sao chép dữ liệu - vì vậy có, điều đó làm cho một cơ sở dữ liệu SQL không tương thích như một cơ sở dữ liệu riêng tôi đoán. – crossvalidator