mac上部署单体hbase
1. 简介
HBase 是一个开源的、分布式的、版本化的典型非关系型数据库。它是 Google BigTable 的开源实现,并且是 Apache 基金会的 Hadoop 项目的一部分1。HBase 在 Hadoop Distributed File System (HDFS) 上运行,作为一个列式存储非关系数据库管理系统。它提供了存储稀疏数据集的容错方式,这类数据集在许多大数据用例中十分常见。HBase 非常适合实时数据处理或者对大量数据的随机读取/写入访问
2. 特性
HBase 的数据模型是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳。HBase 的列(Column)都得归属到列族(Column Family)中。在 HBase 中,定位一行数据会有一个唯一的值,这个叫做行键 (RowKey)。而在 HBase 的列不是我们在关系型数据库所想象中的列。
HBase 的主要功能组件包括库函数、一个 Master 主服务器和许多个 Region 服务器4。Master 主服务器负责管理和维护 HBase 表的分区信息,维护 Region 服务器列表,分配 Region,负载均衡4。Region 服务器负责存储和维护分配给自己的 Region,处理来自客户端的读写请求。
HBase 是一个开源的、分布式的、面向列的数据库,具有以下主要特性:
海量存储:HBase 的单表可以有百亿行、百万列,数据矩阵横向和纵向两个维度所支持的数据量级都非常具有弹性。它适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。
列式存储:HBase 是面向列的存储和权限控制,并支持列独立检索2。HBase表的数据是基于列族进行存储的,列族是在列的方向上的划分。
极易扩展:HBase 底层文件存储依赖HDFS,从“基因”上决定了其具备可扩展性2。HBase的扩展性是热扩展,在不停止现有服务的前提下,可以随时添加或者减少节点。
高可靠性:HBase 提供WAL 和Replication 机制。前者保证了数据写入时不会因集群异常而导致写入数据的丢失;后者保证了在集群出现严重问题时,数据不会发生丢失或者损坏。
高性能:底层的LSM 数据结构和Rowkey 有序排列等架构上的独特设计,使得HBase 具备非常高的写入性能2。Region 切分、主键索引和缓存机制使得HBase 在海量数据下具备一定的随机读取性能,该性能针对Rowkey 的查询能够达到毫秒级别。
稀疏:稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。
总的来说,HBase 通过在廉价服务器上搭建大规模结构化存储集群,提供海量数据高性能的随机读写能力。它的数据模型和功能组件设计使得它在处理大数据的场景中具有很大的优势。
3. 部署搭建
3.1 下载
这里提供官方的下载地址
https://dlcdn.apache.org/hbase/
因为我是jdk17环境 所以我选择比较新的版本进行下载
jdk1.8的环境 可选择下载2.5.6
3.2 解压
解压后的目录如下
在doc的文件夹中是官方的文档 当然东西也比较多,可选择性看
3.3 配置
首先需要验证自己的java 环境这个是必须的
可直接使用java --version来验证
另外可以配置我们使用的java 环境 大多数适用于多环境的java 用户
直接修改配置 hbase-env.sh
新增 java的路径即可
export JAVA_HOME=/usr/local/develop/java/zulu-jdk17.0.7
没问题的话 可以下一步 配置hbase-site.xml
这里我们直接使用 本地文件路径 而不是hdfs 分布式文件系统
增加如下配置
<property><name>hbase.rootdir</name><!-- 修改为自己的hbase的路径--><value>file:///usr/local/develop/hbase</value></property>
3.4 启动
运行bin目录下的 start-hbase.sh 可直接启动
启动过程比较久 可观察日志 看看是否出错 启动完成后,会初始化一个master的单点应用
3.5 验证
第一个办法,看看日志
第二个 使用 hbase自带的控制页面来观察 http://localhost:16010/master-status
第三个 使用hbase shell
还是在bin目录下 直接运行 hbase shell
出来如下任务 即表示成功
第四个 使用jps 命令查看是否存在 HMaster
如下图
4. 基本使用
4.1 Create a table. 创建表
Use the create command to create a new table. You must specify the table name and the ColumnFamily name.
hbase(main):001:0> create 'test', 'cf'
0 row(s) in 0.4170 seconds
=> Hbase::Table - test
4.2 List Information About your Table 查看表
Use the list command to confirm your table exists
hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds=> ["test"]
4.3 查看表的详情
Now use the describe command to see details, including configuration defaults
hbase(main):003:0> describe 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'cf', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =>
'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'f
alse', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE=> '65536'}
1 row(s)
Took 0.9998 seconds
4.4 Put data into your table. 向表中新增数据
To put data into your table, use the put command.
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0850 secondshbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0110 secondshbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0100 seconds
Here, we insert three values, one at a time. The first insert is at row1, column cf:a, with a value of value1. Columns in HBase are comprised of a column family prefix, cf in this example, followed by a colon and then a column qualifier suffix, a in this case.
4.5 Scan the table for all data at once. 查看表里的所有数据
One of the ways to get data from HBase is to scan. Use the scan command to scan the table for data. You can limit your scan, but for now, all data is fetched.
hbase(main):006:0> scan 'test'
ROW COLUMN+CELLrow1 column=cf:a, timestamp=1421762485768, value=value1row2 column=cf:b, timestamp=1421762491785, value=value2row3 column=cf:c, timestamp=1421762496210, value=value3
3 row(s) in 0.0230 seconds
Get a single row of data.
4.6 To get a single row of data at a time, use the get command. 查看第一行数据
hbase(main):007:0> get 'test', 'row1'
COLUMN CELLcf:a timestamp=1421762485768, value=value1
1 row(s) in 0.0350 seconds
Disable a table.
4.7 如果要删除表或更改其设置以及在其他某些情况下,则需要使用Disable命令首先禁用表。您可以使用enable命令重新启用它。
hbase(main):008:0> disable 'test'
0 row(s) in 1.1820 secondshbase(main):009:0> enable 'test'
0 row(s) in 0.1770 seconds
Disable the table again if you tested the enable command above:hbase(main):010:0> disable 'test'
0 row(s) in 1.1820 seconds
Drop the table.
4.8 To drop (delete) a table, use the drop command. 删除表
hbase(main):011:0> drop 'test'
0 row(s) in 0.1370 seconds
4.9 退出 shell
exit
4.10 关闭 hbase
./bin/stop-hbase.sh
5. tip
创建hbase失败时 需要清除干净失败的的数据 然后在重新开启
例如 存放点 hbase的目录 logs目录 以及 tmp目录
the end
goods day ~
相关文章:

mac上部署单体hbase
1. 简介 HBase 是一个开源的、分布式的、版本化的典型非关系型数据库。它是 Google BigTable 的开源实现,并且是 Apache 基金会的 Hadoop 项目的一部分1。HBase 在 Hadoop Distributed File System (HDFS) 上运行,作为一个列式存储非关系数据库管理系统…...

【RV1126 学习】SDK/ U-Boot/kernel/rootfs 编译学习
文章目录 RV1126芯片介绍rv1126 模块代码目录相关说明 SDK 包下的脚本使用build.sh 脚本使用envsetup.sh 脚本使用mkfirmware.sh 脚本使用rkflash.sh 脚本使用 U-Boot 编译和配置uboot 的配置修改编译操作 kernel 的修改编译rootfs 编译和配置buildroot 配置busybox 配置 RV112…...

Golang 使用 AST 获取方法和参数名以及应用举例
背景 在做一些自动生成的代码工作时,有时需要知道方法以及对应的参数名 如果仅是方法,利用反射机制就可以解决 而参数名,程序编译后,已经丢失 可以通过 AST 事先获取方法的参数名 有了方法、参数名,加上反射&…...

DC-DC变换集成电路芯片B34063——工作电压范围宽,静态电流小
B34063为一单片DC-DC变换集成电路,内含温度补偿的参考电压源(1.25V)、比较器、能有效限制电流及控制工作周期的振荡器,驱动器及大电流输出开关管等,外配少量元件,就能组成升压、降压及电压反转型DC-DC变换器。 主要特点: ● 工作…...

强力推荐:本地文件加密软件—超详细加密步骤来了!
在数字化时代,数据安全问题日益受到人们的关注。 为了保护个人和企业的重要信息不被泄露,越来越多的人开始使用文件加密软件。 尤其是常常会有数据泄露风险的企业更是需要一款非常给力的加密工具来保护企业数据安全。 一、选择合适的加密软件 在选择加…...

在qml中,ListModel可以与WorkerScript一起使用,从多个线程访问列表模型
在QML中,您可以使用ListModel和WorkerScript一起实现多线程访问列表模型。以下是一个简单的例子,演示了如何在QML中使用这两个元素: import QtQuick 2.15 import QtQuick.Controls 2.15ApplicationWindow {visible: truewidth: 400height: 3…...

rocketmq实现延迟消息
SpringBoot整合RocketMQ发送延时消息 springboot rocketmq 延迟消息 Windows下RocketMQ安装及可视化界面搭建 Java 客户端 RocketMQ延迟消息 项目背景 项目中有延时消息的需求,综合考量RocketMQ比较适合。 RocketMQ支持多维度的延迟级别 支持多种消息类型 基…...

vue倒计时60秒改变按钮状态效果demo(整理)
你可以使用Vue的计时器和绑定状态的方法来实现这个功能。 首先,在data中添加一个计时器countdown,初始值为0。 data() {return {countdown: 0} }<template><div><button click"startCountdown" :disabled"countdown > …...

多区域isis配置实验
一、预习: IS-IS:Intermediate System to Intermediate System,中间系统到中间系统,是ISO为它的CLNP(ConnectionLess Network Protocol)设计的一种动态路由协议,后来为了提供对IP路由的支持&…...

Ubuntu 22.04.3 LTS arm64 aarch64 ISO jammy-desktop-arm64.iso 下载
Ubuntu 22.04.3 LTS (Jammy Jellyfish) Daily Build 参考 Are there official Ubuntu ARM / aarch64 desktop images? - Ask Ubuntu...

软件测试面试必备知识
随着软件测试领域对于技术要求越来越清晰,到现在测试人员在市场上的岗位需求也变得越来越复杂。极大部分的企业都开始对自动化测试岗位有了更多的需要。自然而然,面试就相对于非常重要了。 网络上有着各式各样的测试框架的存在,我也不知道我…...

4.4 媒资管理模块 - 分布式任务处理介绍、视频处理技术方案
媒资管理模块 - 视频处理 文章目录 媒资管理模块 - 视频处理一、视频转码1.1 视频转码介绍1.2 FFmpeg 基本使用1.2.1 下载安装配置1.2.2 转码测试 1.3 工具类1.3.1 VideoUtil1.3.2 Mp4VideoUtil1.3.3 测试工具类 二、分布式任务处理2.1 分布式任务调度2.2 XXL-JOB 配置执行器 中…...

K8S集群重新初始化--详细过程
K8S集群重新初始化 0、当前环境1、master节点1.1、在master节点执行下面reset命令:1.2、手动清除配置信息,这一步很关键:1.3、重新引导集群1.4、创建配置目录,并复制权限配置文件到用户目录下:1.5 查看集群状态1.6 安装…...

服务器 Linux常见指令
删除文件 删除文件 单个删除:rm -f 文件名 rm -f 2018_12_26.stderrout.log.060121612 --执行完成即将这个文件删除删除文件夹 rm -rf 路径/目录名tar命令 压缩 tar -cvf [文件名].tar [文件目录] //打包成.tar文件 tar -jcvf [文件名].tar.bz2 [文件目录]…...

C++合并K个有序链表
本篇博客介绍如何使用C合并k个有序链表,在代码中会用到std::priority_queue,首先需要介绍一下std::priority_queue的用法,介绍完std::priority_queue后将介绍如何使用std::priority_queue来辅助合并k个有序链表。 一、C priority_queue用法介…...

win10在启动游戏时报错,提示“d3dx9_25.dll文件丢失”,怎么办?d3dx9_25.dll丢失如何自动修复
一、d3dx9_25.dll文件是什么? d3dx9_25.dll是DirectX的一部分,DirectX是一种由微软开发的专门处理与多媒体、游戏程序和视频相关的应用程序接口。d3dx9_25.dll文件是DirectX9中一个重要的dll文件,主要负责处理3D图形程序,作用是帮…...

16. 蒙特卡洛强化学习基本概念与算法框架
文章目录 1. 是什么2. 有何优点3. 基本概念3.1 立即回报3.2 累积回报3.3 状态值函数3.4 行为值函数3.4 回合(或完整轨迹,episode)3.5 多个回合(或完整轨迹)的描述 4.MC强化学习问题的正式描述5. 蒙特卡洛(M…...

QT中程序执行时间精准计算的三种方法及对比
一.QT程序在提升程序性能的调试中经常要计算一段程序的执行时间,下面介绍两种简单的实现方式,精确度都可以达到ms。 1.方式一 (1)代码: #include <QDateTime> qDebug() << "Current_date_and_tim…...

js下载方法分享*
JavaScript可以使用浏览器的API实现文件的下载,以下是一种常用的方法: 假设你已经有了一个文件 URL,你可以创建一个新的 a 标签,并将 href 属性设置为文件的 URL,然后模拟点击这个标签以开始下载。 function downloa…...

C# Stopwatch类_性能_时间计时器
文章只含部分属性方法等,有想了解全面的在下面链接中可以查看:.NET API browser Stopwatch 类 (System.Diagnostics) | Microsoft Learn 一、什么是Stopwatch Stopwatch:提供一组方法和属性,可以准确的测量运行时间。使用的时候需…...

鸿蒙原生应用再添新丁!天眼查 入局鸿蒙
鸿蒙原生应用再添新丁!天眼查 入局鸿蒙 来自 HarmonyOS 微博1月12日消息,#天眼查启动鸿蒙原生应用开发#作为累计用户数超6亿的头部商业信息查询平台,天眼查可以为商家企业,职场人士以及普通消费者等用户便捷和安全地提供查询海量…...

HarmonyOS4.0——ArkUI应用说明
一、ArkUI框架简介 ArkUI开发框架是方舟开发框架的简称,它是一套构建 HarmonyOS / OpenHarmony 应用界面的声明式UI开发框架,它使用极简的UI信息语法、丰富的UI组件以及实时界面语言工具,帮助开发者提升应用界面开发效率 30%,开发…...

基于模块自定义扩展字段的后端逻辑实现(二)
目录 一:创建表 二:代码逻辑 上一节我们详细讲解了自定义扩展字段的逻辑实现和表的设计,这一节我们以一个具体例子演示下,如何实现一个订单模块的自定义扩展数据。 一:创建表 订单主表: CREATE TABLE t_order ( …...

图像中部分RGB矩阵可视化
图像中部分RGB可视化 今天室友有个需求就是模仿下面这张图画个示意图: 大致就是把图像中的一小部分区域的RGB值可视化了一下。他居然不知道该怎么画,我寻思这不直接秒了。 import cv2 as cv import numpy as np import matplotlib.pyplot as pltclass …...

RPA财务机器人在厦门市海沧医院财务管理流程优化汇总的应用
目前国内外研究人员对于RPA机器人在财务管理流程优化领域中的应用研究层出不穷,但现有研究成果主要集中在财务业务单一领域,缺乏财务管理整体流程一体化管控的研究。RPA机器人的功能绝非单一的财务业务处理,无论从自身技术发展,或…...

聚焦老年生活与健康,“老有所依·情暖夕阳”元岗街社区微型养老博览会顺利开展
尊老敬老是中华民族的传统美德, 爱老助老是全社会的共同责任。 家有一老,如有一宝, 长者的生活情况是一个家庭的头等大事, 做好长者服务是街道和社区的重要工作。 2024年1月6日,由元岗街道党工委、元岗街道办事处、…...

记录汇川:H5U与Factory IO测试12
主程序: 子程序: IO映射 子程序: 辅助出料 子程序: 自动程序 Factory IO配置: 实际动作如下: Factory IO测试12...

PingCAP 受邀参加 FICC 2023,获 Open100 世纪全球开源贡献奖
2023 年 12 月,2023 国际测试委员会智能计算与芯片联邦大会(FICC 2023)在海南三亚举办,中外院士和数十位领域专家莅临出席。 大会现场 ,开放源代码促进会创始人 Bruce Perens 颁发了 Open100 世纪全球开源贡献奖&…...

10-skywalking告警
https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md 5.1:告警指标 ~$ vim /apps/apache-skywalking-apm-bin/config/oal/core.oal service_resp_time # 服务的响应时间 service_sla # 服务http请求成功率SLV,比…...

vue前端开发自学,插槽练习第二次,name属性的使用
vue前端开发自学,插槽练习第二次,name属性的使用!可以使用name属性,来自定义一个名字,这样,就可以在一个组件内同时出现多个插槽的内容了。在子组件内接收的时候,很简答,只需要在slot标签里面加上name“mz”࿱…...