Hadoop 和 HBase 集成

标签 hadoop hbase

我是大数据技术的新手,我有一个关于hbase如何与hadoop集成的问题。 “Hbase 位于 HDFS 之上”是什么意思? .我的理解是 HDFS 是分布在多个节点上的结构化和非结构化数据的集合,而 HBase 是结构化数据。

Hbase 如何与 Hadoop 集成以提供对底层数据的实时访问。我们是否必须编写特殊的作业来构建索引等?换句话说,在 Hbase 和 hdfs 之间是否有一个附加层,它具有 HBase 理解的结构中的数据

最佳答案

HDFS 是一个分布式文件系统;可以对它执行大多数常规 FS 操作,例如在目录中列出文件、写入常规文件、读取文件的一部分等。它不再是简单的“结构化或非结构化数据的集合”,而不是 EXT4 NTFS 文件系统。

HBase 是内存中的键值存储,可以持久化HDFS(这不是硬性要求,您可以在任何分布式文件系统上运行 HBase)。对于向 HBase 请求的任何读取 key 请求,它会首先检查其运行时内存缓存,看是否缓存了值,否则访问其在 HDFS 上的存储文件以查找并读出具体值。 HBase 中提供了各种配置来控制缓存的使用方式,但 HBase 的速度来自于缓存和索引持久性(更快的搜索文件读取)的组合。

HBase 在 HDFS 上的基于文件的持久化在写入时自动进行键索引,因此用户不需要手动索引。这些文件是常规的 HDFS 文件,但专门用于 HBase 使用的格式,称为 HFiles。

这些文章有些过时,但仍然非常反射(reflect) HBase 使用的架构:http://blog.cloudera.com/blog/2012/06/hbase-write-path/http://blog.cloudera.com/blog/2012/06/hbase-io-hfile-input-output/ ,如果您想深入挖掘,应该会有所帮助。

关于Hadoop 和 HBase 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36249463/

相关文章:

hadoop - 如何在不传递值和rowid的情况下在H基壳中创建表?

hadoop - 使用hbase中已有的zookeeper

hadoop - HBase区域服务器将无法在Hadoop HA环境中启动

hadoop - 如何/在哪里可以写入时间序列数据?作为 Hadoop、HBase、Cassandra 的 Parquet 格式?

hadoop - 从多个文件读取并压缩为单个文件

string - 如何在命令行中使用感叹号作为字符串的一部分?

hbase - 如何在 hbase 中存储原始数据类型并检索

arrays - hive explode 导致不均匀的值

hadoop - Pig Latin 跨组求和

hadoop - 分布式缓存文件检索问题