返回空kong的回答

空kong空kong其它某单位

Hbase 运行在 HDFS 之上,每个 StoreFile 都被写成一个 HDFS 的文件,能理解 HDFS 的架构,它是如何存储文件,处理故障转移和复制块很重要

大多数情况下, Hbase 将数据存储在 HDFS 之上,像 Hfile 和 WALs( 主要为了防止 RegionServer 出现故障 ) 都会存储在 HDFS 上, HDFS 提供对 Hbase 数据的可靠性和保证,为了最大化的操作效率, Hbase 也需要本地的数据是可靠的,因此最好是在每一个 RegionServer 上运行 DataNode 。

当有问题出现的时候,最好同时检查 HDFS 和 Hbase 的日志,因为日志可能再两个地方都有记录。

另外, HBase 不支持一台用 HDFS ,一台不用 HDFS ,在完全分布式的场景中,多个 Hbase 的实例运行在集群的多个服务器上面,一般要设置两个属性:

hbase.rootdir 指向一个 HDFS 的文件系统

hbase.cluster.distributed 属性设置为 true 。

如下:可以看到 HBase 只能指向某一种文件系统的路径上,而且想要 HBase 完全的分布式,必须要设置上面两个属性。

HBase 是 HDFS 的客户端, Hbase 使用的是 DFSClient 来和 HDFS 交互,可以看到配置就是 Hbase 指向 HDFS 的那个位置, HBase 通过 Ip port 访问 HDFS 。

参见: https://hbase.apache.org/book.html#_hbase_and_hdfs

保险 · 2020-02-12
浏览1477

回答者

空kong
其它某单位
擅长领域: 大数据数据库大数据平台

空kong 最近回答过的问题

回答状态

  • 发布时间:2020-02-12
  • 关注会员:2 人
  • 回答浏览:1477
  • X社区推广