HBase Shell操作HBase进行预分区

news2024/11/17 4:50:26

本文将介绍如何使用HBase Shell操作HBase进行预分区。预分区是指在创建表的时候,指定表的初始分区点,从而使表的数据能够均匀地分布在多个RegionServer上,提高读写性能和负载均衡。本文将使用HBase Shell命令,创建不同的预分区表,并演示如何删除、刷新、查看和验证表的数据。

主要内容如下:

  • 创建预分区表,指定SPLITS参数和COMPRESSION参数。
  • 删除表的数据,使用deleteall或truncate命令。
  • 刷新表的数据,使用flush命令。
  • 查看表的数据,使用scan命令。
  • 验证表的分区,使用scan hbase:meta命令。

 本文使用了HBase Shell命令,通过交互式方式操作HBase进行预分区。也可以使用Java API或其他语言API

一、环境准备

  • 安装HBase环境,并配置好集群。本文使用的是HBase 1.4.13版本,运行在三个Ubuntu系统的虚拟机中,分别作为master和slave节点。
  • 启动HBase Shell,进入交互式命令行界面。可以使用以下命令:
hbase shell

二、创建预分区表

  • 使用create命令,创建预分区表。该命令接受表名、列族名和SPLITS参数作为输入。SPLITS参数是一个数组,指定了表的初始分区点。例如:
create 't2', 'f1', SPLITS => ['1|', '2|', '3|']
  • 该命令会创建一个名为t2的表,有一个列族f1,并且有四个初始分区,分别是:

    • rowkey < ‘1|’
    • ‘1|’ <= rowkey < ‘2|’
    • ‘2|’ <= rowkey < ‘3|’
    • ‘3|’ <= rowkey
  • 可以使用不同的SPLITS参数,创建不同的预分区表。例如:

create 't3', 'f1', SPLITS => ['0', '1', '2']
create 't3index', 'f1'
create 't3index2', 'f1', SPLITS => [ '4', '7']
create 't3geo', 'f1', SPLITS => ['1', '2']
create 't3geo', 'f1', SPLITS =>  ['0', '1', '2']
create 't32', 'f1', SPLITS => ['0', '1', '2']
create 'tgeo3', 'f1', SPLITS =>  ['0', '1', '2']
create 't3feature', 'f1', SPLITS => ['0', '1', '2']
  • 可以使用COMPRESSION参数,指定列族的压缩方式。例如:
create 'rawdata', {NAME=>'f1',COMPRESSION=>'SNAPPY'},{SPLITS=> ['1', '2']}
  • 该命令会创建一个名为rawdata的表,有一个列族f1,并且使用SNAPPY压缩方式,并且有三个初始分区,分别是:

    • rowkey < ‘1’
    • ‘1’ <= rowkey < ‘2’
    • ‘2’ <= rowkey

 

三、删除表的数据

  • 使用deleteall命令,删除表中某一行的所有数据。该命令接受表名和行键作为输入。例如:
deleteall 'test','row1'
  • 该命令会删除test表中行键为row1的所有数据。

  • 使用truncate命令,删除表中所有数据,并重新创建空表。该命令接受表名作为输入。例如:

truncate 'test'

四、刷新表的数据

  • 使用flush命令,刷新表的数据,将内存中的数据写入到HDFS中。该命令接受表名作为输入。例如:
flush 't3feature'
  • 该命令会刷新t3feature表的数据,保证数据的持久性。

写入HBase少量数据spark可能读取不到,刷写到HDFS之后可解决。

五、查看表的数据

  • 使用scan命令,扫描表的数据,并显示在控制台上。该命令接受表名和一些可选参数作为输入。例如:
scan 't3feature'
  • 该命令会扫描t3feature表的所有数据,并显示行键和列值。

  • 可以使用COLUMNS参数,指定要扫描的列族或列名。例如:

scan 't3feature',{COLUMNS=>'f1:2020-11NDVI'}
  • 该命令会扫描t3feature表的f1列族下的2020-11NDVI列,并显示行键和列值。

六、验证表的分区

  • 使用scan命令,扫描hbase:meta表的数据,查看表的分区信息。该命令接受表名作为输入。例如:
scan 'hbase:meta'

 从上图可看出region均匀的分布在了3台regionserver上(集群就3台机器regionserver),达到预期效果。还可以在hbase的web UI界面中更加直观的查看建表的预分区信息。

 

  • 该命令会扫描hbase:meta表的所有数据,并显示每个表的分区点和所在的RegionServer。

  • 可以使用grep命令,过滤出某个表的分区信息。例如:

scan 'hbase:meta' | grep t3feature
  • 该命令会扫描hbase:meta表的所有数据,并只显示t3feature表的分区点和所在的RegionServer。
  • 再看看写数据是否均匀的命中各个region,是否能够做到对写请求的负载均衡:

 

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

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

相关文章

Allure在自动化测试中的应用

目录 前言&#xff1a; 01Allure的简介及使用 1、应用场景 02Allure与Pytest结合 1、添加测试步骤 2、添加主要功能模块描述 3、添加严重等级 03Allure集成Jenkins 1、Jenkins介绍和安装 2、Jenkins安装allure插件 前言&#xff1a; Allure是一种流行的测试报告框架…

Floating UI 使用经验分享 - Dialog

上文&#xff1a;Floating UI 使用经验分享 - Popover 在本文中&#xff0c;我将分享如何使用 Floating UI 来创建另一种常见的浮动 UI 组件——Dialog&#xff08;对话框&#xff09;。Dialog 是一个浮动元素&#xff0c;显示需要立即关注的信息&#xff0c;他会出现在页面内…

5G NR基于码本的上行传输

上行传输受基站DCI调度&#xff0c;UE收到DCI信息后&#xff0c;根据PMI信息选择相应的码本。 在3GPP TS 38.211 6.3.1.5节中&#xff0c;定义了不同天线端口数和不同传输层数情况下的可选码本。下面截取了单层2天线端口码本和双层两天线端口码本。 gNB在什么情况下为UE选择什…

Python--序列

Python--序列 <font colorblue>一、定义<font colorblue>二、索引<font colorblue>1.从左往右的索引&#xff1a;索引值从0开始递增<font colorblue>2.从右往左的索引&#xff1a;从-1开始递减 <font colorblue>三、切片<font colorblue>四…

Unity3d_Cut\Clipping sphere\CSG(boolean)(裁剪模型重合部分)总结

1、https://liu-if-else.github.io/stencil-buffers-uses-in-unity3d/ 下载&#xff1a;https://github.com/liu-if-else/UnityStencilBufferUses 2、手动切割 Unity 模型切割工具,CSG,任意图案,任意切割_unity csg_唐沢的博客-CSDN博客 3、 Shader Unity Shader学习&#x…

【从删库到跑路】详细讲解MySQL的函数和约束作用

&#x1f38a;专栏【MySQL】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 文章目录 &#x1f354;函数⭐字符串函数&#x1f388;字符串拼接函数&…

Python基础知识 数据容器

id() 函数是python 内置函数 返回 id() 函数返回对象的唯一标识符&#xff0c;标识符是一个整数。 a, b, c 20, 30 , 40 print(a,b,c) ## a20 b 30 c40 ## 跟ES6系列中的析构函数原理一样Python中 字符串不能通过 &#xff0c;把 数字等非字符串&#xff0c;进行拼接…

Redis从入门到精通【高阶篇】之底层数据结构链表包(listpacks)详解

文章目录 0.前言2. listpacks&#xff08;紧凑列表&#xff09;2. 源码解析3. 总结 0.前言 上个篇章回顾&#xff0c;我们上个章节我们学习了《Redis从入门到精通【高阶篇】之底层数据结构字典(Dictionary)详解》 本文将Redis底层数据结构 listpacks&#xff08;链表包&#…

SynchronousQueue的基本介绍

SynchronousQueue介绍 SynchronousQueue作为阻塞队列&#xff0c;区别于其他的阻塞队列。因为他不存储元素&#xff0c;但是存储消费者或者生产者。要是SynchronousQueue队列中存储了一个生产者&#xff0c;再来一个生产者想存放到队列中&#xff0c;要是你使用的是put方法&…

chatgpt赋能python:Python自动编号教程:如何给数据添加自动编号

Python自动编号教程&#xff1a;如何给数据添加自动编号 在进行数据处理和整理过程中&#xff0c;有时候需要为数据添加自动编号才能更好地进行分析和展示。而使用Python编程语言可以快速而准确地实现自动编号的功能。在本篇教程中&#xff0c;我们将介绍如何使用Python处理数…

网络层:IPv4数据报的首部格式

1.IPv4数据报的首部格式 笔记来源&#xff1a; 湖科大教书匠&#xff1a;IPv4数据报的首部格式 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 下图来源&#xff1a;以太网MAC帧格式 IP数据报属于MAC帧的数据部分 IPv4数据报的首部格式 1.1 IP数…

VS2019编译GSL

VS2019 编译GSL 下载GSL&#xff1a;https://github.com/BrianGladman/gsl&#xff0c;此仓库带有用于编译的VS解决方案。 解压后&#xff0c;在 build.vc 目录下有两个解决方案&#xff1a; gsl.dll.sln 用于编译生成动态库gsl.lib.sln 用于编译生成静态库 请先阅读 build…

haproxy服务器对nginx服务器web服务调度负载均衡、用nfs做共享目录(脚本部署)

目录 一、准备 二、在作为haproxy的服务器上导入以下shell执行haproxy安装 三、由于nginx服务需要用的nfs共享目录&#xff0c;先部署nfs 四、nginx服务器1部署 五、nginx服务器2部署同上 六、测试 一、准备 四台服务器 系统IP搭建服务器centos7192.168.1.12haproxycent…

深度学习经典trick汇总

深度学习经典trick汇总 trick这个词或许有投机取巧的意味&#xff0c;但深度学习论文中出现的很多这个trick确实对模型更方面性能有所提高&#xff0c;而且它们中的很多还具有普适性&#xff0c;那么这种“trick“或许应该被叫做“技术”。 1. 权重衰减 θ t 1 ( 1 − ω α…

DHCP服务器

文章目录 DHCP服务器DHCP的工作原理DHCP服务器的用途DHCP协议的工作方式DHCP服务器给予客户端固定或动态的IP参数关于租约所造成的问题与租约期限多台DHCP服务器在同一物理网段的情况 何时需要架设DHCP服务器使用DHCP的时机不建议使用DHCP主机的时机 DHCP服务器端的配置所需软件…

Quantum Utility!IBM开辟“量子计算的实用时代”

光子盒研究院 今天&#xff0c;IBM&#xff08;纽约证券交易所股票代码&#xff1a;IBM&#xff09;宣布了一项新的突破&#xff0c;并发表在科学杂志《自然》的封面上。 ——团队首次证明了量子计算机可以在100多个量子比特的规模上产生精确的结果&#xff1b;并且至少在一种计…

Redis入门 - 基础通用指令

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis入门 - 基础通用指令 | CoderMast编程桅杆https://www.codermast.com/database/redis/base-commind.html 在正式介绍Redis数据结构及其操作指令之前&#xff0c;我们需要先掌握一些最基础的通用指令。 这些都是Redis…

鸟类识别Python,基于TensorFlow卷积神经网络【实战项目】

一、介绍 鸟类识别系统&#xff0c;使用Python作为主要开发语言&#xff0c;基于深度学习TensorFlow框架&#xff0c;搭建卷积神经网络算法。并通过对数据集进行训练&#xff0c;最后得到一个识别精度较高的模型。并基于Django框架&#xff0c;开发网页端操作平台&#xff0c;…

chatgpt赋能python:Python自动获取图片数据的方法

Python自动获取图片数据的方法 随着信息时代的到来&#xff0c;图像数据已经越来越重要。我们如何从互联网上获取大量的图片数据呢&#xff1f;Python提供了简单而直接的方法。本文将介绍如何使用Python自动获取图片数据&#xff0c;充分利用Python的编程能力&#xff0c;开展…

异常的相关知识

&#x1f4e2;博客主页&#xff1a;盾山狂热粉的博客_CSDN博客-C、C语言,机器视觉领域博主&#x1f4e2;努力努力再努力嗷~~~✨ &#x1f4a1;大纲 ⭕总结了python中所有可能的异常情况&#xff0c;有异常不一定是坏事&#xff0c;有提醒作用 一、常见异常 &#x1f4a1;可以…