hadoop - HBase 和 Hadoop/HDFS 的区别

标签 hadoop nosql hbase hdfs difference

这是一个天真的问题,但我是 NoSQL 范例的新手,对此了解不多。因此,如果有人可以帮助我清楚地了解 HBase 和 Hadoop 之间的区别,或者提供一些可能有助于我理解区别的指示。

到目前为止,我做了一些研究和积累。据我了解,Hadoop 提供了处理 HDFS 中原始数据 block (文件)的框架,而 HBase 是 Hadoop 之上的数据库引擎,它基本上使用结构化数据而不是原始数据 block 。就像 SQL 一样,Hbase 在 HDFS 上提供了一个逻辑层。是否正确?

最佳答案

Hadoop 基本上由 3 个部分组成,一个 FS(Hadoop 分布式文件系统)、一个计算框架 (MapReduce) 和一个管理桥梁 (Yet Another Resource Negotiator)。 HDFS 允许您以分布式(提供更快的读/写访问)和冗余(提供更好的可用性)方式存储大量数据。而 MapReduce 允许您以分布式和并行的方式处理这些庞大的数据。但 MapReduce 并不仅限于 HDFS。作为一个文件系统,HDFS 缺乏随机读/写能力。它有利于顺序数据访问。这就是 HBase 发挥作用的地方。它是一个在 Hadoop 集群上运行的 NoSQL 数据库,为您提供对数据的随机实时读/写访问。

您可以在 Hadoop 和 HBase 中存储结构化和非结构化数据。它们都为您提供了多种访问数据的机制,例如 shell 和其他 API。 而且,HBase 以列式方式将数据存储为键/值对,而 HDFS 将数据存储为平面文件。这两个系统的一些显着特征是:

Hadoop

  1. 针对大型文件的流式访问进行了优化。
  2. 遵循一次写入多次读取的理念。
  3. 不支持随机读/写。

HBase

  1. 以列方式存储键/值对(列组合在一起作为列族)。
  2. 提供对大型数据集中的少量数据的低延迟访问。
  3. 提供灵活的数据模型。

Hadoop 最适合离线批处理之类的东西,而 HBase 则在您有实时需求时使用。

类似的比较是 MySQL 和 Ext4。

关于hadoop - HBase 和 Hadoop/HDFS 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929832/

相关文章:

java - PIG/Hadoop 问题 : ERROR 2081: Unable to setup the load function

hadoop - 无法使用TEZ执行引擎启动配置单元

java - Hadoop Map任务/Map对象

Java编译不产生.jar

sql - SQL vs NoSQL构建示例

hadoop - 伪分布式配置hbase

asp.net - sisoDB是否使用sql server数据库来存储数据

hadoop - cassandra 和 hadoop - 实时与批处理

apache-spark - Spark 只写入一个 hbase 区域服务器

java - 行数据库和列数据库在处理信息检索方面的区别