hbase基础
hbase安装
tar -zxvf hbase-2.4.11-bin.tar.gz -C .
ln -s f hbase-2.4.11-bin hbasemv /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak
vim conf/regionservers
node1
node2
node3
vim conf/hbase-env.sh
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
export HBASE_MANAGES_ZK=false
#设置不扫描hadoop的jar,如果扫描很容易出现异常object is not an instance of declaring class
#参考https://blog.csdn.net/yhj_911/article/details/125481762
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
vim conf/hbase-env.sh
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>node1,node2,node3</value></property><property><name>hbase.rootdir</name><value>hdfs://node2:8020/hbase</value></property>
</configuration>
root@node2 ~: sudo /home/hadoop/bin/xsync hbase-2.4.11-bin
ln -s hbase-2.4.11-bin hbase
vim /etc/profile
export HBASE_HOME=/export/server/hbase
$PATH=$HBASE_HOME/bin
source /etc/profile
root@node2 ~: sudo /home/hadoop/bin/xsync /etc/profile
source /etc/profile
HA
touch conf/backup-masters
echo node1 > conf/backup-masters
xsync conf
定义
数据模型

d8d





linux系统中可以检查xml的正确性
如果有问题才会打印输出
xmllint -noout hbase-site.xml
HBASE简介
HBase是一个开源的、分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力。它能够直接使用本地文件系统,也可使用Hadoop的HDFS文件存储系统。不过,为了提升数据的可靠性和系统的健壮性,而且发挥HBase处理大数据的能力,使用HDFS做为文件存储系统才更为稳妥。html
HBase存储的数据从逻辑上来看就像一张很大的表,而且它的数据列能够根据须要动态地增长。除此以外,每一个单元(cell,由行和列所肯定的位置)中的数据又能够具备多个版本(经过时间戳来区别)。从下图能够看出,HBase还具备这样的特色:它向下提供了存储,向上提供了运算。另外,在HBase之上还可使用Hadoop的MapReduce计算模型来并行处理大规模数据,这也是它具备强大性能的核心所在。它将数据存储与并行计算完美地结合在一块儿。
HBase 和 HDFSweb
| HDFS | HBase |
|---|---|
| HDFS是适于存储大容量文件的分布式文件系统。 | HBase是创建在HDFS之上的数据库。 |
| HDFS不支持快速单独记录查找。 | HBase提供在较大的表快速查找。 |
| 它提供了高延迟批量处理;没有批处理概念。 | 它提供了数十亿条记录低延迟访问单个行记录(随机存取)。 |
| 它提供的数据只能顺序访问。 | HBase内部使用哈希表和提供随机接入,而且其存储索引,可将在HDFS文件中的数据进行快速查找。 |
HBASE表具备如下特色:
大:一个表能够有上亿行,上百万列
面向列:面向列(族)的存储和权限控制,列(族)独立检索。
稀疏:对于为空(null)的列,并不占用存储空间,所以,表能够设计的很是稀疏。
HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族(row family)。下面是HBASE表的逻辑视图:数据

hbase shell
list
disable ‘member’
enable ‘member’
put ‘member’,‘zhansan’,‘info:age’,‘24’
scan ‘member’

将数据记录到时间戳
hbase:001:0> import java.text.SimpleDateFormat
=> [Java::JavaText::SimpleDateFormat]
hbase:002:0> import java.text.ParsePosition
=> [Java::JavaText::ParsePosition]
hbase:003:0> SimpleDateFormat.new("yy/MM/dd HH:mm:ss").parse("08/08/16 20:56:29", ParsePosition.new(0)).getTime()
=> 1218891389000
hbase:004:0>
查询 Shell 配置和shell设置配置
@shell.hbase.configuration.get(“hbase.rpc.timeout”)
@shell.hbase.configuration.setInt(“hbase.rpc.timeout”, 61010)
HBase数据模型
在 HBase 中,数据模型同样是由表组成的,各个表中又包含数据行和列,在这些表中存储了 HBase 数据。在本节中,我们将介绍 HBase 数据模型中的一些术语。
表(Table)
HBase 会将数据组织进一张张的表里面,一个 HBase 表由多行组成。
行(Row)
HBase 中的一行包含一个行键和一个或多个与其相关的值的列。在存储行时,行按字母顺序排序。出于这个原因,行键的设计非常重要。目标是以相关行相互靠近的方式存储数据。常用的行键模式是网站域。如果你的行键是域名,则你可能应该将它们存储在相反的位置(org.apache.www,org.apache.mail,org.apache.jira)。这样,表中的所有 Apache 域都彼此靠近,而不是根据子域的第一个字母分布。
列(Column)
HBase 中的列由一个列族和一个列限定符组成,它们由:(冒号)字符分隔。
列族(Column Family)
出于性能原因,列族在物理上共同存在一组列和它们的值。在 HBase 中每个列族都有一组存储属性,例如其值是否应缓存在内存中,数据如何压缩或其行编码是如何编码的等等。表中的每一行都有相同的列族,但给定的行可能不会在给定的列族中存储任何内容。
列族一旦确定后,就不能轻易修改,因为它会影响到 HBase 真实的物理存储结构,但是列族中的列标识(Column Qualifier)以及其对应的值可以动态增删。
列限定符(Column Qualifier)
列限定符被添加到列族中,以提供给定数据段的索引。鉴于列族的content,列限定符可能是content:html,而另一个可能是content:pdf。虽然列族在创建表时是固定的,但列限定符是可变的,并且在行之间可能差别很大。
单元格(Cell)
单元格是行、列族和列限定符的组合,并且包含值和时间戳,它表示值的版本。
时间戳(Timestamp)
时间戳与每个值一起编写,并且是给定版本的值的标识符。默认情况下,时间戳表示写入数据时 RegionServer 上的时间,但可以在将数据放入单元格时指定不同的时间戳值。
content:html 列族 column family
content: 列 , html:限定符 column qualifier
cell: 单元格
timestamp 时间戳:版本值的标识符
列的限定符,是列族中数据的索引;列族创建表格时是固定的,但是列的限定符是动态并且行与行之间的差别也是特别大的
列都给属于某个列族,否则(Column family 字段名 does not exis)
权限控制、存储、调优都是在列族层面进行的
cell:由行和列交叉决定;单元格是有版本的;单元格的内容是未解析的字节数组;
单元格由行,列族,列的限定符,值,代表版本的时间戳组成,唯一确定单元格,cell中的数据没有类型的字节数组;
表格视为一组稀疏的行的集合,但他们是按照列族进行物理存储的。
默认压缩过程中清除所有删除标记
对同一行的put操作保证了事务的ACID(原子性,一致性,隔离性,持久性),多行事务
row key
Hotspotting热发现
参考信息:
http://noobyard.com/article/p-awtllgdc-gs.html
https://www.w3cschool.cn/hbase_doc/hbase_doc-4poq2lqf.html
相关文章:
hbase基础
hbase安装 tar -zxvf hbase-2.4.11-bin.tar.gz -C . ln -s f hbase-2.4.11-bin hbasemv /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bakvim conf/regionser…...
【GitOps系列】如何实施自动化渐进式交付?
文章目录 前言自动渐进式交付概述自动渐进式交付准备创建生产环境创建 AnalysisTemplate访问生产环境安装Prometheus配置 Ingress-Nginx 和 ServiceMonitor验证 Ingress-Nginx 指标 自动渐进式交付实战自动渐进式交付成功自动渐进式交付失败 结语 前言 在实施金丝雀发布的过程中…...
【网络】网络层(IP协议)
目录 一、基本概念 二、协议头格式 三、网段划分 四、特殊的IP地址 五、IP地址的数量限制 六、私有IP地址和公网IP地址 七、路由 一、基本概念 IP协议:提供一种能力, 将数据从A主机送到B主机,(TCP协议:确保IP协议…...
Unity数字可视化学校_昼夜(一)
maya2022:链接:https://pan.baidu.com/s/1cvB438UKsv_tU37NsOaNow 3dmax软件合集:百度网盘 请输入提取码 1180 1、 2、unity3d 导入插件 : (1)UniStorm - Volumetric Clouds Sky 5.3.0.unitypackage (天气&…...
QWidget样式
1、设置边框样式: QWidget {font-family:Microsoft YaHei UI;background:#ffffff;/*border:3px solid rgba(207, 209, 208, 170);设置整体边框*/border-bottom: 3px solid rgba(207, 209, 208, 170);/*设置底部边框*/border-top: 3px solid rgba(207, 209, 208, 1…...
TypeScript基础学习
目录 一、安装 1、下载国内镜像 2、安装 3、查看安装情况 4、使用例子 二、变量声明 1、规则 2、声明的四种方式 3、注意 4、类型断言 5、类型推断 6、变量作用域 三、基础类型(共11种) 1、Any 类型 2、Null 和 Undefined 3、never 类型…...
AOF日志:宕机了,Redis如何避免数据丢失
当服务器宕机后,数据全部丢失:我们很容易想到的一个解决方案是从后端数据库恢复这些数据,但这种方式存在两个问题:一是,需要频繁访问数据库,会给数据库带来巨大的压力;二是,这些数据…...
【编程】典型题目:寻找数组第K大数(四种方法对比)
【编程】典型题目:寻找数组第K大数(四种方法对比) 文章目录 【编程】典型题目:寻找数组第K大数(四种方法对比)1. 题目2. 题解2.1 方法一:全局排序(粗暴)2.2 方法二&#…...
Vue3 对比 Vue2 的变化
Vue3 对比 Vue2 的变化 1.源码组织方式变化:使用 TS 重写 2.支持 compositionAPI,基于函数的 api,更灵活组织组件逻辑(Vue2 使用 options api) 3.响应式系统提升:Vue3 的响应式数据原理改成了 Proxy,可以监听动态新增删…...
harbor搭建
回到目录 Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务 通俗的讲,harbor是一个私人镜像存储服务器 1 下载安装 进入官网,下载一个离线安装包,harbor官网下载 这…...
机器学习05-数据准备(利用 scikit-learn基于Pima Indian数据集作数据预处理)
机器学习的数据准备是指在将数据用于机器学习算法之前,对原始数据进行预处理、清洗和转换的过程。数据准备是机器学习中非常重要的一步,它直接影响了模型的性能和预测结果的准确性 以下是机器学习数据准备的一些常见步骤: 数据收集ÿ…...
【枚举+trie+dfs】CF514 C
Problem - 514C - Codeforces 题意: 思路: 其实是trie上dfs的板题 先把字符串插入到字典树中 对于每次询问,都去字典树上dfs 注意到字符集只有3,因此如果发现有不同的字符,去枚举新的字符 Code: #in…...
【计算机视觉】BLIP:统一理解和生成的自举多模态模型
文章目录 一、导读二、背景和动机三、方法3.1 模型架构3.2 预训练目标3.3 BLIP 高效率利用噪声网络数据的方法:CapFilt 四、实验4.1 实验结果4.2 各个下游任务 BLIP 与其他 VLP 模型的对比 一、导读 BLIP 是一种多模态 Transformer 模型,主要针对以往的…...
【Ansible】Ansible自动化运维工具之playbook剧本搭建LNMP架构
LNMP 一、playbooks 分布式部署 LNMP1. 环境配置2. 安装 ansble3. 安装 nginx3.1 准备 nginx 相关文件3.2 编写 lnmp.yaml 的 nginx 部分3.3 测试 nginx4. 安装 mysql4.1 准备 mysql 相关文件4.2 编写 lnmp.yaml 的 mysql 部分4.3 测试 mysql5. 安装 php5.1 编写 lnmp.yaml 的 …...
Spring中的事务
一、为什么需要事务? 事务定义 将一组操作封装成一个执行单元(封装到一起),要么全部成功,要么全部失败。 为什么要用事务? 比如转账分为两个操作: 第一步操作: A 账户 -100 元…...
38 非法地址访问的 segment fault 的调试
前言 在前面一篇文章 coredump 的生成和使用 中, 我们看到 "测试用例2 - 非法地址访问" 产生了一个 segment fault 我们这里 就来调试一下 这个 segment fault 是怎么回事 测试用例 #include "stdio.h"int main(int argc, char** argv) {int x 2; i…...
c++中c_str()的用法详解
c_str()就是将C的string转化为C的字符串数组!!! C中没有string,所以函数c_str()就是将C的string转化为C的字符串数组,c_str()生成一个const char *指针,指向字符串的首地址。 下文通过3段简单的代码比较分析…...
谈谈关于新能源汽车的话题
新能源汽车是指使用新型能源替代传统燃油的汽车,主要包括纯电动汽车、插电式混合动力汽车和燃料电池汽车等。随着环境污染和能源安全问题的日益突出,新能源汽车已经成为全球汽车行业的发展趋势。下面我们来谈谈关于新能源汽车的话题。 首先,新…...
EventBus 开源库学习(二)
整体流程阅读 EventBus在使用的时候基本分为以下几步: 1、注册订阅者 EventBus.getDefault().register(this);2、订阅者解注册,否者会导致内存泄漏 EventBus.getDefault().unregister(this);3、在订阅者中编写注解为Subscribe的事件处理函数 Subscri…...
4_Apollo4BlueLite电源管理
1.Cortex-M4 Power Modes Apollo4BlueLite支持以下4种功耗模式: ▪ High Performance Active (not a differentiated power mode for the Cortex-M4) ▪ Active ▪ Sleep ▪ Deep Sleep (1)High Performance Mode 高性能模式不是arm定…...
OFA模型解析Mathtype公式截图:辅助数学内容无障碍访问
OFA模型解析Mathtype公式截图:辅助数学内容无障碍访问 1. 引言 想象一下,你面前有一份重要的学术论文或者一份数学教材,但其中关键的公式部分,对你来说却是一片空白。这不是因为公式不存在,而是因为你的眼睛无法直接…...
Blender MMD Tools插件完全指南:从入门到精通
Blender MMD Tools插件完全指南:从入门到精通 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools 你是否曾经…...
Qwen3-0.6B-FP8部署教程:利用vLLM提升推理速度,Chainlit美化交互
Qwen3-0.6B-FP8部署教程:利用vLLM提升推理速度,Chainlit美化交互 1. 环境准备与快速部署 1.1 硬件与系统要求 显卡:NVIDIA GPU(RTX 3060 6GB起步,推荐RTX 4090/3090)驱动:NVIDIA Driver ≥ 5…...
从游戏背包到物流集装箱:深入浅出图解三维装箱问题(3D-BPP)
从游戏背包到物流集装箱:深入浅出图解三维装箱问题(3D-BPP) 想象一下你在玩《我的世界》,背包里塞满了钻石镐、金苹果和各种矿石,突然发现空间不够了——这时候你下意识做的事情,和亚马逊仓库的机器人分拣货…...
(一篇入门)汽车电子电器之整车控制器VCU功能解析与测试实践
1. 整车控制器VCU:新能源汽车的"大脑" 第一次拆解新能源汽车时,我盯着那个巴掌大的金属盒子看了半天——这就是传说中的VCU(整车控制器)。它就像乐高套装里的核心积木,所有其他模块都得听它指挥。记得有次测…...
SpringBoot多数据源事务隔离级别终极指南:动态数据源配置与分布式事务完全解析
SpringBoot多数据源事务隔离级别终极指南:动态数据源配置与分布式事务完全解析 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynami…...
LittleLink安全配置:保护你的个人链接页面免受恶意攻击
LittleLink安全配置:保护你的个人链接页面免受恶意攻击 【免费下载链接】littlelink A lightweight DIY Linktree alternative. 项目地址: https://gitcode.com/gh_mirrors/li/littlelink LittleLink作为一款轻量级DIY Linktree替代方案,让用户能…...
Python脚本打包成.exe方法
利用 pyinstaller打包 先安装这个库 pip install pyinstaller安装完成后,就可台利用pyinstaller进行打包了 在脚本文件的目录下切到cmd中,执行以下 pyinstaller -F tcping.py-F参数: 表示覆盖打包,不管我们打包几次,都…...
Vue3+Cesium实战避坑指南:从环境配置到坐标转换的常见问题解析
1. Vue3Cesium环境配置避坑指南 第一次在Vue3项目中集成Cesium时,我踩了不少坑。记得当时光是让地球显示出来就折腾了大半天,各种报错让人抓狂。现在回想起来,其实很多问题都有规律可循。 1.1 正确安装Cesium依赖 新手最容易犯的错误就是直接…...
AUTOSAR Ethernet Stack深度解析,手把手实现SOME/IP序列化、DDS桥接与时间同步校准
第一章:AUTOSAR以太网协议栈架构概览AUTOSAR以太网协议栈是面向汽车电子域控制器与中央计算平台的关键通信基础设施,其设计严格遵循AUTOSAR Classic Platform规范(R21-11及后续版本),在保持与传统CAN/LIN协议栈统一配置…...
