HBase入门(一)

news2024/11/27 9:45:44

第1章 HBase简介

1.1 HBase定义

HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。
在这里插入图片描述

1.2 HBase数据模型

逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map(多维地图)。

1.2.1 HBase逻辑结构

在这里插入图片描述
Hbase基于HDFS
在这里插入图片描述
在这里插入图片描述

1.2.2 HBase物理存储结构

在这里插入图片描述

1.2.3 数据模型

1)Name Space
命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。HBase两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default表是用户默认使用的命名空间。一个表可以自由选择是否有命名空间,如果创建表的时候加上了命名空间后,这个表名字以:

作为区分。
2)Table
类似于关系型数据库的表概念。不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往HBase写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。
3)Row
HBase表中的每行数据都由一个RowKey和多个Column(列)组成,数据是按照RowKey的字典顺序存储的,并且查询数据时只能根据RowKey进行检索,所以RowKey的设计十分重要。
4) RowKey
Rowkey由用户指定的一串不重复的字符串定义,是一行的唯一标识!数据是按照RowKey的字典顺序存储的,并且查询数据时只能根据RowKey进行检索,所以RowKey的设计十分重
要。
如果使用了之前已经定义的RowKey,那么会将之前的数据更新掉。
5)Column Family
列族是多个列的集合。一个列族可以动态地灵活定义多个列。表的相关属性大部分都定义在列族上,同一个表里的不同列族可以有完全不同的属性配置,但是同一个列族内的所有列都会有相同的属性。
列族存在的意义是HBase会把相同列族的列尽量放在同一台机器上,所以说,如果想让某几个列被放到一起,你就给他们定义相同的列族。
官方建议一张表的列族定义的越少越好,列族太多会极大程度地降低数据库性能,且目前版本Hbase的架构,容易出BUG。
6) Column Qualifier
Hbase中的列是可以随意定义的,一个行中的列不限名字、不限数量,只限定列族。因此列必须依赖于列族存在!列的名称前必须带着其所属的列族!例如info:name,info:age。
因为HBase中的列全部都是灵活的,可以随便定义的,因此创建表的时候并不需要指定列!列只有在你插入第一条数据的时候才会生成。其他行有没有当前行相同的列是不确定,只有在扫描数据的时候才能得知。
7)Time Stamp
用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,其值为写入HBase的时间。在读取单元格的数据时,版本号可以省略,如果不指定,Hbase默认会获取最后一个版本的数据返回。
8)Cell
由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell中的数据全部是字节码形式存贮。
9)Region
Region由一个表的若干行组成。在Region中行的排序按照行键(rowkey)字典排序。Region不能跨RegionSever,且当数据量大的时候,HBase会拆分Region。
Region由RegionServer进程管理。HBase在进行负载均衡的时候,一个Region有可能会从当前RegionServer移动到其他RegionServer上。
Region是基于HDFS的,它的所有数据存取操作都是调用了HDFS的客户端接口来实现的。
在这里插入图片描述

1.3 HFile结构

在这里插入图片描述

1.4 HBase基本架构

在这里插入图片描述
架构角色:
1)Region Server
Region Server为 Region的管理者,其实现类为HRegionServer,主要作用如下:
 对于数据的操作:get, put, delete;
 对于Region的操作:splitRegion、compactRegion。
2)Master
Master是所有Region Server的管理者,其实现类为HMaster,主要作用如下:
 对于表的操作:create, delete, alter
 对于RegionServer的操作:分配regions到每个RegionServer,监控每个RegionServer的状态,负载均衡和故障转移。
3)Zookeeper
HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。
4)HDFS
HDFS为HBase提供最终的底层数据存储服务,同时为HBase提供高容错的支持。

第2章 HBase快速入门

2.1 HBase安装部署

在这里插入图片描述

2.1.1 Zookeeper正常部署

首先保证Zookeeper集群的正常部署,并启动之:
[aa@hadoop102 zookeeper-3.5.7]$ bin/zksh start
[aa@hadoop103 zookeeper-3.5.7]$ bin/zk.sh start
[aa@hadoop104 zookeeper-3.5.7]$ bin/zk.sh start

2.1.2 Hadoop正常部署

Hadoop集群的正常部署并启动。

[aa hadoop-3.1.3]$ sbin/start-dfs.sh
[aa hadoop-3.1.3]$ sbin/start-yarn.sh

2.1.3 HBase的解压

1)解压Hbase到指定目录。

[aa software]$ tar -zxvf hbase-2.0.5-bin.tar.gz -C /opt/module
[aa software]$ mv /opt/module/hbase-2.0.5 /opt/module/hbase

2)配置环境变量

[aa ~]$ sudo vim /etc/profile.d/my_env.sh
添加
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin

2.1.4 HBase的配置文件

修改HBase对应的配置文件。
1)hbase-env.sh修改内容:

export HBASE_MANAGES_ZK=false

2)hbase-site.xml修改内容:

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop102:8020/hbase</value>
    </property>

    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop102,hadoop103,hadoop104</value>
</property>

     <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
    
    <property>
        <name>hbase.wal.provider</name>
        <value>filesystem</value>
    </property>


</configuration>

3)vim regionservers: 方便后面群启

hadoop102
hadoop103
hadoop104

必须写自己的端口号:

在这里插入图片描述

2.1.5 HBase远程发送到其他集群

[aa@hadoop102 module]$ xsync hbase/

2.1.6 HBase服务的启动

1)单点启动

[aa hbase]$ bin/hbase-daemon.sh start master
[aa hbase]$ bin/hbase-daemon.sh start regionserver
启动一个master(随便哪个都可以启动)和n个regionserver
[aa module]$ hbase-2.0.5/bin/hbase-daemon.sh start master
[aa ~]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh start regionserver
[aa module]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh start regionserver
[aa module]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh start regionserver

在这里插入图片描述
停掉regionserver

[aa module]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh stop regionserver

在这里插入图片描述

注意:如果集群之间的节点时间不同步(安装之前的准备工作),会导致regionserver无法启动,抛出ClockOutOfSyncException异常。

修复提示
(1)同步时间服务

2)属性:hbase.master.maxclockskew设置更大的值
<property>
        <name>hbase.master.maxclockskew</name>
        <value>180000</value>
        <description>Time difference of regionserver from master</description>
</property>

2)群启 建议在配置了到其他机器的免密登录机器上进行群启

[aa hbase]$ bin/start-hbase.sh

哪个机器执行这个命令就在哪个机器启动master
正常全部启动之后的页面:注意三点!否则集群失败!
在这里插入图片描述
对应的停止服务:

[aa hbase]$ bin/stop-hbase.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/662236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言复习】第四篇、有关C语言数据类型的知识

目录 第一部分、前言 第二部分、初识数据类型 1、C语言为啥要这么多的数据类型&#xff1f; 2、表格中所占内存的大小是如何计算得到的&#xff1f; 2.1、计算机的内数据存储单位 2.2、关键字sizeof的使用说明&#xff08;具体后面会更详细的解释&#xff09; 3、为什么…

【Python 随练】求最大公约数和最小公倍数

题目&#xff1a; 输入两个正整数 m 和 n&#xff0c;求其最大公约数和最小公倍数。 简介&#xff1a; 在本篇博客中&#xff0c;我们将解决一个常见的数学问题&#xff1a;求两个正整数的最大公约数和最小公倍数。我们将提供问题的解析&#xff0c;并给出一个完整的代码示例…

【新星计划Linux】——Linux介绍与了解Linux与Windows系统区别

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 目录 前言 一.Linux系统 1.Linux系统与Windows系统的区别 &#xff08;1&#xff09;性…

【JavaScript】ES6新特性(4)

14. Proxy 代理 Proxy 可以对目标对象的读取、函数调用等操作进行拦截&#xff0c;然后进行操作处理 它不直接操作对象&#xff0c;而是像代理模式&#xff0c;通过对象的代理对象进行操作&#xff0c;在进行这些操作时&#xff0c;可以添加一些需要的额外操作 14.1 Object.d…

2023年DAMA-CDGA/CDGP数据治理工程师认证这里报名

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

追梅西的少年

* * * 原创&#xff1a;刘教链 * * * 号外&#xff1a;今天在“刘教链Pro”发表了头条《鼠头和鸭脖——中心化验真的困境》&#xff0c;以及次条《内参&#xff1a;美SEC执法主管表示&#xff0c;DeFi是纯粹的欺诈&#xff01;&#xff1f;&#xff1f;》&#xff0c;欢迎关注…

云安全技术(六)之云架构模型

云架构模型 1.1 舍伍德业务应用安全架构(SABSA) 舍伍德业务应用安全架构(Sherwood Applied Business Security Architecture&#xff0c;SABSA)的官方网站是 。SABSA提供了一组组件&#xff0c;这些组件可部分或全部用作任何系统的安全架构方www.sabsa.org法。如下&#xff1a…

【Flutter】Flutter中如何获取子类Widget并调用它的方法

文章目录 一、前言二、理解 Flutter 中的 Widget三、如何在 Flutter 中获取子类 Widget1. 使用 GlobalKey2. 使用 context.findAncestorWidgetOfExactType 四、如何调用子类 Widget 的方法五、如何在 Flutter 中传递数据六、总结 一、前言 如果你想深入学习 Flutter&#xff0…

如何打造优秀Web3产品

近日&#xff0c;我们采访了Mysten Labs的联合创始人兼首席执行官Evan Cheng&#xff0c;探讨了Web3技术对消费者的价值、Web3行业应该如何更好地自我诠释&#xff0c;以及它对产品开发的影响。 您曾谈到Web3作为一种所有权实验&#xff0c;这种新技术可能会改变消费者的行为。…

Can’t connect to MySql server on ‘localhost’(10038)

一般是一下几个原因&#xff1a; 1、MySQL服务没有启动 2、用户没有权限使用远程连接 3、linux中防火墙中没有配置MySQL端口&#xff08;3306&#xff09; 使用命令service mysqld status 或者service mysql status 命令来查看mysql的启动状态 启动MySQL命令&#xff1a; …

±0.1℃精度、超低功耗的高精度数字模拟混合信号温度传感芯片

温度芯片感温原理基于CMOS半导体PN节温度与带隙电压的特性关系&#xff0c;经过小信号放大、模数转换数字校准补偿后&#xff0c;数字总线输出&#xff0c;具有精度高、一致性好、测温快、功耗低、可编程配置灵活、寿命长等优点。 温度芯片内置16-bit ADC&#xff0c;分辨率0.…

用代码生撸qsort函数来实现冒泡排序

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《C语言》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造…

Windows 系统彻底卸载 SQL Server 通用方法

Windows 系统彻底卸载 SQL Server 通用方法 无论什么时候&#xff0c;SQL Server 的安装和卸载都是一件让我们头疼的事情。因为不管是 SQL Server 还是 MySQL 的数据库&#xff0c;当我们在使用数据库时因为未知原因出现问题&#xff0c;想要卸载重装时&#xff0c;如果数据库…

Jetson Xavier NX 备份与烧录固态系统

目录 1 需要的硬件 2 需要安装在ubuntu上的软件 2.1 安装gparted 2.2 安装nvidia官方烧录包 2.2.1 下载 2.2.2 配置 3 备份系统 4 烧入系统 1 需要的硬件 像是 nx&#xff0c;nx附带的固态硬盘&#xff0c;显示器 这些就赘述了 一个ubuntu实体机(虚拟机听说…

ansible-roles模块

roles用于层次性&#xff0c;结构化地组织playbook&#xff0c;roles能够根据层次型结构自动装载变量文件&#xff0c;tasks以及handlers等。要使用只要载playbook中使用include指令引入即可。 &#xff08;roles就是通过分别将变量&#xff0c;文件&#xff0c;任务&#xff…

u盘中毒文件夹数据丢失怎么恢复?这里有4个恢复方案

您是否曾经遇到过U盘中毒的情况&#xff1f;连累到文件夹内的数据文件消失了&#xff0c;如果丢失的是重要数据&#xff0c;这或许会对我们工作或学习带来了极大的困扰。为了解决您的困扰&#xff0c;下面将根据不同情况给予不同的U盘中毒数据恢复方案&#xff0c;帮助您尽快找…

小红书各行业流量分析:普通人怎么有效使用小红书?

随着互联网的发展&#xff0c;越来越多的人开始利用自媒体平台赚钱。小红书是近年来兴起的一种新型自媒体平台&#xff0c;也是国内最大的海外购物分享平台之一。随着小红书用户的不断增加&#xff0c;小红书的流量趋势也在发生着变化。那么&#xff0c;在各行业的流量趋势中&a…

驱动开发:文件微过滤驱动入门

MiniFilter 微过滤驱动是相对于SFilter传统过滤驱动而言的&#xff0c;传统文件过滤驱动相对来说较为复杂&#xff0c;且接口不清晰并不符合快速开发的需求&#xff0c;为了解决复杂的开发问题&#xff0c;微过滤驱动就此诞生&#xff0c;微过滤驱动在编写时更简单&#xff0c;…

XV-440-10TVB-1-50伊顿触摸屏EATON

​ XV-440-10TVB-1-50伊顿触摸屏EATON XV-440-10TVB-1-50伊顿触摸屏EATON ESD与dcs是完全分离的。DCS主要用于过程工业参数指标的动态控制。在正常情况下&#xff0c;DCS动态监控着生产过程的连续运行&#xff0c;保证能生产出符合要求的优良产品。而ESD则是对于一些关键的工艺…

python获取某博热搜数据并保存成Excel

python获取某博&#x1f9e3;热搜数据 一、获取目标、准备工作二、开始编码 一、获取目标、准备工作 1、获取目标&#xff1a; 本次获取教程目标&#xff1a;某博&#x1f9e3;热搜 2、准备工作 环境python3.xrequestspandas requests跟pandas为本次教程所需的库&#xff0c…