Dha*_*hah 129 hadoop hbase nosql hdfs difference
这是一个天真的问题,但我是NoSQL范式的新手并且对此并不了解.所以,如果有人可以帮助我清楚地理解HBase和Hadoop之间的区别,或者给出一些可能有助于我理解差异的指针.
直到现在,我做了一些研究和acc.根据我的理解,Hadoop提供框架来处理HDFS中的原始数据块(文件),而HBase是Hadoop之上的数据库引擎,它基本上使用结构化数据而不是原始数据块.与SQL一样,Hbase在HDFS上提供逻辑层.这是对的吗?
请随时纠正我.
谢谢.
Tar*_*riq 245
Hadoop基本上是3件事,FS(Hadoop分布式文件系统),计算框架(MapReduce)和管理桥(Yet Another Resource Negotiator).HDFS允许您在分布式(提供更快的读/写访问)和冗余(提供更好的可用性)方式中存储大量数据.MapReduce允许您以分布式和并行方式处理这些巨大的数据.但MapReduce并不仅限于HDFS.作为FS,HDFS缺乏随机读/写功能.它适用于顺序数据访问.这就是HBase出现的地方.它是一个NoSQL数据库,在您的Hadoop集群上运行,并为您提供对数据的随机实时读/写访问.
您可以将结构化和非结构化数据存储在Hadoop和HBase中.它们都为您提供了多种访问数据的机制,例如shell和其他API.并且,HBase以列式方式将数据存储为键/值对,而HDFS将数据存储为平面文件.这两个系统的一些显着特征是:
Hadoop的
HBase的
Hadoop最适合离线批量处理类型,而当您有实时需求时使用HBase.
类似的比较将在MySQL和Ext4之间进行.
Rav*_*abu 22
Apache Hadoop项目包括四个关键模块
HBase是一个可扩展的分布式数据库,支持大型表的结构化数据存储.正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似Bigtable的功能.
何时使用HBase:
但HBase有一些局限性
摘要:
当您按键加载数据,按键(或范围)搜索数据,按键提供数据,按键查询数据或按行不符合模式存储数据时,请考虑HBase.
从cloudera博客看一下Do's和Do not of HBase .
Hadoop使用分布式文件系统即HDFS来存储大数据。但是HDFS存在一定的局限性,为了克服这些局限性,出现了HBase、Cassandra和Mongodb等NoSQL数据库。
Hadoop只能进行批处理,数据只能按顺序访问。这意味着即使是最简单的工作也必须搜索整个数据集。处理一个庞大的数据集会导致另一个庞大的数据集,该数据集也应该按顺序处理。此时,需要一个新的解决方案来在单个时间单位内访问任何数据点(随机访问)。
像所有其他文件系统一样,HDFS 为我们提供存储,但以容错方式提供高吞吐量和较低的数据丢失风险(由于复制)。但是,作为文件系统,HDFS 缺乏随机读写访问。这就是 HBase 出现的地方。它是一个分布式、可扩展的大数据存储,以 Google 的 BigTable 为模型。Cassandra 有点类似于 hbase。
笔记:
检查 HDFS 恶魔(以绿色突出显示),如集群中的DataNode(并置区域服务器)和 NameNode,同时拥有 HBase 和 Hadoop HDFS
HDFS是一种分布式文件系统,非常适合存储大文件。它不提供文件中的快速单个记录查找。
另一方面,HBase建立在 HDFS 之上,并为大型表提供快速的记录查找(和更新)。这有时可能是概念混淆的一个点。HBase 在内部将您的数据放在 HDFS 上存在的索引“StoreFiles”中以进行高速查找。
这看起来如何?
那么,在基础设施层面,集群中的每台salve机器都有以下恶魔

查找速度如何?
HBase 使用以下数据模型在作为底层存储的 HDFS(有时也其他分布式文件系统)上实现快速查找
桌子
排
柱子
列族
列限定符
细胞
时间戳
客户端读取请求流程:

上图中的元表是什么?

在所有的信息之后,HBase 读取流程是为了查找触及这些实体
- 首先,扫描器在块缓存——读缓存中寻找行单元。最近读取的键值被缓存在这里,当需要内存时,最近最少使用被逐出。
- 接下来,扫描器在MemStore 中查找,内存中包含最近写入的写入缓存。
- 如果扫描器没有找到 MemStore 和 Block Cache 中的所有行单元,则 HBase 将使用 Block Cache 索引和布隆过滤器将HFile加载到可能包含目标行单元的内存中。
来源和更多信息:
| 归档时间: |
|
| 查看次数: |
69752 次 |
| 最近记录: |