HBase常用命令

简介:

HBase Shell 是一种操作HBase的交互模式,支持完整的HBase命令集。

hbase shell	 # 打开Hbase Shell

目录:

命令类别常用命令
Generalversion,status,whoami,help
DDLalter,creater,describe,disable,drop,enable,exists,is_disabled,is_enabled,list,
DMLcount,delete,deleteall,get,get_counter,incr,put,scan,truncate
Toolsassign,balance_switch,balancer,close_region,compact,flush,major_compact,move,split,unassign,zk_dump
Replicationadd_peer,disable_peer,enable_peer,remove_peer,start_replication,stop_replication

一、General(通用操作)

help			# 显示hbase shell的帮助信息,包括可用的命令列表、命令的简要描述以及如何使用这些命令等。
help 'status'	# 获取命令的详细信息
version			# 查看HBase的版本信息。
status			# 查看HBase集群的状态,包括集群是否运行正常、各RegionServer的状态等。
whoami			# 查看当前在Hbase shell中登录的用户信息

二、DDL(数据定义语言)

主要用于定义、修改和删除数据库对象,如表、视图、索引等

1、命名空间

  1. 命令格式
    list_namespace			# 列出命名空间
    create_namespace "NAME"	# 创建一个新的命名空间
    list_namespace_tables 'NAME' # 列出命名空间下的表
    drop_namespace 'NAME'	# 删除命名空间,需要删除改命名空间下的所有表后才能删除
    
    • NAME:命名空间名称
  2. 案例
    list_namespace					# 列出命名空间
    create_namespace "hbase_test" 	# 创建命名空间名为hbase_test
    list_namespace_tables 'hbase_test' # 列出hbase_test命名空间下的表,发现是空的则可以删除该命名空间
    drop_namespace 'hbase_test'	  	# 删除命名空间hbase_test
    

2、数据表格

  1. 命令格式

    创建表

    create "[NAMESPACE:]TABLE",{NAME=>"cf1",VERSIONS=1, ...},...,{NAME=>"cfn",VERSIONS=1,...}	# 创建表
    list_namespace_tables "NAMESPACE"	# 列出该命名空间的所有表
    desc "[NAMESPACE:]TABLE"			# 查看表的详细信息
    exists "[NAMESPACE:]TABLE"			# 判断表是否存在
    

    修改表:存在则覆盖,不存在则追加

    alter  "[NAMESPACE:]TABLE","cf1"	# 给表添加列族cf1...
    

    删除列族

    alter "[NAMESPACE:]TABLE","delete"=>"cf1" # 删除列族cf1
    is_enabled "[NAMESPACE:]TABLE"		# 这个命令用于检查指定表是否已启用
    is_disabled "[NAMESPACE:]TABLE"		# 这个命令用于检查指定表是否已被禁用
    enable "[NAMESPACE:]TABLE"			# 启用一个被禁用的表
    disable "[NAMESPACE:]TABLE"			# 禁用一个表
    

    删除表之前必须先禁用

    drop "[NAMESPACE:]TABLE"			# 删除表
    
    • NAMESPACE:命名空间的名称
    • [NAMESPACE:]TABLE:要创建的表的名称,哪个命名空间下的哪找表,[ ]代表里面的值可以省略
    • {NAME=>"cf1",VERSIONS=1, ...},...:定义了表的列族及其属性
    • cf1~cfn:列族名称
    • VERSIONS=1:每个列族指定版本数
  2. 案例

    存在创建表

    exists "hbase_test:student_info"					# 判断hbase_test命名空间下是否有student_info表
    create "hbase_test:student_info","base","scores"	#在hbase_test命名空间下创建了一个表叫student_info,含有两个列族base,scores
    list_namespace_tables "hbase_test"			# 列出hbase_test命名空间的所有表
    

    查看修改表

    alter "hbase_test:student_info", "base2"	# hbase_test命名空间下student_info表,添加列族base2
    desc "hbase_test:student_info"				# 查看hbase_test命名空间下student_info表的详细信息
    alter "hbase_test:student_info","delete"=>"base2"	# 删除列族base2
    

    禁用删除表

    is_enabled "hbase_test:student_info"		# 检查指定表是否已启用
    disable "hbase_test:student_info"			# 禁用一个表
    drop "hbase_test:student_info"				# 删除表
    

三、DML(数据操纵语言)

则主要用于插入、更新、删除和查询数据库中的数据

  1. 命令格式

    新增数据

    put "[NAMESPACE:]TABLE","ROW_KEY","CF:CN",VALUE	
    

    查看数据

    count "[NAMESPACE:]TABLE"				# 计算表中行的数量
    get "[NAMESPACE:]TABLE","ROW_KEY"		# 表中指定行键(ROW_KEY)的所有列和最新版本的数据
    get "[NAMESPACE:]TABLE","ROW_KEY","CF"	# 表中指定行键(ROW_KEY)和列族(CF)的所有列的数据。
    get "[NAMESPACE:]TABLE","ROW_KEY","CF:CN"	# 表中指定行键(ROW_KEY)、列族(CF)和列限定符(CN)的单个单元格的数据。# 扫描HBase表中的数据。它接受一个参数列表,用于指定扫描的各种选项和过滤器
    scan "[NAMESPACE:]TABLE",{VERSIONS => 5, FILTER => "KeyOnlyFilter(true)", ROWPREFIXFILTER => 'row_key'}
    

    删除数据

    delete "[NAMESPACE:]TABLE","ROW_KEY","CF:CN"	# 删除单元格最近版本数据
    deleteall "[NAMESPACE:]TABLE","ROW_KEY","CF:CN"	# 删除字段
    deleteall "[NAMESPACE:]TABLE","ROW_KEY"			# 删除整行
    truncate "[NAMESPACE:]TABLE"					# 删除所有数据
    

    计数器列相关的操作

    #确保指定的表、行键和列存在,并且列的类型是计数器列
    #针对不存在的列操作,针对存在的列会报错 Field is not a long, it's 10 bytes wide
    incr "[NAMESPACE:]TABLE","ROW_KEY","cf:cn",N		# 原子性地增加一个计数器列的值
    get_counter "[NAMESPACE:]TABLE","ROW_KEY","cf:cn"	# 用于获取计数器列的当前值
    
    • ROW_KEY:行键
    • CF:CN:列族:列限定符
    • FILTER => "KeyOnlyFilter(true)":应用一个过滤器,只返回键而不返回值
    • ROWPREFIXFILTER => 'row_key':应用一个行前缀过滤器,只返回行键以row_key为前缀的行。
  2. 案例

    新增数据

    # 新增三个学生信息
    put "hbase_test:student_info","1","base:name","张老三"
    put "hbase_test:student_info","1","base:age",22
    put "hbase_test:student_info","1","base:gender","男"
    put "hbase_test:student_info","1","scores:hive",72
    put "hbase_test:student_info","1","scores:hbase",88put "hbase_test:student_info","2","base:name","张老二"
    put "hbase_test:student_info","2","base:age",26
    put "hbase_test:student_info","2","base:gender","女"
    put "hbase_test:student_info","2","scores:hive",66
    put "hbase_test:student_info","2","scores:hbase",35put "hbase_test:student_info","3","base:name","张老大"
    put "hbase_test:student_info","3","base:age",35
    put "hbase_test:student_info","3","base:gender","男"
    put "hbase_test:student_info","3","scores:hive",89
    put "hbase_test:student_info","3","scores:hbase",90
    

    查看数据

    count "hbase_test:student_info"		# 计算hbase_test命名空间下student_info表中行的数量
    get "hbase_test:student_info","1"	# 查看行键为1的数据
    get "hbase_test:student_info","1","base"
    get "hbase_test:student_info","1","base:name"scan "hbase_test:student_info"	# 查看所有数据# 返回键而不返回值,返回行键以1为前缀的行
    scan "hbase_test:student_info",{VERSIONS => 1, FILTER => "KeyOnlyFilter(true)", ROWPREFIXFILTER => '1'}
    

    删除数据

    delete "hbase_test:student_info","1","base:name"	# 删除单元格最近版本数据
    deleteall "hbase_test:student_info","1","base:age"	# 删除字段
    deleteall "hbase_test:student_info","1"				# 删除行键为1的所有值
    truncate "hbase_test:student_info"					# 删除所有数据
    

    计数器列相关的操作

    incr "hbase_test:student_info","1","base:num",1			# 增加一个计数器列的值1
    get_counter "hbase_test:student_info","1","base:num"	# 得到值 1
    

四、Tools(工具)

待整理

管理表存储文件,对于优化HBase的性能和恢复存储空间非常重要

major_compact "[NAMESPACE:]TABLE"	# 触发表的主要压缩
compact "[NAMESPACE:]TABLE"			# 触发表的普通压缩

导入数据

使用 HBase 的 ImportTsv 工具从一个 TSV(Tab-separated values,制表符分隔值)文件导入数据到 HBase 表中

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.separator="," \
-Dimporttsv.columns=HBASE_ROW_KEY,info1:name,info1:age,info2:java,info2:mysql \
hbase_test:for_phoenix_test \
file:///root/hbase/students_for_import_2.csv
  • hbase org.apache.hadoop.hbase.mapreduce.ImportTsv:这是调用 HBase 的 ImportTsv 工具的命令。
  • -Dimporttsv.separator=",":设置字段分隔符为竖线(,)。
  • -Dimporttsv.columns=HBASE_ROW_KEY,info1:name,info1:age,info2:java,info2:mysql:定义 HBase 表的列族和列。HBASE_ROW_KEY 是特殊的标识符,用于指定行键。其他的列使用 列族:列名 的格式指定。
  • hbase_test:for_phoenix_test:指定 HBase 表的名字。
  • file:///root/hbase/students_for_import_2.csv:指定要导入的文件的路径。

预分区

#查看分区
scan 'hbase:meta',{STARTROW=>'hbase_test:for_mysql_import',LIMIT=>10}
#默认分区策略
IncreasingToUpperBoundRegionSplitPolicy
#预分区
create 'test:pre_par_test','cf1','cf2',{NUMREGIONS=>4 , SPLITALGO=>'UniformSplit' }
create 'test_split_table','base','scores',SPLITS=>['100','200','300']
# hdfs 存储信息
#Permission Owner Group	   Size Last Modified Rep Block Size Name	
#drwxr-xr-x root supergroup 0 B  Feb 20 17:37  0	  0 B    .tabledesc	
#drwxr-xr-x root supergroup 0 B  Feb 20 17:37  0	  0 B    .tmp	
#drwxr-xr-x root supergroup 0 B  Feb 20 17:37  0	  0 B    59cfcaf86548e4cad1...
#drwxr-xr-x root supergroup 0 B  Feb 20 17:37  0	  0 B    5ea0b24bec6c73d227...
#drwxr-xr-x root supergroup 0 B  Feb 20 17:37  0	  0 B    9256e995584fd306ea...
#drwxr-xr-x root supergroup 0 B  Feb 20 17:37  0	  0 B    ea4524c282c3876175...

HIVE 表映射

create external table for_hbase_mapping(row_key int,base_age int,base_gender string,base_name string,base_phone string,score_hadoop int,score_java int,score_spark int
) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties("hbase.columns.mapping"=":key,base:test_age,base:test_gender,base:test_name,base:test_phone,scores:hadoop,scores:java,scores:spark")
tblproperties("hbase.table.name"="hbase_test:for_mysql_import");

五、Replication

未完待续…

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

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

相关文章

python网络编程:通过socket实现TCP客户端和服务端

目录 写在开头 socket服务端(基础) socket客户端(基础) 服务端实现(可连接多个客户端) 客户端实现 数据收发效果 写在开头 近期可能会用python实现一些网络安全工具,涉及到许多关于网络…

供电系统分类详解

一、供电系统分类 电力供电系统一般有5种供电模式,常用的有:IT系统,TT系统,TN系统,其中TN系统又可以分为TN-C,TN-S,TN-C-S。 1、TN-C系统(三相四线制) 优点: 该系统中…

【无标题】自用款。。。

#include #include // #include <string.h> // 定义结构体 struct Student { char name[30]; int age; float score; }; // 定义比较函数&#xff0c;用于std::sort对结构体数组进行排序 bool compareStudentsByScore(const Student& a, const Student& b) {…

Hadoop大数据应用:NFS网关 连接 HDFS集群

目录 一、实验 1.环境 2.NFS网关 连接 HDFS集群 3. NFS客户端挂载HDFS文件系统 二、问题 1.关闭服务报错 2.rsync 同步报错 3. mount挂载有哪些参数 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构软件版本IP备注hadoop NameNode &#xff08;…

JavaAPI(含面试大厂题含源码)

在Java编程中&#xff0c;API&#xff08;应用程序编程接口&#xff09;是一套常用于执行特定任务或与系统交互的预定义函数和协议集合。Java标准库&#xff08;也称为Java API&#xff09;提供了广泛的功能&#xff0c;包括集合操作、文件处理、网络编程等&#xff0c;这些都是…

计算机网络的功能和特点

<计算机网络的功能> 1、数据通信 这是最基本的功能。用来传送各种类型的信息&#xff0c;包括文字信件、新闻消息、资讯信息、图片资料、声音、视频流等各种多媒体信息。 2、资源共享 资源是指网络中所有的软件、硬件和数据&#xff0c;共享则是指网络中的用户能够部…

高级Redis应用进阶 一站式Redis解决方案

源代码在https://github.com/629y/food-social-contact-parent Redis-1 Redis Redis-2 Redis基础数据类型与基本使用 Redis-3 Redis高阶类型与高级应用 Redis-4 Redis数据持久化 Redis-5 主从复制和读写分离 Redis-6 哨兵监控 Redis-7 集群搭建 Redis-8 集群高可用

【Mysql基础】查询01-去重、连接字符、模糊查询、通配符、检索表的结构信息

这里写目录标题 1 去重 distinct2 连接字符 concat(str1,str2,...)3 模糊查询3.1 like 包含3.2 通配符3.3 between and3.4 in3.5 is null 4 安全等于 <>5 检索表的结构信息 desc6 课后练习 1 去重 distinct 使用 DISTINCT 关键字&#xff0c;可以从结果集中去除重复的行…

他山之石可以攻玉

《赫畅&#xff5c;我42岁&#xff0c;从25亿到退网5年后的再次归来》 虽然行业不同&#xff0c;但是很多基本原理都是相通的。 1、不能什么都自己干。平台这么大&#xff0c;应用这么多&#xff0c;自己干不可能&#xff0c;多半也干不好。要尽可能多的形成统一战线&#xf…

Mac屏幕录制编辑软件

以下是一些Mac平台上受到推荐和好评的屏幕录制编辑软件&#xff1a; OBS Studio&#xff08;免费且开源&#xff09;&#xff1a; OBS 是一款功能强大的免费屏幕录制工具&#xff0c;不仅限于游戏直播&#xff0c;也适用于各种屏幕录制需求。它允许用户捕获屏幕、摄像头、音频&…

蓝桥杯day3刷题日记--P9240 冶炼金属

P9240 [蓝桥杯 2023 省 B] 冶炼金属 经典二分&#xff0c;先在第一组中找到最小值&#xff0c;在利用最小值限制范围寻找最大值 #include <iostream> #include <algorithm> using namespace std; int n,kk; int m[10001],num[10001]; int maxs,mins;bool check1…

在Spring Boot中使用Validation进行表单验证

在开发Web应用程序时&#xff0c;表单验证是确保用户提供的数据符合预期格式和规则的重要步骤之一。Spring Boot提供了强大的支持来简化表单验证的实现&#xff0c;其中包括了Validation框架的集成。本文将介绍如何在Spring Boot应用程序中集成Validation&#xff0c;并展示如何…

Python每日三道经典面试题(十二)

1.Python中的函数是什么&#xff1f; 在Python中&#xff0c;函数是一个组织好的、可重复使用的代码块&#xff0c;用于执行一个特定的任务。函数提供了代码模块化和代码复用的能力。你可以将程序划分为多个独立的、功能性的小块&#xff1b;当你需要执行某个任务时&#xff0…

用c++实现装箱问题、数字回转方阵

3.4.1 装箱问题 【问题】有一个工厂制造的产品形状都是长方体&#xff0c;一共有6种型号,每种型号长方体的长和宽分别是11、22、33、44、55、66,高都是h。这些产品使用统一规格的箱子进行包装&#xff0c;箱子的长、宽和高分别是6、6和h。对于每个订单工厂希望用最少的箱子进行…

【蓝屏分析】WHEA_UNCORRECTABLE_ERROR 问题分析与解决

背景信息 电脑名字电脑类型厂商使用时间magicbook14 2020款 R5 4500U笔记本电脑荣耀HONOR3年9个月 内存CPUGPU硬盘焊死在主板上焊死在主板上集显PCIe 4.0 NVMe M.2 固态 软硬件错误源确定 电脑莫名频繁随机蓝屏&#xff0c;由于在软件环境上无迹可寻推测是硬件问题 蓝屏画面…

Windows系统部署hMailServer邮件服务结合内网穿透实现公网收发邮件

文章目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpola…

运动想象 (MI) 迁移学习系列 (9) : 数据对齐(EA)

运动想象迁移学习系列:数据对齐&#xff08;EA&#xff09; 0. 引言1. 迁移学习算法流程2. 欧式对齐算法流程3. 与RA算法进行对比4. 实验结果对比5. 总结欢迎来稿 论文地址&#xff1a;https://ieeexplore.ieee.org/abstract/document/8701679 论文题目&#xff1a;Transfer Le…

数据结构:链式二叉树

对于二叉树而言,如果不是完全二叉树,就不再适合用数组存储了 二叉树结构 typedef struct BinTreeNode {int val;struct BinTreeNode* left;struct BinTreeNode* right; }BTNode; 二叉树的遍历 顺序 访问顺序(n NULL) 1.前序 根,左子树…

计算机网络的概念

目录 <计算机网络的定义> <计算机网络的形成与发展> 1.第一阶段远程联机阶段----60年代以前: 2.第二阶段多机互联网络阶段----60年代中期: 3.第三阶段标准化网络阶段----70年代末: 4.第四阶段网络互联与高速网络阶段一90年代: <计算机网络的未来--下一代…

Photoshop_00000

简介 Adobe官网&#xff1a;https://www.adobe.com Adobe中文官网&#xff1a;https://www.adobe.com/cn Adobe中国服务商&#xff1a;http://adobe.sxbyu.cn/adobe/adobe_index?flag800&bd_vid5593893117402635109# Photoshop安装 基础操作 文件的打开和新建 打开文…