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. java程序使用ssl证书连接mysql

    1. 在mysql服务器上生成证书 openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ...

  2. sql-DQL-多表联查

    多表查询 笛卡尔积 左表的每条数据和右表的每条数据组合,这种效果称为笛卡尔乘积 select * from emp, dept; 笛卡尔积引入了很多无用的数据,要完成多表查询,需要设置过滤条件来消除无 ...

  3. Python列表解析式的正确使用方式

    先来逼逼两句: Python 是一种极其多样化和强大的编程语言!当需要解决一个问题时,它有着不同的方法.在本文中,将会展示列表解析式 (List Comprehension).我们将讨论如何使用它?什 ...

  4. labview从入门到出家7(进阶篇)--队列的使用

    本节简单讲解队列在Labview中的使用,队列你可以认为就是一组先进先出的数据列表,在Labview中常用来缓存和传递数据.用了这么久的队列,个人认为有个方便的地方在于数据传递的把控,不管是局部变量还 ...

  5. 常用的Linux命令和Git的必要配置

    常用的Linux命令平时一定要多使用这些基础的命令! 1.cd : 改变目录. 2.cd . . 回退到上一个目录,直接cd进入默认目录 3.pwd : 显示当前所在的目录路径. 4.ls(ll): ...

  6. jupyter 反向代理配置

    抓了下包,看了一下WS连不上,参考这个,问题解决 location / { proxy_pass http://127.0.0.1:8813/; # JUPYTER_PORT 为 Jupyter 运行 ...

  7. IDEA快捷键之html篇-1

      前端IDE中Emmet插件快捷输入HTML代码 前端IDE如VSCode.Atom.Sublime Text和Intellij Idea中使用Emmet插件快捷输入HTML代码的介绍 前端IDE中 ...

  8. Kafka入门实战教程(7):Kafka Streams

    1 关于流处理 流处理平台(Streaming Systems)是处理无限数据集(Unbounded Dataset)的数据处理引擎,而流处理是与批处理(Batch Processing)相对应的.所 ...

  9. 编程技巧│超实用 nginx 中常见的配置合集

    目录 封禁 IP 仅开放内网 负载均衡 列出文件列表 路由转发 开启 gzip 压缩 解决跨域 资源防盗链 Keepalived 提高吞吐量 HTTP 强制跳转 HTTPS 封禁 IP 通过 deny ...

  10. 【PMP学习笔记】第1章 PMP体系引论

    一.什么是项目? 项目是为创造独特的产品.服务或成果而进行的临时性工作. 项目管理是把事办成的方法论,万物皆可项目. 项目的特性 临时性:有明确的"起"和"止" ...