Hadoop原理与技术——Hbase实操
admin
2024-05-02 21:24:37
0

1:start-all.sh

开启hadoop相关进程

2: start-hbase.sh

启动hbase

3: jps

查看启动的进程情况

3: hbase shell

进入hbase

4: list

显示所有表

http://localhost:16010/master-status

5: create ‘rg34’,’f1’,’f2’,’f3’

创建rg34表,f1,f2,f3为列族

6: describe ‘rg34’

查看表结构

7: scan ‘rg34’

查看表全部数据

8: put ‘rg34’,’h1’,’f1:r1’,’hello’

往表中插入一条数据

9: scan ‘rg34’

查看表全部数据

10: get ‘rg34’,’h1’,{COLUMN=>’f1:c1’}

通过列名查找数据

11: put ‘rg34’,’h1’,’f1:c1’,’hello1’

往表中插入一条数据

12: scan ‘rg34’

查看表全部数据

13: get ‘rg34’,’h1’,{COLUMN=>’f1:c1’}

通过列名查找数据

发现只有hello1的数据,但实际上hello数据并没有被覆盖,hello数据也被保存起来了,这两个方式查看表数据的时候只显示这些列的最新数据

14: scan ‘rg34’,{RAW=TRUE,VERSIONS=1}

查看隐藏的数据 1表示显示数据版本个数为1个版本

15: scan ‘rg34’,{RAW=TRUE,VERSIONS=2}

查看隐藏的数据 2表示显示数据版本个数为2个版本

16: delete ‘rg34’,’h1’,’f1:c1’

删除数据

17: scan ‘rg34’

查看表全部数据,发现hello数据出来了

18: scan ‘rg34’,{RAW=TRUE,VERSIONS=2}

hello1数据并没有被删除,因为hbase的数据通常是保存在HDFS上,而hdfs只允许新增或者追加数据文件,如果要删除的话要对整个文件进行替换,所以删除操作是对删除的数据打上标记

什么时候数据被真正删除?

具体操作:
当多个storefile进行major_compact全局合并时,就会真正对那些打标记的数据进行删除。

storefile:
因为hbase基于hdfs进行数据存储。为了提升效率,会有一个memstore、block cache对数据进行缓存,使用wal日志文件来防止内存数据丢失。但这些东西最终都会放到磁盘中的某个文件进行存储,这个磁盘文件就是storefile

手动实现major_compact:
先进行flush数据刷写,然后再进行major_compact ‘rg34’

19: flush ‘rg34’

20: major_compact ‘rg34’

21: scan ‘rg34’,’h1’,’f1:c1’

发现标记要删除的数据不见了

22: disable ‘rg34’

使表不可用

23: drop ‘rg34’

删除表

24: list

显示全部表

java程序操作hbase

1:createTable(“rg34”); 创建表rg34

2:insertData(“rg34”); 往rg34表插入数据f1 c1 aaa

3:insertData(“rg34”); 往rg34表插入数据f1 c2 bbb

4:QueryAll(“rg34”); 查询rg34全部数据

5:QueryByCondition1(“rg34”,“Hbase”); 根据行键查询数据

6:getCellData(“rg34”,“Hbase”,“f1”,“c2”); 根据行键、列族、列名查询数据

7:deleteRow(“rg34”,“Hbase”); 删除Hbase行

8:deleteColumnFamily(“rg34”,“f1”); 删除f1列族

9:dropTable(“rg34”); 删除rg34表

高可靠性、高性能、列存储、可伸缩、扩展性强、实时读写的分布式数据库系统,海量存储、列式存储、极易扩展、高并发、稀疏灵活

适用:

高吞吐量
在大规模数据集中进行很好性能的随机访问(按列)
非结构化和半结构化的数据

不适用:

1 瞬间写入量很大,数据库不好支撑或需要很高成本支撑的场景。
2 数据需要长久保存
3 HBase不适用有join,多级索引,表关系复杂的数据模型

HBase包含3个重要组件:

ZooKeeper、HMaster、RegionServer。

ZooKeeper为整个HBase集群提供协助的服务(信息传输),HMaster主要用于监控和操作集群中的所有RegionServer,HRegionServer主要用于服务和管理分区(regions)。

相关内容

热门资讯

【看表情包学Linux】进程地...   🤣 爆笑教程 👉 《看表情包学Linux》👈 猛...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
编译原理陈火旺版第三章课后题答... 下面答案仅供参考! 1.编写一个对于 Pascal 源程序的预处理程序。该程序的作用是...
MacBookPro M2芯片... MacBookPro M2芯片下如何搭建React-Native环境目录软件下载环境配置 目录 写在...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
pyflink学习笔记(六):... 在pyflink学习笔记(一)中简单介绍了table-sql的窗口函数,下面简单介绍下...
创建deployment 创建deployment服务编排-DeploymentDeployment工作负载均衡器介绍Depl...
gma 1.1.4 (2023... 新增   1、地图工具    a. 增加【GetWorldDEMDataSet】。提供了一套 GEO...
AI专业教您保姆级在暗影精灵8... 目录 一、Stable Diffusion介绍    二、Stable Diffusion环境搭建 ...
vue笔记 第一个Vue应用 Document{{content}}{{...
Unity自带类 --- Ti... 1.在Unity中,自己写的类(脚本)的名字不能与Unit...
托福口语21天——day5 发... 目录 一、连读纠音 二、语料输入+造句输出 三、真题 一、连读纠音 英语中的连读方式有好几种...
五、排序与分页 一、排序 1、语法 ORDER BY 字段 ASC | DESC ASC(ascen...
Linux系统中如何安装软件 文章目录一、rpm包安装方式步骤:二、deb包安装方式步骤:三、tar....
开荒手册4——Related ... 0 写在前面 最早读文献的时候,每每看到related work部分都会选择性的忽略&...
实验01:吃鸡蛋问题 1.实验目的: 通过实验理解算法的概念、算法的表示、算法的时间复杂度和空间复杂度分析&...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
Spring Cloud Al... 前言 本文小新为大家带来 Sentinel控制台规则配置 相关知识,具体内容包括流控...
多项目同时进行,如何做好进度管... 多项目同时进行,如何做好进度管理? 大多数时候,面对项目进...
ATTCK红队评估实战靶场(二... 前言 第二个靶机来喽,地址:vulunstack 环境配置 大喊一声我...