HBase整体架构 和 HMaster,HRegionServer概述

news/2025/5/26 9:41:16

1.png

1.1 HMaster

  1. HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行,HMaster在功能上主要负责Table和Region的管理工作:

    1. 管理用户对Table的增、删、改、查操作(admin操作);
    2. 管理HRegionServer的负载均衡,调整Region分布;
    3. 在Region 合并分裂后,负责新的Region重新分配;
    4. 在HRegionServer停机后,负责失效HRegionServer 上的Regions迁移;
  2. HMaster是保证HBase高可靠的因素之一;
  3. 线上环境 ,HMaster是般由两到三台组成,普通(24G)的虚拟机;

1.2 HRegionServer

  1. HRegionServer是存储实际Region,响应客户端写入的IO,并负责存储数据到HDFS中,是HBase最核心的部分; 
    2.理论上HRegionServer是可以无限扩容的,这也是为什么说HBase是一个存储海量数据的数据库;
  2. 在生产环境中,通常HRegionServer和HDFS部署在相同的机器上,并且最好要在同一个大交换机下面的端口;
  3. HRegionServer机器的配置要求: CPU内核数越多、内存越大、硬盘越大越好,当然regionServer的JVM堆内存不是越大越好,通常建议不要超过32G,过大,会有严重的Full GC问题,而且在64位的JVM中,堆大小超过32G,指针不能做压缩;
  4. 一台HRegionServer上有多个HRegion, 一个HRegion上有多个Hstore,一个family对应一个HStore ,一个Hstore上有多个StoreFile和一个MemStore ,HBase用LSM树来组织这些StoreFile和MemStore, 因为LSM树这种数据结构只适合写,不太适合读, 而B+树适合读,不太适合写 ,因此这才是HBase是一种适合写多读少的数据库的根本原因, 而mysql关系型数据库适合读多写少的应用场景。下面是LSM树和B+树的数据结构:
    2.png
文章来源:https://blog.csdn.net/qq_41712271/article/details/108953832
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-17897.html

相关文章

【伯乐在线】最好的学习方法是什么样的?

本文由 伯乐在线 - whysear 翻译自 Ahmad Ali。未经许可,禁止转载!欢迎加入:翻译小组,通过 翻译频道 贡献一份力量。【导读】:这个问题来自Quora,提问者还补充说:“任何方法都可以,从…

OpenWrt架设nginx php网站

参考 http://www.vinoca.org/2012/05/31/openwrt%E6%9E%B6%E8%AE%BEnginxphp%E7%BD%91%E7%AB%99/ 一、安装相关包 opkg update opkg install spawn-fcgi nginx /usr/bin/spawn-fcgi-a127.0.0.1-p9000-C2-f/usr/bin/php-cgi /etc/init.d/nginx start 二、nginx.conf关键配置项…

hive日期函数-原生函数 from_unixtime,unix_timestamp,to_date,current_date,datediff,date_add,date_sub,add_mont

1. from_unixtime 将UNIX时间戳转日期函数: from_unixtime   语法:from_unixtime(bigint unixtime[, stringformat]) 返回值: string 说明: 转化UNIX时间戳(从1970-01-0100:00:00 UTC到指定时间的秒数)到当前时区的时间格式 举例: selec…

unsupported dynamic reloc R_ARM_REL32 AND hidden symbol '__dso_handle' is not defined

项目里编译codec src\makefiles\android\codec\Makefileline 25 原本用 4.6 不会报错-L/data/android/android-ndk/sources/cxx-stl/gnu-libstdc/4.6/libs/armeabi-v7a \改成-L/data/android/android-ndk/sources/cxx-stl/gnu-libstdc/4.8/libs/armeabi-v7a \ 编译报错 (下面只…

Gruntjs提高生产力(四)

思考: 1.grunt以工程为单位安装插件? 如果有新工程就要重新安装插件或者把安装好的插件拷贝过去。这样很麻烦,解决方案是需要用grunt的项目统一放在grunt项目中。 2.每次需要针对项目编写gruntfile.js? a.我们可以把文件夹&#x…

Hive,mysql 差集运算 left outer join

差集定义:一般地,设A,B是两个集合,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B(或集合A与集合B之差)。 类似地,对于集合A,B,我们把集合{x/x∈A,且x¢B}叫做A与B的差集,记作A-B记作A-B(或A\B); 即…

[HDU 4549] M斐波那契数列

M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1609 Accepted Submission(s): 460 Problem DescriptionM斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] aF[1] bF[…

linux地址空间划分

LDD讲的很明白了: Linux 是一个虚拟内存系统, 意味着用户程序见到的地址不直接对应于硬件使用的物理地址. 虚拟内存引入了一个间接层, 它允许了许多好事情. 有了虚拟内存, 系统重运行的程序可以得到远多于物理内存的空间。确实, 即便一个单个进程可拥有一个虚拟地址…

MySQL IFNULL() 函数

IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。 IFNULL() 函数语法格式为: IFNULL(expression, alt_value) 如果第一个参数的表达式 expression 为 NULL&#xff…

TSQL基础(二)

over() 开窗函数 排名函数必须和over()一起使用,所以先了解over()。 OVER 子句定义查询结果集内的窗口或用户指定的行集。 然后,开窗函数将计算窗口中每一行的值。 您可以将 OVER 子句与函数一起使用,以便计算各种聚合值,例如移动…