什么叫“hdfs缺少随机读写访问”?

hmae6n7t  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(401)

任何文件系统都应该提供一个api来访问其文件和目录等。
那么,“hdfs缺少随机读写访问”是什么意思呢?
所以,我们应该使用hbase。

i2byvkas

i2byvkas1#

在典型的数据库中,数据以rdbms格式存储在表中,您可以从任何表中读取或写入任何记录,而不必知道其他记录中有什么。这叫做随机写/读。
但在hdfs中,数据通常以文件格式而不是表格式存储。因此,如果你正在读/写它不像rdbms那么容易。

deyfvvtc

deyfvvtc2#

默认hdfs块大小为128 mb。所以你不能在这里读一行,在那里读一行。你总是读写128MB的数据块。当您要处理整个文件时,这很好。但它使hdfs不适合于某些应用程序,比如您想在其中使用索引来查找小记录。
另一方面,hbase非常适合这个。如果你想读一个小记录,你只能读那个小记录。
hbase使用hdfs作为其备份存储。那么它如何提供高效的基于记录的访问呢?
hbase将表从hdfs加载到内存或本地磁盘,因此大多数读取不会转到hdfs。突变首先存储在只附加的日志中。当日志变大时,它会被构建到一个“附录”表中。当补遗表太多时,它们都会被压缩到一个全新的主表中。对于读取,首先查阅日志,然后查阅附录表,最后查阅主表。这个系统意味着只有当我们有一个完整的hdfs块的更改时,我们才写一个完整的hdfs块。
bigtable白皮书对这种方法进行了更全面的描述。

相关问题