账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Hbase+HDFS的时候,Hbase 还会用到本机硬盘吗?
    61
    0
    这个问题不考虑操作系统的 swap 等等,而是 Hbase 这个软件会不会在已经对接 HDFS 的时候,继续往本机硬盘写数据(出于类似网络太慢,内存太小,先缓存在硬盘等等考虑)Q1:疑问一:单机模式的 Hbase 应该是默认把数据存在本机硬盘中,直接对接的是本机的文件系统对吧?没有用到 HDFS 吧?单机模式要对接 HDFS 应该要主动配置 HDFS 的对吧?下面疑问假设已经对接了 HDFSQ2:疑问二:Hbase 的 Hlog (WAL)问题,每次 Hbase 的客户端的一个写操作,都会产生一条 Hlog 记录是吗?此时产生的 Hlog 是攒够一定体积(64KB之类的),在一次性发送到 HDFS 存储吗?如果是的话,那这些 Hlog 存在哪里呢?是存在 HBase 进程的用户态内存?可是这样的话 Hbase 这个软件宕机了(假设承载 Hbase 的 Server 不宕机,只是 Hbase 这个软件崩了,可能是被 kill -9 了或者自己的 Bug 把自己搞死了) ,Hlog 不就没了吗?这不完犊子吗?或者是先存到本机的硬盘上?即发往 HDFS 前先通过本机的文件系统存在本机的硬盘中防丢?参考:引用自《Hbase原理和实践》第六章 6.1 Hbase 的写入流程HBase 可以通过设置HLog的持久化等级决定是否开启 HLog 机制以及 HLog 的落盘方式。HLog的持久化等级分为如下五个等级。• SKIP_WAL:只写缓存,不写HLog日志。因为只写内存,因此这种方式可以极大地提升写入性能,但是数据有丢失的风险。在实际应用过程中并不建议设置此等级,除非确认不要求数据的可靠性。• ASYNC_WAL:异步将数据写入HLog日志中。• SYNC_WAL:同步将数据写入日志文件中,需要注意的是,数据只是被写入文件系统中,并没有真正落盘。HDFS Flush策略详见HADOOP-6313。• FSYNC_WAL:同步将数据写入日志文件并强制落盘。这是最严格的日志写入等级,可以保证数据不会丢失,但是性能相对比较差。• USER_DEFAULT:如果用户没有指定持久化等级,默认HBase使用SYNC_WAL等级持久化数据。
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 痴人说梦Stupid- 普通会员 1楼

      在 HBase + HDFS 的部署架构中,Hbase 本身并不直接使用本地硬盘。HBase 的数据存储和处理是在 HDFS 存储系统上进行的,其数据结构和查询模型都基于 HDFS 的分布式文件系统特性。

      HBase 的主要工作流程如下:

      1. 数据读取:HBase 通过 HDFS 存储系统从 HDFS 中读取数据。HBase 对 HDFS 的读取请求进行分片,每个分片包含一个或多个文件。HBase 使用一个哈希表(或称为键值对)来存储这些文件的哈希值和数据,然后根据这些值进行读取和写入。

      2. 存储:在 HBase 中,数据通常被存储在 HDFS 中的多个区域中,每个区域对应一个或多个文件夹。HBase 对数据进行哈希,然后根据文件夹名称或文件名将数据存储在对应的区域中。

      3. 查询:HBase 提供了一系列查询语言,如 SQL 和 MR (MapReduce),用户可以使用这些语言对数据进行查询、排序、聚合等操作。HBase 会根据查询语句的查询条件(如文件路径、表名、列名等)将数据从 HDFS 中读取出来,并进行相应的处理和分析。

      4. 数据写入:当用户对数据进行修改或添加时,HBase 会将修改或添加的数据写入对应的文件或文件夹。HBase 使用其分布式文件系统特性,可以有效地管理和存储大量的数据。

      因此,Hbase 本身并不直接使用本地硬盘,而是通过 HDFS 存储系统将数据从本地文件系统读取出来,然后在 HDFS 中进行存储和查询。因此,Hbase 可以在 HDFS 中充分利用其分布式文件系统的特点,提供高可扩展、高性能的数据存储和处理能力。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部