HBase基础知识(二):HBase集群部署、HBaseShell操作

news2024/12/23 9:09:28

1. HBase安装部署

1.1 Zookeeper正常部署

首先保证Zookeeper集群的正常部署,并启动之:

创建集群启动脚本:

#!/bin/bash
case $1 in
"start"){
for i in hadoop100 hadoop101 hadoop102
do
echo----------zookeeper $i 启动------------
ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
done
};;
​
"stop"){
for i in hadoop100 hadoop101 hadoop102
do
echo----------zookeeper $i 停止------------
ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
done
};;
​
"status"){
for i in hadoop100 hadoop101 hadoop102
do
echo----------zookeeper $i 状态------------
ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh status"
done
};;
esac

1.2 Hadoop正常部署

Hadoop集群的正常部署并启动:

sbin/start-dfs.sh
sbin/start-yarn.sh

1.3 HBase的解压

解压Hbase到指定目录:

tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/module

1.4 HBase的配置文件

修改HBase对应的配置文件。

1)hbase-env.sh修改内容:

先获取自己环境的java信息

echo $JAVA_HOME
/opt/module/jdk1.8.0_161

注释下面的信息:

修改一下信息:

export JAVA_HOME=/opt/module/jdk1.8.0_161
export HBASE_MANAGES_ZK=false

2)hbase-site.xml修改内容:

<?xmlversion="1.0"?>
<configuration>
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop100:8020/HBase</value>
</property>
    
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<!--0.98后的新变动,之前版本没有.port,默认端口为60000-->
<property>
    <name>hbase.master.port</name>
    <value>16000</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop100,hadoop101,hadoop102</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration>

3)regionservers:

hadoop100
hadoop101
hadoop102

4)软连接hadoop配置文件到HBase:

ln -s /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml/opt/module/hbase-1.3.1/conf/core-site.xml
ln -s /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml/opt/module/hbase-1.3.1/conf/hdfs-site.xml

可以看到两个文件都做好了引用:

1.5 HBase远程发送到其他集群

xsync.sh hbase-1.3.1

1.6 HBase服务的启动

1.启动方式

bin/hbase-daemon.sh start master
startingmaster,loggingto/opt/module/hbase-1.3.1/bin/../logs/hbase-atguigu-master-hadoop100.out
bin/hbase-daemon.sh start regionserver
startingregionserver,loggingto/opt/module/hbase-1.3.1/bin/../logs/hbase-atguigu-regionserver-hadoop100.out

提示:如果集群之间的节点时间不同步,会导致regionserver无法启动,抛出ClockOutOfSyncException异常。修复提示:

a、同步时间服务请参看帮助文档:《尚硅谷大数据技术之Hadoop入门》

b、属性:hbase.master.maxclockskew设置更大的值

<property>
    <name>hbase.master.maxclockskew</name>
    <value>180000</value>
    <description>Timedifferenceofregionserverfrommaster</description>
</property>

2.启动方式

bin/start-hbase.sh

可以看到输出:

startingmaster,loggingto/opt/module/hbase-1.3.1/bin/../logs/hbase-atguigu-master-hadoop100.out
hadoop101:startingregionserver,loggingto/opt/module/hbase-1.3.1/bin/../logs/hbase-atguigu-regionserver-hadoop101.out
hadoop102:startingregionserver,loggingto/opt/module/hbase-1.3.1/bin/../logs/hbase-atguigu-regionserver-hadoop102.out
hadoop100:startingregionserver,loggingto/opt/module/hbase-1.3.1/bin/../logs/hbase-atguigu-regionserver-hadoop100.out

对应的停止服务:

bin/stop-hbase.sh

2. HBaseShell操作

2.1 基本操作

1.进入HBase客户端命令行

bin/hbaseshell

2.查看帮助命令

hbase(main):001:0>help
HBaseShell,version1.3.1,r930b9a55528fe45d8edce7af42fef2d35e77677a,ThuApr619:36:54PDT2017
Type'help"COMMAND"',(e.g.'help"get"'--thequotesarenecessary)forhelponaspecificcommand.
Commandsaregrouped.Type'help"COMMAND_GROUP"',(e.g.'help"general"')forhelponacommandgroup.
​
COMMANDGROUPS:
Groupname:general
Commands:status,table_help,version,whoami
​
#Groupname:ddl
#Commands:alter,alter_async,alter_status,create,describe,disable,disable_all,drop,drop_all,enable,enable_all,exists,get_table,is_disabled,is_enabled,list,locate_region,show_filters
​
Groupname:namespace
Commands:alter_namespace,create_namespace,describe_namespace,drop_namespace,list_namespace,list_namespace_tables
​
#Groupname:dml
#Commands:append,count,delete,deleteall,get,get_counter,get_splits,incr,put,scan,truncate,truncate_preserve
​
Groupname:tools
Commands:assign,balance_switch,balancer,balancer_enabled,catalogjanitor_enabled,catalogjanitor_run,catalogjanitor_switch,close_region,compact,compact_rs,flush,major_compact,merge_region,move,normalize,normalizer_enabled,normalizer_switch,split,splitormerge_enabled,splitormerge_switch,trace,unassign,wal_roll,zk_dump
​
Groupname:replication
Commands:add_peer,append_peer_tableCFs,disable_peer,disable_table_replication,enable_peer,enable_table_replication,get_peer_config,list_peer_configs,list_peers,list_replicated_tables,remove_peer,remove_peer_tableCFs,set_peer_tableCFs,show_peer_tableCFs
​
Groupname:snapshots
Commands:clone_snapshot,delete_all_snapshot,delete_snapshot,delete_table_snapshots,list_snapshots,list_table_snapshots,restore_snapshot,snapshot
​
Groupname:configuration
Commands:update_all_config,update_config
​
Groupname:quotas
Commands:list_quotas,set_quota
​
Groupname:security
Commands:grant,list_security_capabilities,revoke,user_permission
​
Groupname:procedures
Commands:abort_procedure,list_procedures
​
Groupname:visibilitylabels
Commands:add_labels,clear_auths,get_auths,list_labels,set_auths,set_visibility
​
SHELLUSAGE:
QuoteallnamesinHBaseShellsuchastableandcolumnnames.Commasdelimit
commandparameters.Type<RETURN>afterenteringacommandtorunit.
Dictionariesofconfigurationusedinthecreationandalterationoftablesare
RubyHashes.Theylooklikethis:
​
{'key1'=>'value1','key2'=>'value2',...}
​
andareopenedandclosedwithcurley-braces.Key/valuesaredelimitedbythe
'=>'charactercombination.Usuallykeysarepredefinedconstantssuchas
NAME,VERSIONS,COMPRESSION,etc.Constantsdonotneedtobequoted.Type
'Object.constants'toseea(messy)listofallconstantsintheenvironment.
​
Ifyouareusingbinarykeysorvaluesandneedtoenterthemintheshell,use
double-quote'dhexadecimalrepresentation.Forexample:
​
hbase>get't1',"key\x03\x3f\xcd"
hbase>get't1',"key\003\023\011"
hbase>put't1',"test\xef\xff",'f1:',"\x01\x33\x40"
​
TheHBaseshellisthe(J)RubyIRBwiththeaboveHBase-specificcommandsadded.
FormoreontheHBaseShell,seehttp://hbase.apache.org/book.html

3.查看当前数据库中有哪些表

hbase(main):002:0>list
TABLE
0row(s)in0.6350seconds
​
=>[]

2.2 表的操作

1.创建表

hbase(main):003:0>create 'student','info'
0row(s)in2.4680seconds
​
=>Hbase::Table-student
hbase(main):004:0>create 'stu','info1','info2'
0row(s)in1.2800seconds
​
=>Hbase::Table-stu
hbase(main):005:0>list
TABLE
stu
student
2row(s)in0.0200seconds
​
=>["stu","student"]

2.插入数据到表

hbase(main):003:0>put 'student','1001','info:sex','male'
hbase(main):004:0>put 'student','1001','info:age','18'
hbase(main):005:0>put 'student','1002','info:name','Janna'
hbase(main):006:0>put 'student','1002','info:sex','female'
hbase(main):007:0>put 'student','1002','info:age','20'

3.扫描查看表数据

hbase(main):008:0>scan 'student'
hbase(main):009:0>scan 'student',{STARTROW=>'1001',STOPROW=>'1001'}
hbase(main):010:0>scan 'student',{STARTROW=>'1001'}

4.查看表结构

describe ‘student’

5.更新指定字段的数据

hbase(main):012:0>put 'student','1001','info:name','Nick'
hbase(main):013:0>put 'student','1001','info:age','100'

6.查看“指定行”或“指定列族:列”的数据

hbase(main):014:0>get 'student','1001'
hbase(main):015:0>get 'student','1001','info:name'

7.统计表数据行数

hbase(main):021:0>count 'student'

8.删除数据

删除某rowkey的全部数据:

hbase(main):016:0>deleteall 'student','1001'

删除某rowkey的某一列数据:

hbase(main):017:0>delete 'student','1002','info:sex'

9.清空表数据

hbase(main):018:0>truncate 'student'

提示:清空表的操作顺序为先disable,然后再truncate。

10.删除表

首先需要先让该表为disable状态:

hbase(main):019:0>disable 'student'

然后才能drop这个表:

hbase(main):020:0>drop 'student'

提示:如果直接drop表,会报错:ERROR:Tablestudentisenabled.Disableitfirst.

11.变更表信息

将info列族中的数据存放3个版本:

hbase(main):022:0>alter 'student',{NAME=>'info',VERSIONS=>3}
hbase(main):022:0>get 'student','1001',{COLUMN=>'info:name',VERSIONS=>3}

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

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

相关文章

TKEStack容器管理平台实战之部署wordpress应用

TKEStack容器管理平台实战之部署wordpress应用 一、TKEStack介绍1.1 TKEStack简介1.2 TKEStack特点1.3 TKEStack架构图 二、kubernetes集群介绍2.1 k8s简介2.2 k8s架构图 三、本次实践介绍3.1 实践环境要求3.2 本次实践环境规划3.3 本次实践简介 四、安装容器管理平台4.1 安装T…

python基础-检测字符串是否含有中文的方法

1. 正则表达式 代码示例如下&#xff1a; import re def contains_chinese(text):pattern re.compile(r[\u4e00-\u9fff]) # 匹配中文字符的正则表达式范围return bool(pattern.search(text))2.unicodedata模块 import unicodedata def contains_chinese(text):for char in…

Codeforces Round 638 (Div. 2)B. Phoenix and Beauty(思维构造)

B. Phoenix and Beauty 这道题目学到的东西&#xff1a; 从给出的数据范围观察&#xff0c;得到一些有用信息&#xff08;峰哥教的&#xff09;考虑无解的情况‘ 其实这题考虑怎么操作是比较难的&#xff0c;如果能想出来满足条件的结果就比较好了&#xff08;我在说什么我自…

力扣题:高精度运算-1.1

力扣题-1.1 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;67. 二进制求和 解题思想&#xff1a;将数组进行遍历相加即可 class Solution(object):def addBinary(self, a, b):""":type a: str:type b: str:rtype: str""…

java开发面试:常见业务场景之单点登录SSO(JWT)、权限认证、上传数据的安全性的控制、项目中遇到的问题、日志采集(ELK)、快速定位系统的瓶颈

单点登录&#xff08;SSO&#xff09; 单点登录&#xff0c;Single Sign On&#xff08;简称SSO&#xff09;,只需要登录一次&#xff0c;就可以访问所有信任的应用系统。 如果是单个tomcat服务&#xff0c;session可以共享&#xff0c;如果是多个tomcat&#xff0c;那么服务s…

count(*)、count(1)、count(column)的区别

count(*)、count(1)、count(column)的区别 count(*)&#xff1a; 返回检索到的行数&#xff0c;无论是否含有NULL值&#xff0c;在InnoDB下&#xff0c;仅计算当前事务可见的行&#xff0c;通过遍历最小的可用二级索引来处理count(*)&#xff0c;除非索引或优化器指示优化器使…

阿里云林立翔:基于阿里云 GPU 的 AIGC 小规模训练优化方案

云布道师 本篇文章围绕生成式 AI 技术栈、生成式 AI 微调训练和性能分析、ECS GPU 实例为生成式 AI 提供算力保障、应用场景案例等相关话题展开。 生成式 AI 技术栈介绍 1、生成式 AI 爆发的历程 在 2022 年的下半年&#xff0c;业界迎来了生成式 AI 的全面爆发&#xff0c…

深信服技术认证“SCSA-S”划重点:命令执行漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…

持续集成交付CICD:基于ArgoCD 的GitOps 自动化完成前端项目应用发布与回滚

目录 一、实验 1. 环境 2. K8S master节点部署Argo CD 3.基于ArgoCD 实现GitOps &#xff08;同步部署文件&#xff09; 4.基于ArgoCD 实现GitOps &#xff08;同步HELM文件&#xff09; 二、问题 1. ArgoCD 连接K8S集群状态为 Unknown 2.ArgoCD 创建application失败 …

华为全屋wifi6蜂鸟套装标准

华为政企42 华为政企 目录 上一篇华为安防监控摄像头下一篇华为企业级无线路由器

Layui 2.9.2 列表商品展示页 用模板引擎 laytpl Ajax 读取json 数据 筛选数组 filter css 限制文体显示过长用。。。代替

全代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>软件管理器</title><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" conten…

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递&#xff1a;生成对抗网络医学影像中的应用—— CG-3DSRGAN&#xff1a;用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络&#xff08;Generative adversarial networks, GANs&#xff09;在医学影像中的应用。文献…

大数据技术基础-读书笔记

大数据技术基础-读书笔记 一、大数据概述 大数据是指在一定时间内无法用常规软件工具对其内容进行抓取、处理、分析和管理的数据集合。 大数据一般会涉及两种以上的数据形式&#xff0c;数据量通常是100TB以上的高速、实时数据流&#xff0c;或者从每年增长速度快的小数据开…

Java小案例-Java实现人事管理系统

前言 《人事管理系统》该项目采用技术jsp、Struts2、Mybatis、dwr、tomcat服务器、mysql数据库 开发工具eclipse/idea。 【项目使用技术】 Struts2Mybatisdwrjqueryjscss等技术 前端使用技术&#xff1a;JSP, dwr、jquery、js、css等 后端使用技术&#xff1a;Struts2Myba…

Leetcode—73.矩阵置零【中等】

2023每日刷题&#xff08;六十六&#xff09; Leetcode—73.矩阵置零 空间复杂度为O(mn)版实现代码 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {int rowLen matrix.size();int colLen matrix[0].size();vector<int> row…

使用 ElementUI 组件构建无边框 Window 桌面应用(WinForm/WPF)

生活不可能像你想象得那么好&#xff0c;但也不会像你想象得那么糟。 我觉得人的脆弱和坚强都超乎自己的想象。 有时&#xff0c;我可能脆弱得一句话就泪流满面&#xff1b;有时&#xff0c;也发现自己咬着牙走了很长的路。 ——莫泊桑 《一生》 一、技术栈 Vite Vue3 TS E…

Linux环境安装Hadoop

&#xff08;1&#xff09;下载Hadoop安装包并上传 下载Hadoop安装包到本地&#xff0c;并导入到Linux服务器的/opt/software路径下 &#xff08;2&#xff09;解压安装包 解压安装文件并放到/opt/module下面 [roothadoop100 ~]$ cd /opt/software [roothadoop100 software…

Spring Boot集成RocketMQ之消息对象序列化

以下源码基于rocketmq-spring-boot-start 2.1.1版本&#xff0c;其它版本可能会有差异 一. 前言 当我们在Spring Boot项目中集成RocketMQ后&#xff0c;只需要在配置文件(application.yml)中添加rocketmq的相关配置&#xff0c;即可使用rocketMQTemplate发送对象消息。登录Ro…

PDF文件如何设置限制打印?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…

Debian在升级过程中报错

当我们在升级的过程中出现如下报错信息 报错信息如下所示&#xff1a; The following signatures couldnt be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6 W: GPG error: http://mirrors.jevincanders.net/kali kali-rolling InRelease: …