Hbase 常用 Shell 命令

2023-11-07

一、基本命令

打开 Hbase Shell:

# hbase shell
1.1 获取帮助
# 获取帮助
help
# 获取命令的详细信息
help 'status'
1.2 查看服务器状态
status
1.3 查看版本信息
version

二、关于表的操作

2.1 查看所有表
list
2.2 创建表

命令格式: create ‘表名称’, ‘列族名称 1’,‘列族名称 2’,‘列名称 N’

# 创建一张名为Student的表,包含基本信息(baseInfo)、学校信息(schoolInfo)两个列族
create 'Student','baseInfo','schoolInfo'
2.3 查看表的基本信息

命令格式:desc ‘表名’

describe 'Student'
2.4 表的启用/禁用

enable 和 disable 可以启用/禁用这个表,is_enabled 和 is_disabled 来检查表是否被禁用

# 禁用表
disable 'Student'
# 检查表是否被禁用
is_disabled 'Student'
# 启用表
enable 'Student'
# 检查表是否被启用
is_enabled 'Student'
2.5 检查表是否存在
exists 'Student'
2.6 删除表
# 删除表前需要先禁用表
disable 'Student'
# 删除表
drop 'Student'

三、增删改

3.1 添加列族

命令格式: alter ‘表名’, ‘列族名’

alter 'Student', 'teacherInfo'
3.2 删除列族

命令格式:alter ‘表名’, {NAME => ‘列族名’, METHOD => ‘delete’}

alter 'Student', {NAME => 'teacherInfo', METHOD => 'delete'}
3.3 更改列族存储版本的限制

默认情况下,列族只存储一个版本的数据,如果需要存储多个版本的数据,则需要修改列族的属性。修改后可通过 desc 命令查看。

alter 'Student',{NAME=>'baseInfo',VERSIONS=>3}
3.4 插入数据

命令格式:put ‘表名’, ‘行键’,‘列族:列’,‘值’

注意:如果新增数据的行键值、列族名、列名与原有数据完全相同,则相当于更新操作

put 'Student', 'rowkey1','baseInfo:name','tom'
put 'Student', 'rowkey1','baseInfo:birthday','1990-01-09'
put 'Student', 'rowkey1','baseInfo:age','29'
put 'Student', 'rowkey1','schoolInfo:name','Havard'
put 'Student', 'rowkey1','schoolInfo:localtion','Boston'

put 'Student', 'rowkey2','baseInfo:name','jack'
put 'Student', 'rowkey2','baseInfo:birthday','1998-08-22'
put 'Student', 'rowkey2','baseInfo:age','21'
put 'Student', 'rowkey2','schoolInfo:name','yale'
put 'Student', 'rowkey2','schoolInfo:localtion','New Haven'

put 'Student', 'rowkey3','baseInfo:name','maike'
put 'Student', 'rowkey3','baseInfo:birthday','1995-01-22'
put 'Student', 'rowkey3','baseInfo:age','24'
put 'Student', 'rowkey3','schoolInfo:name','yale'
put 'Student', 'rowkey3','schoolInfo:localtion','New Haven'

put 'Student', 'wrowkey4','baseInfo:name','maike-jack'
3.5 获取指定行、指定行中的列族、列的信息
# 获取指定行中所有列的数据信息
get 'Student','rowkey3'
# 获取指定行中指定列族下所有列的数据信息
get 'Student','rowkey3','baseInfo'
# 获取指定行中指定列的数据信息
get 'Student','rowkey3','baseInfo:name'
3.6 删除指定行、指定行中的列
# 删除指定行
delete 'Student','rowkey3'
# 删除指定行中指定列的数据
delete 'Student','rowkey3','baseInfo:name'

四、查询

hbase 中访问数据有两种基本的方式:

  • 按指定 rowkey 获取数据:get 方法;

  • 按指定条件获取数据:scan 方法。

scan 可以设置 begin 和 end 参数来访问一个范围内所有的数据。get 本质上就是 begin 和 end 相等的一种特殊的 scan。

4.1Get查询
# 获取指定行中所有列的数据信息
get 'Student','rowkey3'
# 获取指定行中指定列族下所有列的数据信息
get 'Student','rowkey3','baseInfo'
# 获取指定行中指定列的数据信息
get 'Student','rowkey3','baseInfo:name'
4.2 查询整表数据
scan 'Student'
4.3 查询指定列簇的数据
scan 'Student', {COLUMN=>'baseInfo'}
4.4 条件查询
# 查询指定列的数据
scan 'Student', {COLUMNS=> 'baseInfo:birthday'}

除了列 (COLUMNS) 修饰词外,HBase 还支持 Limit(限制查询结果行数),STARTROWROWKEY 起始行,会先根据这个 key 定位到 region,再向后扫描)、STOPROW(结束行)、TIMERANGE(限定时间戳范围)、VERSIONS(版本数)、和 FILTER(按条件过滤行)等。

如下代表从 rowkey2 这个 rowkey 开始,查找下两个行的最新 3 个版本的 name 列的数据:

scan 'Student', {COLUMNS=> 'baseInfo:name',STARTROW => 'rowkey2',STOPROW => 'wrowkey4',LIMIT=>2, VERSIONS=>3}
4.5 条件过滤

Filter 可以设定一系列条件来进行过滤。如我们要查询值等于 24 的所有数据:

scan 'Student', FILTER=>"ValueFilter(=,'binary:24')"

值包含 yale 的所有数据:

scan 'Student', FILTER=>"ValueFilter(=,'substring:yale')"

列名中的前缀为 birth 的:

scan 'Student', FILTER=>"ColumnPrefixFilter('birth')"

FILTER 中支持多个过滤条件通过括号、AND 和 OR 进行组合:

# 列名中的前缀为birth且列值中包含1998的数据
scan 'Student', FILTER=>"ColumnPrefixFilter('birth') AND ValueFilter ValueFilter(=,'substring:1998')"

PrefixFilter 用于对 Rowkey 的前缀进行判断:

scan 'Student', FILTER=>"PrefixFilter('wr')"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hbase 常用 Shell 命令 的相关文章

  • 远程执行hadoop作业时出现异常

    我正在尝试在远程 hadoop 集群上执行 Hadoop 作业 下面是我的代码 Configuration conf new Configuration conf set fs default name hdfs server 9000 c
  • hbase api - 通过行ID列表获取数据行信息

    是否可以通过hbase java API通过行id列表获取hbase数据记录 例如 我有一个已知的 hbase 行 ID 列表 mykey1 myhash1 mykey1 myhash2 mykey1 myhash3 mykey2 myha
  • 无法使用 PDI 步骤连接到 HDFS

    我已经配置成功了Hadoop 2 4 in an Ubuntu 14 04 虚拟机 from a 视窗8系统 Hadoop 安装工作绝对正常 而且我还可以从 Windows 浏览器查看 Namenode 附图如下 所以 我的主机名是 ubu
  • Spark MLLib 存在问题,导致概率和预测对于所有内容都相同

    我正在学习如何将机器学习与 Spark MLLib 结合使用 目的是对推文进行情感分析 我从这里得到了一个情感分析数据集 http thinknook com wp content uploads 2012 09 Sentiment Ana
  • 在 Hadoop 中处理带标头的文件

    我想在 Hadoop 中处理很多文件 每个文件都有一些头信息 后面跟着很多记录 每个记录都存储在固定数量的字节中 对此有何建议 我认为最好的解决方案是编写一个自定义的InputFormat http hadoop apache org co
  • hadoop2.2.0追加文件发生AlreadyBeingCreatedException

    我遇到了一个关于hadoop2 2 0追加操作的问题 我通过 HDFS java API 将一些字节附加到 hdfs 文件 首先 如果在附加操作之前文件不存在 我将创建目标文件 代码如下 String fileUri hdfs hadoop
  • Hadoop安装问题:

    我跟着this http www bogotobogo com Hadoop BigData hadoop Install on ubuntu single node cluster phpHadoop 安装教程 不幸的是 当我运行全部启动
  • http://localhost:50070/ 的 hadoop Web UI 不起作用

    命令 jps 显示以下详细信息 第5144章 5464 节点管理器 5307 资源管理器 5800 Jps 显然namenode和datanode丢失了 网络用户界面位于http 本地主机 50070 http localhost 5007
  • Oozie SSH 操作

    Oozie SSH 操作问题 Issue 我们正在尝试在集群的特定主机上运行一些命令 我们为此选择了 SSH Action 我们面对这个 SSH 问题已经有一段时间了 这里真正的问题可能是什么 请指出解决方案 logs AUTH FAILE
  • 这个 Java 语法是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 java中的是什么意思 https stackoverflow com questions 12649572 what does the type in java mean 在下面的代码中 Itera
  • 获取行 HBase 的特定列族中的列

    我正在编写一个应用程序 通过 JSP 显示 HBase 中特定表中的数据 我想获取一行的特定列族中的所有列 有什么办法可以做到这一点吗 public String getColumnsInColumnFamily Result r Stri
  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • 在 Amazon EMR 上使用 java 中的 hbase 时遇到问题

    因此 我尝试使用作为 MapReduce 步骤启动的自定义 jar 来查询 Amazon ec2 上的 hbase 集群 我的 jar 在地图函数内 我这样调用 Hbase public void map Text key BytesWri
  • 如何通过sparkSession向worker提交多个jar?

    我使用的是火花2 2 0 下面是我在 Spark 上使用的 java 代码片段 SparkSession spark SparkSession builder appName MySQL Connection master spark ip
  • Hive“添加分区”并发

    我们有一个外部 Hive 表 用于处理原始日志文件数据 这些文件每小时一次 并按日期和源主机名分区 目前 我们正在使用简单的 python 脚本导入文件 这些脚本每小时触发几次 该脚本根据需要在 HDFS 上创建子文件夹 从临时本地存储复制
  • 使用 Cassandra 进行单元版本控制

    我的应用程序使用 AbstractFactory 作为 DAO 层 因此一旦实现了 HBase DAO 系列 创建 Cassandra DAO 系列并从多个角度查看差异对我来说将是非常好的 不管怎样 试图做到这一点 我看到 Cassandr
  • 将 CSV 转换为序列文件

    我有一个 CSV 文件 我想将其转换为 SequenceFile 我最终将使用它来创建 NamedVectors 以在聚类作业中使用 我一直在使用 seqdirectory 命令尝试创建 SequenceFile 然后使用 nv 选项将该输
  • 将数据从 oracle 移动到 HDFS,处理并从 HDFS 移动到 Teradata

    我的要求是 将数据从 Oracle 移至 HDFS 处理HDFS上的数据 将处理后的数据移至 Teradata 还需要每 15 分钟执行一次整个处理 源数据量可能接近50GB 处理后的数据也可能相同 在网上搜索了很多之后 我发现 PRARO
  • InvalidRequestException(为什么:empid 如果包含 Equal,则不能被多个关系限制)

    这是关于我从 Apache Spark 查询 Cassandra 时遇到的问题 Spark 的正常查询工作正常 没有任何问题 但是当我使用关键条件进行查询时 出现以下错误 最初 我尝试查询复合键列族 它也给出了与下面相同的问题 由以下原因引
  • HDFS 中的文件数量与块数量

    我正在运行单节点 hadoop 环境 当我跑的时候 hadoop fsck user root mydatadir block 我真的对它给出的输出感到困惑 Status HEALTHY Total size 998562090 B Tot

随机推荐

  • C语言《数据结构》——图的概念和创建,遍历

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 例如 随着计算机网络的发展 编程成了一种很常见且重要的职业 学好编程就要学好数据结构 下面将介绍数据结构中的图结构 一 什么是 图 二 图的基础知识和表示 1
  • 这三个 Go 水平自测题,你手写不出来还是先老实上班吧,过来看看

    现在技术文章特别卷 啥啥底层都能给你分析的头头是道 但是分析的对不对要看作者水平 很有可能一个错 抄他的那些人也跟着错 因为我以前看源码的时候就经常感觉自己在两种状态下切换 懂了 娘咧漏看了 这个函数干啥的 八股文这个事儿 其实也特别考验面
  • 如何去除WinRAR弹窗广告

    WinRAR 作为知名的老牌压缩软件 二十余年来始终风靡全球 经久不衰 但对于中国用户 其简体中文的个人免费版安装后会有 评估版本 的标记 而且每次启动时会有代理商的弹窗广告 本文教你如何去除标记和弹窗广告 让你的 WinRAR 恢复纯净体
  • 最优控制的理解

    最优控制 在满足一定约束的情况下 寻求最优控制策略 使得性能指标取极大值或极小值 对一个受控的动力学系统 从一类允许的控制方案中寻找一个最优的控制方案 使得系统的运动从由某个初始状态转移到目标状态的同时 其性能指标值为最优 性质 在一般的情
  • Cartoon头像 InsCode Stable Diffusion 美图活动一期

    一 简单介绍和活动地址 简单介绍 试用Stable Diffusion 模型生成优质人物好图 更简单地炼丹 InsCode是一个集成了在线IDE 在线AI编程 在线算力租赁 在线项目部署以及在线SD 模型使用的综合代码开发平台 不论你是初级
  • 基础算法题——找筷子(位的异或)

    找筷子 题目描述 经过一段时间的紧张筹备 电脑小组的 RP 餐厅 终于开业了 这天 经理 LXC 接到了一个定餐大单 可把大家乐坏了 员工们齐心协力按要求准备好了套餐正准备派送时 突然碰到一个棘手的问题 筷子 CX 小朋友找出了餐厅中所有的
  • VS+Qt应用开发,设置软件图标Icon

    VS Qt应用开发 设置软件图标Icon 前言 一 索然无味的默认icon图标 二 如何设置自己喜欢的icon图标 1 选择自己喜欢的图标 2 设置可执行文件 exe 图标 3 设置标题栏和任务栏图标 三 效果 四 工程源码 前言 VS版本
  • 深度学习系列笔记(一)——深度学习简介与反向传播机制

    深度学习简介 深度学习的发展趋势 Fully Connect Feedforward Network举例 反向传播 符号表示 计算Loss对Params的偏导数 符号说明 过程 例子 参考文献 深度学习的发展趋势 回顾一下deep lear
  • Tablayout+viewpager+Fragment的fragment页面数据不显示

    开发中经常使用Tablayout ViewPager与Frament 联动 之前fragment 页面创建比较少 没有出现什么问题 但是当创建frament页面页面比较多的时候 fragment 页面的数据会有不显示 想了各种办法没有解决
  • 海湾汉字编码表全部_汉字编码对照表

    这里写自定义目录标题 海湾汉字编码APP 蛮好用的 在某宝里搜 海湾汉字编码App 就能找到了 作者一直在更新
  • 使用arduino Nano 自制nRF24LE1 的烧录器进行固件烧录

    也有专门usb编程器 比较贵 可以买个arduino nano自已做一个 1 下载arduino的烧录固件 https github com garcezluz nRF24LE1 Programmer 2 使用arduino编译烧录固件 3
  • 计算机毕业设计如何制作电子商务网站怎么制作购物网站计算机课程设计电子商城做什么(PHP-ASP.NET-c#-JavaWeb-SSM-SSH-J2EE-springBoot

    如果计算机毕业设计选题是 lt lt 电子商务网站 gt gt lt lt 购物网站 gt gt 这样的题目 那么灵魂问答如下 需要实现什么功能呢 怎么样挑选适合自己的编程语言 使用什么前端框架 使用什么数据库 通过本文将给您找到以上答案
  • 【linux kernel】linux内核数据结构分析之哈希表

    Linux内核中实现了一套经典的哈希表操作 定义在 include linux list h文件中 本文基于linux内核源码6 2 7 记录了其常用操作哈希表的API函数 便于在阅读linux内核源码时更好的理解程序执行的过程和细节 在L
  • 外部中断实验

    外部中断简介 前一篇详细介绍了51 单片机的中断系统 这里再简单回顾一下 当中央处理机 CPU 正在处理某件事的时候外界发生了紧急事件请求 要求 CPU 暂停当前的工作 转而去处理这个紧急事件 处理完以后 再回到原来被中断的地方 继续原来的
  • Swift set/get方法

    Swift 中重写属性的set和get方法 Swift中如何重写属性的set和get方法 set和get方法的本质是什么 set和get方法紧跟着属性后面写 很紧凑 也清楚 class Person NSObject var name st
  • 并发编程系列——6线程池核心原理分析

    学习目标 线程池的作用 jdk给我们提供了哪几种常用线程池 线程池有哪几大核心参数 线程池的拒绝策略有哪些 线程中阻塞队列的作用 线程池的工作流程 线程池的设计思维 线程池中的阻塞队列如果用默认的 会有哪些问题 线程池的工作状态有哪些 线程
  • openERP为何改名odoo

    5月15日 OpenERP S A 在合作伙伴Webinar 宣布 OE即将改名Odoo 融资1000万美元 代码托管更换到Github 很多内容 OpenERP 名字更改 合作伙伴合作方式也有新政策 OpenERP开源 Odoo仍将继续开
  • go语言判断 slice,array,map中是否存在某个元素

    最近在用go重构以前python写的项目 遇到一些问题 总结一下 自己水平比较菜 遇到问题较低级 自己总结一下 免得忘了 很简单的需求 判断某个元素是否在 slice array map中 其实很简单 但是还是python最简单啊 func
  • 微信消息模板换行符转义问题处理

    通常的微信模板 Hello n n Are you OK 直接定义字符串 数据库中读取 这里需要说明的是 数据库读取 的内容 如果直接推送 n n是没有被转移为换行符的 此时需要 tplStr readDb tpl str replace
  • Hbase 常用 Shell 命令

    一 基本命令 打开 Hbase Shell hbase shell 1 1 获取帮助 获取帮助 help 获取命令的详细信息 help status 1 2 查看服务器状态 status 1 3 查看版本信息 version 二 关于表的操