HBase 安装与配置

  • 首要配置

配置时间同步(所有节点上执行)

yum -y install chrony
vi /etc/chrony.conf
#写入(7版本用server;8版本用pool):
server time1.aliyun.com iburst

pool time1.aliyun.com iburst
#保存配置并退出
systemctl enable --now chronyd
systemctl status chronyd
#执行后如果看到running则表示成功
  • 步骤一:解压缩 HBase 安装包
[root@master ~]# tar -zxvf /opt/software/hbase-1.2.1-bin.tar.gz -C /usr/local/src/
  • 步骤二:重命名 HBase 安装文件夹
[root@master ~]# cd /usr/local/src/
[root@master src]# mv hbase-1.2.1 hbase
  • 步骤三:在所有节点添加环境变量
[root@master ~]# vi /etc/profile
# set hbase environment
export HBASE_HOME=/usr/local/src/hbase
export PATH=$HBASE_HOME/bin:$PATH
  • 步骤四:在所有节点使环境变量生效
[root@master ~]# source /etc/profile
  • 步骤五:在 master 节点进入配置文件目录
[root@master ~]# cd /usr/local/src/hbase/conf/
  • 步骤六:在master节点配置 hbase-env.sh 文件
#在文件中修改
[root@master conf]# vi hbase-env.sh
#Java安装位置
export JAVA_HOME=/usr/local/src/jdk
#值为 true使用 HBase自带的 ZooKeeper,值为 false使用在 Hadoop上装的 ZooKeeper(前面安装了Zookeeper就用false)
export HBASE_MANAGES_ZK=false
#HBase类路径
export HBASE_CLASSPATH=/usr/local/src/hadoop/etc/hadoop/
  • 步骤七:在master节点配置 hbase-site.xml
# 进入配置文件
[root@master conf]# vi hbase-site.xml
#写入
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value> # 使用 9000端口
<description>The directory shared by region servers.</description>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value> # 使用 master节点 60010端口
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value> # 使用 master节点 2181端口
<description>Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect.</description>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value> # ZooKeeper超时时间
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value> # ZooKeeper管理节点
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/src/hbase/tmp</value> # HBase临时文件路径
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value> # 使用分布式 HBase
</property>

hbase.rootdir:该项配置了数据写入的目录,默认 hbase.rootdir是指向/tmp/hbase-${user.name},也就说你会在重启后丢失数据

(重启的时候操作系统会清理/tmp目录)。

hbase.zookeeper.property.clientPort:指定 zk的连接端口。

zookeeper.session.timeout:RegionServer与 ZooKeeper间的连接超时时间。当超

时时间到后,ReigonServer 会被 ZooKeeper 从 RS 集群清单中移除,HMaster 收到移除通

知后,会对这台 server负责的 regions重新 balance,让其他存活的 RegionServer接管。

hbase.zookeeper.quorum:默认值是 localhost,列出 zookeepr ensemble 中的servers。

hbase.master.info.port:浏览器的访问端口。

  • 步骤八:在master节点修改 regionservers 文件
#删除 localhost,每一行写一个 slave节点主机机器名
[root@master conf]$ vi regionservers
slave1
slave2
  • 步骤九:在master节点创建 hbase.tmp.dir 目录
[root@master usr]# mkdir /usr/local/src/hbase/tmp
  • 步骤十:将master上的 hbase 安装文件同步到 slave1 slave2
[root@master ~]# scp -r /usr/local/src/hbase/ root@slave1:/usr/local/src/
[root@master ~]# scp -r /usr/local/src/hbase/ root@slave2:/usr/local/src/
  • 步骤十一:在所有节点修改 hbase 目录权限
#master节点修改权限
[root@master ~]# chown -R hadoop:hadoop /usr/local/src/hbase/ #slave1节点修改权限
[root@slave1 ~]# chown -R hadoop:hadoop /usr/local/src/hbase/ #slave2节点修改权限
[root@slave2 ~]# chown -R hadoop:hadoop /usr/local/src/hbase/
  • 步骤十二:在所有节点切换到 hadoop 用户
#master节点
[root@master ~]#su – hadoop
[root@master ~]#souce /etc/profile #slave1节点
[root@slave1 ~]#su – hadoop
[root@slave1 ~]#souce /etc/profile #slave2节点
[root@slave2~]#su – hadoop
[root@slave2~]#souce /etc/profile
  • 步骤十三:启动 HBase

先启动 Hadoop,然后启动 ZooKeeper,最后启动 HBase

首先在 master节点启动 Hadoop

[hadoop@master ~]$ start-all.sh
#master节点
[hadoop@master ~]$ jps
10288 ResourceManager
9939 NameNode
10547 Jps
10136 SecondaryNameNode #slave1节点
[hadoop@slave1 ~]$ jps
4465 NodeManager
4356 DataNode
4584 Jps #slave2节点
[hadoop@slave2 ~]$ jps
3714 DataNode
3942 Jps
3823 ResourceManager
  • 步骤十四:在所有节点启动 ZooKeeper

如果没有做Zookeeper则不用启动,会显示没有此命令

[hadoop@master ~]$ zkServer.sh start
[hadoop@master ~]$ jps
#master节点
10288 ResourceManager
9939 NameNode
10599 Jps
10136 SecondaryNameNode
10571 QuorumPeerMain #slave1节点
[hadoop@slave1 ~]$ zkServer.sh start
[hadoop@slave1 ~]$ jps
1473 QuorumPeerMain
1302 NodeManager
1226 DataNode
1499 Jps #slave2节点
[hadoop@slave2 ~]$ zkServer.sh start
[hadoop@slave2 ~]$ jps
1296 NodeManager
1493 Jps
1222 DataNode
1469 QuorumPeerMain
  • 步骤十五:在 master 节点启动 HBase
[hadoop@master ~]$ start-hbase.sh
[hadoop@master ~]$ jps
#master节点
1669 ResourceManager
2327 Jps
1322 NameNode
2107 HMaster
1948 QuorumPeerMain
1517 SecondaryNameNode #slave1节点
[hadoop@slave1 ~]$ jps
1473 QuorumPeerMain
1557 HRegionServer
1702 Jps
1302 NodeManager
1226 DataNode #slave2节点
[hadoop@slave2 ~]$ jps
1296 NodeManager
1222 DataNode
1545 HRegionServer
1725 Jps
1469 QuorumPeerMain
  • 步骤十六:在浏览器输入 master:60010 出现如下的界面

HBase 常用 Shell 命令

启动 hdfs、zookeeper、hbase 服务

  • 步骤一:进入 HBase 命令行
[hadoop@master ~]$ hbase shell
  • 步骤二:建立表 scores,两个列簇:grade 和 course
hbase(main):001:0> create 'scores','grade','course'

0 row(s) in 1.4480 seconds
=> Hbase::Table - scores
  • 步骤三:查看数据库状态
hbase (main) :001 :0> status

 1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load
  • 步骤四:查看数据库版本
hbase (main) :002:0> version

1.2.1,r8d8a7107dc4ccbf36a92f64675dc60392f85c015,Wed Mar 30 11:19:21 CDT 2016
  • 步骤五:查看表
hbase(main):008:0> list

TABLE
scores
1 row(s) in 0.0100 seconds
=>["scores"]
  • 步骤六:插入记录 1:jie,grade: 143cloud
hbase(main):003:0> put 'scores','jie','grade:','146cloud'

0 row(s) in 0.2250 seconds
  • 步骤七:插入记录 2:jie,course:math,86
hbase(main):004:0> put 'scores','jie','course:math','86'

0 row(s) in 0.0190 seconds
  • 步骤八:插入记录 3:jie,course:cloud,92
hbase(main):005:0> put 'scores','jie','course:cloud','92'

0 row(s) in 0.0170 seconds
  • 步骤九:插入记录 4:shi,grade:133soft
hbase(main):006:0> put 'scores','shi','grade:','133soft'

0 row(s) in 0.0070 seconds
  • 步骤十:插入记录 5:shi,grade:math,87
hbase(main):007:0> put 'scores','shi','course:math','87'

0 row(s) in 0.0060 seconds
  • 步骤十一:插入记录 6:shi,grade:cloud,96
hbase(main):008:0> put 'scores','shi','course:cloud','96'

0 row(s) in 0.0070 seconds
  • 步骤十二:读取 jie 的记录
hbase(main):009:0> get 'scores','jie'

COLUMN 			CELL
course:cloud timestamp=1460479208148, value=92
course:math timestamp=1460479163325,value=86
grade: timestamp=1460479064086,value=146cloud
3 row(s) in 0.0800 seconds
  • 步骤十三:读取 jie 的班级
hbase(main):012:0> get 'scores','jie','grade'

COLUMN  CELL
grade: timestamp=1460479064086,value=146cloud
1 row( s) in 0.0150 seconds
  • 步骤十四:查看整个表记录
hbase(main):013:0> scan 'scores'

ROW 	COLUMN+CELL
jie column=course:cloud, timestamp=1460479208148,value=92
jie column-course:math, timestamp=1460479163325, value=86
jie column=grade:,timestamp=1460479064086,value=146cloud
shi column=course:cloud, timestamp=1460479342925,value=96
shi column=course:math, timestamp=1460479312963,value=87
shi column=grade:,timestamp=1460479257429, value=133soft
2 row(s) in 0.0570 seconds
  • 步骤十五:按例查看表记录
hbase(main):014:0> scan 'scores',{COLUMNS=>'course'}

ROW 	COLUMN+CELL
jie column=course:cloud, timestamp=1460479208148, value=92
jie column=course:math, timestamp=1460479163325, value=86
shi column=course:cloud, timestamp=1460479342925, value=96
shi column=course:math, times tamp=1460479312963, value=87
2 row(s) in 0. 0230 seconds
  • 步骤十六:删除指定记录
hbase(main):015:0> delete 'scores','shi','grade'

0 row(s) in 0.0390 seconds
  • 步骤十七:删除后,执行scan命令
hbase(main):016:0> scan 'scores'

ROW 	COLUMN+CELL
jie column=course:cloud, timestamp=1460479208148, value=92
jie column=course:math, timestamp=1460479163325, value=86
jie column=grade:, timestamp=1460479064086, value=146cloud
shi column=course:cloud, timestamp=1460479342925, value=96
shi column=course:math, timestamp=1460479312963, value=87
row( s) in 0. 0350 seconds
  • 步骤十八:增加新的列簇
hbase(main):017:0> alter 'scores',NAME=>'age'

Updating all regions with the new schema...
0/ 1 regions updated.
1/ 1 regions updated.
Done.
0 row(s) in 3.0060 seconds
  • 步骤十九:查看表结构
hbase(main):018:0> describe 'scores'

Table scores is ENABLED
scores
COLUMN FAMIL IES DESCRIPTION
{NAME => age',BL O0MFILTER =>ROW',VERSIONS => '1' ,IN_ MEMORY
=> 'false', KEEP DELETED_ CELLS =>FAL SE',DATA BLOCK ENCODING =>
NONETTL => ' FOREVER', COMPRESSION=>NONE',MIN VERSIONS => '0' ,
BLOCKCACHE => ' true BLOCKSIZE =>65536',REPLICATION_ SCOPE =>
'0'}
{NAME =>course,BLOOMFILTER => ' ROW', VERSIONS =>IN MEMORY =>
false', KEEPDELETED CELLS =>FALSE', DATA BLOCK ENCODING =>
1 NONE',TTL =>FOREVER',COMPRESSION =>NONE',MIN VERSIONS => '0'
BLOCKCACHE => 'true' ,BLOCKSIZE =>65536',REPLICATION SCOPE
=>0'}{NAME => grade BLOOMFILTER => 'ROW' ,VERSIONS =>IN_ MEMORY =>
' false', KEEPDELETED CELLS =>FALSE',DATA BLOCK ENCODING =>1 NONE
'TTL =>FOREVER',COMPRESSION =>NONE',MIN VERSIONS => '0'
BLOCKCACHE => 'true' ,BLOCKSIZE => '65536 ,REPLICATION SCOPE
=> '0'}
3 row(s) in 0.0400 seconds
  • 步骤二十:删除列簇
hbase(main):020:0> alter 'scores',NAME=>'age',METHOD=>'delete'

Updating all regions with the new schema…
1/ 1 regions updated.
Done.
0 row(s)in 2.1600seconds
  • 步骤二十一:删除表
hbase(main):021:0> disable 'scores'

0 row(s)in 2.2930seconds

hbase(main):022:0> drop 'scores'

0 row(s)in 1.2530seconds

hbase( main) :023:0> list

TABLE
0 row(s)in 0.0150 seconds
==>[]
  • 步骤二十二:退出
hbase(main):024:0> quit

[hadoop@master ~]$
  • 步骤二十三:关闭 HBase
#在 master节点关闭 HBase
[hadoop@master ~]$ stop-hbase.sh #在所有节点关闭 ZooKeeper
[hadoop@master ~]$ zkServer.sh stop
[hadoop@slave1 ~]$ zkServer.sh stop
[hadoop@slave2 ~]$ zkServer.sh stop #在 master节点关闭 Hadoop
[hadoop@master ~]$ stop-all.sh

注意:各节点之间时间必须同步,否则 HBase启动不了

在每个节点执行 date命令,查看每个节点的时间是否同步,不同步的话,在各节点执行 date命令,date -s "2022-04-15 12:00:00"

HBase 安装与配置及常用Shell命令的更多相关文章

  1. 原 HBase 常用Shell命令

    HBase 常用Shell命令 1.进入hbase shell console $HBASE_HOME/bin/hbase shell 如果有kerberos认证,需要事先使用相应的keytab进行一 ...

  2. Windows常用shell命令大全

    Windows常用shell命令大全 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而非鼠 ...

  3. Ubuntu常用shell命令

    目录 ls cd mkdir mv cp scp rm df du chmod chown chgrp head tail screen apt-get Ubuntu常用shell命令 Ubuntu作 ...

  4. Windows常用shell命令大全(转)

    [Windows常用shell命令大全] 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而 ...

  5. Linux Shell常用shell命令

    Linux Shell常用shell命令 一.文件.目录操作命令 1.ls命令 功能:显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示 ...

  6. hbase安装与配置-分布式

    HBASE安装与配置 备注: 1:本文在hadoop的完全分布式基础上部署hbase 2:本文使用的是小博主自己搭建的zookpeer服务,未使用hbase本身的zookpeer服务 本文内容在以下前 ...

  7. (转)HBase 常用Shell命令

    转自:http://my.oschina.net/u/189445/blog/595232 hbase shell命令                             描述  alter 修改 ...

  8. 快速掌握mongoDB(一)——mongoDB安装部署和常用shell命令

    1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...

  9. mongoDB(一)——mongoDB安装部署和常用shell命令

    1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...

随机推荐

  1. 怎么理解相互独立事件?真的是没有任何关系的事件吗?《考研概率论学习之我见》 -by zobol

    1.从条件概率的定义来看独立事件的定义 2.从古典概率的定义来看独立事件的定义 3.P(A|B)和P(A)的关系是什么? 4.由P(AB)=P(A)P(B)推出"独立" 5.从韦恩 ...

  2. 眼球3D可视化解决方案——案例详解

    医疗器械行业伴随着人类健康需求的增长而不断发展,是名副其实的朝阳行业,也是全球发达国家竞相争夺的领域. 一方面,行业门槛高,集中度低,外资企业挤占市场空间成了我国所有医疗器械行业入局者面临的共同挑战. ...

  3. 开启网易邮箱客户端授权码-POP/SMTP/IMAP

    打开网易邮箱首页 https://mail.163.com/ 登录邮箱. 点击上方设置,选择POP/SMTP/IMAP选项. 选择开启对应的协议,IMAP或者POP3分别为不同的收信协议 在新弹出的弹 ...

  4. k8s动态存储管理GlusterFS

    1. 在node上安装Gluster客户端(Heketi要求GlusterFS集群至少有三个节点) 删除master标签 kubectl taint nodes --all node-role.kub ...

  5. SQL语句的整理

    mysql语句的整理 1.SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法.但是 SQ ...

  6. 交替方向乘子法(Alternating Direction Multiplier Method,ADMM)

    交替方向乘子法(Alternating Direction Multiplier Method,ADMM)是一种求解具有可分结构的凸优化问题的重要方法,其最早由Gabay和Mercier于1967年提 ...

  7. throws关键字_异常处理的第一种方式(交给别人处理)和try_catch_异常处理的第二种方式(自己处理)

    throws关键字:异常处理的第一种方式,交给别人处理 作用: 当方法内部抛出异常对象的时候,那么我们就必须处理这个异常对象 可以使用throws关键字处理异常对象, 会把异常对象声明抛出给方法的调用 ...

  8. springboot connecting to :mongodb://127.0..0.1:27017/test authentication failed

    账号的权限不够,可能是insert进去的脚本的角色有问题 use admin db.createUser({user:'账号',pwd:'密码',roles:[{role:'userAdminAnyD ...

  9. ASP.NET Core 6.0 基于模型验证的数据验证

    1 前言 在程序中,需要进行数据验证的场景经常存在,且数据验证是有必要的.前端进行数据验证,主要是为了减少服务器请求压力,和提高用户体验:后端进行数据验证,主要是为了保证数据的正确性,保证系统的健壮性 ...

  10. CF1656D K-good

    题意: 给定一个整数 \(n\),请找出一个大于等于 \(2\) 的整数 \(k\),使得 \(n\) 可以表示成 \(k\) 个除以 \(k\) 的余数互不相同的数之和. 注意\(k\)个除以 \( ...