首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >HBase的部署

HBase的部署

作者头像
羊羽shine
发布于 2019-09-24 04:27:35
发布于 2019-09-24 04:27:35
70200
代码可运行
举报
文章被收录于专栏:Golang开发Golang开发
运行总次数:0
代码可运行

HBase的部署方式包括:

部署模式

说明

单机模式

常用于本地开发

伪集群模式

使用HBase自带的zookeeper

集群模式

使用HBase自带的zookeeper

集群模式

单独安装zookeeper

HBase的安装

本文的HBase安装是在Hadoop已经安装好的基础上实现的,所以之前要导出JAVA_HOME、HADOOP_HOME( 单机模式不需要,伪分布式模式和分布式模式需要)等环境变量以及配置好SSH互信等。 0 公共配置 导出HBase的环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export HBASE_HOME=/root/software/hbase-1.2.1
export PATH=$PATH:$HBASE_HOME/bin

查看hbase版本 : hbase version

单机模式

配置hbase-env.sh 在hbase-env.sh添加如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HBASE_MANAGES_ZK=true 

说明:其中HBASE_MANAGES_ZK=true,表示由hbase自己管理zookeeper,不需要单独的zookeeper,HBASE_MANAGES_ZK=false则表示使用独立部署的zookeeper。 配置hbase-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///data/hbase</value>
    </property>
</configuration>

说明:hbase.rootdir,用于指定HBase数据的存储位置,因为如果不设置的话,hbase.rootdir默认为/tmp/hbase-${user.name},这意味着每次重启系统都会丢失数据。此配置中HBase直接使用默认的文件系统。 启动和停止

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HBASE_HOME/bin/start-hbase.sh
$HBASE_HOME/bin/stop-hbase.sh

伪集群模式

配置hbase-env.sh 在hbase-env.sh添加如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export JAVA_HOME=$JAVA_HOME
export HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop
export HBASE_MANAGES_ZK=true 

HBASE_MANAGES_ZK=true,表示由hbase自己管理zookeeper,不需要单独的部署zookeeper。 export HBASE_CLASSPATH="", 表示使用hdfs作为HBase的储存。

配置hbase-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:8020/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
</configuration>

说明:

base.rootdir,用于指定HBase数据的存储位置,此时已经使用了hdfs。 hbase.cluster.distributed设置集群处于分布式模式;

启动和停止 启动(包括启动hdfs和hbase)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HBASE_HOME/sbin/start-dfs.sh
$HBASE_HOME/bin/start-hbase.sh

停止(包括停止hbase和hdfs)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HBASE_HOME/bin/stop-hbase.sh
$HBASE_HOME/sbin/stop-dfs.sh

集群模式(使用hbase自带的zookeeper)

配置hbase-env.sh 在hbase-env.sh添加如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export JAVA_HOME=$JAVA_HOME
export HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop
export HBASE_MANAGES_ZK=true

HBASE_MANAGES_ZK=true,表示使用hbase自带的zookeeper。

配置hbase-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:8020/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>master:6000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>slave1:2181,slave2:2181,slave3:2181</value>
    </property>
    <property>
        <name>zookeeper.znode.parent</name>
        <value>/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.property</name>
        <value>/data/zookeeper/data</value>
    </property>
</configuration>

说明:

base.rootdir 用于指定HBase数据的存储位置; hbase.cluster.distributed 设置集群处于分布式模式; hbase.master 指定hbase的hmaster的主机名和端口 ; hbase.zookeeper.quorum 指定使用zookeeper的主机地址,必须是奇数个; hbase.zookeeper.property 指定zookeeper数据存储目录,默认路径是/tmp,如果不配置,重启之后数据将被清空。

配置regionservers 在regionservers文件中添加HBase的slave节点,类似hadoop中的slaves,一行一个。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
slave1
slave2
slave3

启动和停止 启动(包括启动hdfs和hbase)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HBASE_HOME/sbin/start-dfs.sh
$HBASE_HOME/bin/start-hbase.sh

停止(包括停止hbase和hdfs)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HBASE_HOME/bin/stop-hbase.sh
$HBASE_HOME/sbin/stop-dfs.sh

HBase启动成功之后:

master节点上的进程有:HMaster slave节点上的进程有:HRegionServer、HQuorumPerr

集群模式(单独安装zookeeper)

安装zookeeper zookeeper的下载和解压这里不赘述,直接开始zookeeper集群的配置。 首先,导出zookeeper环境编辑,添加如下内容到~/.bash_profile中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export ZOOKEEPER_HOME=/root/software/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

解压zookeeper之后,进入conf目录,拷贝生成zoo.cfg cp zoo_sample.cfg zoo.cfg

配置zoo.cfg。在zoo.cfg中添加如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clientPort=2181
dataDir=/data/zookeeper/zk_data
server.1=master:2888:3888
server.2=slave2:2888:3888
server.3=slave3:2888:3888

说明::第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888。 分发解压的zookeeper到slave2、slave3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp -r /root/software/zookeeper-3.4.10 slave2:/root/software/zookeeper-3.4.10
scp -r /root/software/zookeeper-3.4.10 slave3:/root/software/zookeeper-3.4.10

创建数据目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh root@master 'mkdir -p /data/zookeeper/zk_data'
ssh root@slave2 'mkdir -p /data/zookeeper/zk_data'
ssh root@slave3 'mkdir -p /data/zookeeper/zk_data'

写入myid

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh root@master  'echo 1 > /data/zookeeper/zk_data/myid'
ssh root@slave2  'echo 2 > /data/zookeeper/zk_data/myid'
ssh root@slave3  'echo 3 > /data/zookeeper/zk_data/myid'

注意:本文部署的zookeeper集群包含三个节点,分别是master、slave1、slave2。写入myid的值要和zoo.cfg中server后数值对应。 启动、停止、查看zookeeper状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh root@master   '/root/software/zookeeper-3.4.10/bin/zkServer.sh start'
ssh root@slave2   '/root/software/zookeeper-3.4.10/bin/zkServer.sh start'
ssh root@slave3   '/root/software/zookeeper-3.4.10/bin/zkServer.sh start'

ssh root@master   '/root/software/zookeeper-3.4.10/bin/zkServer.sh status'
ssh root@slave2   '/root/software/zookeeper-3.4.10/bin/zkServer.sh status'
ssh root@slave3  '/root/software/zookeeper-3.4.10/bin/zkServer.sh status'

ssh root@master   '/root/software/zookeeper-3.4.10/bin/zkServer.sh stop'
ssh root@slave2   '/root/software/zookeeper-3.4.10/bin/zkServer.sh stop'
ssh root@slave3   '/root/software/zookeeper-3.4.10/bin/zkServer.sh stop'

配置hbase-env.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export JAVA_HOME=$JAVA_HOME
export HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop
export HBASE_MANAGES_ZK=false 

其中HBASE_MANAGES_ZK=false,表示不使用hbase自带的zookeeper,而使用独立部署的zookeeper。 配置hbase-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:8020/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>master:6000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>slave1:2181,slave2:2181,slave3:2181</value>
    </property>
    <property>
        <name>zookeeper.znode.parent</name>
        <value>/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.property</name>
        <value>/data/zookeeper/data</value>
    </property>
</configuration>

说明:

base.rootdir 用于指定HBase数据的存储位置; hbase.cluster.distributed 设置集群处于分布式模式; hbase.master 指定hbase的hmaster的主机名和端口 ; hbase.zookeeper.quorum 指定使用zookeeper的主机地址,必须是奇数个; hbase.zookeeper.property 指定zookeeper数据存储目录,默认路径是/tmp,如果不配置,重启之后数据将被清空。

配置regionservers 在regionservers文件中添加HBase的slave节点,类似hadoop中的slaves,一行一个。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
slave1
slave2
slave3

启动和停止 先启动zookeeper,参考上述“启动、停止、查看zookeeper状态”。 启动(包括启动hdfs和hbase)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HBASE_HOME/sbin/start-dfs.sh
$HBASE_HOME/bin/start-hbase.sh

停止(包括停止hbase和hdfs)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$HBASE_HOME/bin/stop-hbase.sh
$HBASE_HOME/sbin/stop-dfs.sh

HBase启动成功之后: master节点上的进程有:HMaster、QuorumPeerMain slave节点上的进程有:HRegionServer、QuorumPeerMain 说明:hbase的master节点和slave节点中都出现了QuorumPeerMain(就是zookeeper进程)而不是QuorumPeer进程,表示此时hbase使用的是独立的zookeeper。

HBase的操作

下面的操作主要是在hbase的shell中操作的,进入hbase shell

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hbase shell

创建表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create 'student','Sname','Ssex','Sage','Sdept','course'
create 'teacher',{NAME=>'username',VERSIONS=>5} // 创建表示指定保存的版本数

查看表详情

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
describe 'student'

显示所有的表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list

插入数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
put 'student','95001','Sname','LiYing'
put 'student','95001','Ssex','Male'
put 'student','95001','course:math','80'
put 'student','95001','course:english','90'

put 'student','95002','Sname','ZhangYiDa'
put 'student','95002','Ssex','Femal'
put 'student','95002','course:math','90'
put 'student','95002','course:english','70'

注意:一次只能为一个表的一行数据的一个列,也就是一个单元格添加一个数据,所以直接用shell命令插入数据效率很低,在实际应用中,一般都是利用编程操作数据。当运行命令:put ‘student’,’95001’,’Sname’,’LiYing’时,即为student表添加了学号为95001,名字为LiYing的一行数据,其行键为95001。 查询数据 HBase中有两个用于查看数据的命令: ① get命令,用于查看表的某一行数据; ② scan命令用于查看某个表的全部数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
get 'student','95001'
get 'student','95001','course'
get 'student','95001','course:math'

scan 'student'

删除数据 在HBase中用delete以及deleteall命令进行删除数据操作,它们的区别是: ① delete用于删除一个数据,是put的反向操作; ② deleteall操作用于删除一行数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delete 'student','95001','Ssex'
deleteall 'student','95001'

修改数据 在添加数据时,HBase会自动为添加的数据添加一个时间戳,故在需要修改数据时,只需直接添加数据,HBase即会生成一个新的版本,从而完成“改”操作,旧的版本依旧保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。下面是一个操作的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hbase(main):034:0> get 'student','95001'
COLUMN                             CELL                                                                                               
 Sname:                            timestamp=1537497681798, value=LiYing                                                              
 Ssex:                             timestamp=1537497682400, value=Male                                                                
 course:english                    timestamp=1537497872225, value=90                                                                  
 course:math                       timestamp=1537497681859, value=80                                                                  
4 row(s) in 0.0310 seconds

hbase(main):035:0> put 'student','95001','course:english','100'
0 row(s) in 0.0130 seconds

hbase(main):036:0> get 'student','95001'
COLUMN                             CELL                                                                                               
 Sname:                            timestamp=1537497681798, value=LiYing                                                              
 Ssex:                             timestamp=1537497682400, value=Male                                                                
 course:english                    timestamp=1537498062541, value=100                                                                 
 course:math                       timestamp=1537497681859, value=80                                                                  
4 row(s) in 0.0130 seconds

删除表 删除表有两步,第一步先让该表不可用,第二步删除表。直接drop未disable的表会失败。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
disable 'student'
drop 'student'

查询历史的表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create 'teacher',{NAME=>'username',VERSIONS=>5}

put 'teacher','91001','username','Mary'
put 'teacher','91001','username','Mary1'
put 'teacher','91001','username','Mary2'
put 'teacher','91001','username','Mary3'
put 'teacher','91001','username','Mary4'  
put 'teacher','91001','username','Mary5'

get 'teacher','91001',{COLUMN=>'username',VERSIONS=>5}

hbase(main):064:0> get 'teacher','91001',{COLUMN=>'username',VERSIONS=>5}
COLUMN                             CELL                                                                                               
 username:                         timestamp=1537498459746, value=Mary5                                                               
 username:                         timestamp=1537498455244, value=Mary4                                                               
 username:                         timestamp=1537498455193, value=Mary3                                                               
 username:                         timestamp=1537498455174, value=Mary2                                                               
 username:                         timestamp=1537498455149, value=Mary1                                                               
5 row(s) in 0.0110 seconds

退出hbase

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exit
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.09.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hbase(三)Hbase安装配置
​ 修改conf/hbase-site.xml,配置hbase使用的数据文件的位置,默认在/tmp/hbase-[username],此目录是linux的临时目录,可能会被系统清空,所以最好修改一下
许喜朝
2020/11/24
2.3K0
Hbase 安装配置实验
一、实验环境 3台CentOS release 6.4虚拟机,IP地址为 192.168.56.101 master 192.168.56.102 slave1 192.168.56.103 slave2 hadoop 2.7.2 hbase 1.2.1 hbase与hadoop的版本兼容性,参考 http://hbase.apache.org/book.html#basic.prerequisites 二、安装hadoop集群 hadoop 2.7.2 安装,参考 http://blog.csdn.net/wzy0623/article/details/50681554 三、安装配置hbase 1. 加压缩 tar -zxvf hbase-1.2.1-bin.tar.gz 2. 建立软连接 ln -s hbase-1.2.1 hbase 3. 修改三个配置文件 cd hbase/conf vi hbase-env.sh # 添加以下内容
用户1148526
2022/05/07
4480
Hbase 安装配置实验
快速学习-HBase安装
提示:如果集群之间的节点时间不同步,会导致regionserver无法启动,抛出ClockOutOfSyncException异常。 修复提示: a、同步时间服务 请参看帮助文档:《尚硅谷大数据技术之Hadoop入门》 b、属性:hbase.master.maxclockskew设置更大的值
cwl_java
2020/02/21
7550
Hbase集群部署计划---安装系列四
tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C /itcast/
Dlimeng
2023/06/29
1750
【Hbase】部署安装
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
Xiongan-桃子
2023/06/10
3690
【Hbase】部署安装
HBase集群部署指南
HBase是一个分布式的、面向列的开源数据库。 HBase在Hadoop之上提供了类似于Google Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。 https://baike.baidu.com/item/HBase
KenTalk
2018/09/11
5.1K0
HBase集群部署指南
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境详解
ZooKeeper可以独立搭建集群,HBase本身不能独立搭建集群需要和Hadoop和HDFS整合。
星哥玩云
2022/07/13
5870
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境详解
【大数据技术基础 | 实验七】HBase实验:部署HBase
简介:HBase是基于Hadoop的开源分布式数据库,它以Google的BigTable为原型,设计并实现了具有高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统,它是基于列而不是基于行的模式,适合存储非结构化数据。
Francek Chen
2025/01/22
3930
【大数据技术基础 | 实验七】HBase实验:部署HBase
Hadoop学习笔记—15.HBase框架学习(基础实践篇)
  伪分布模式安装即在一台计算机上部署HBase的各个角色,HMaster、HRegionServer以及ZooKeeper都在一台计算机上来模拟。
Edison Zhou
2018/08/20
5000
Hadoop学习笔记—15.HBase框架学习(基础实践篇)
Hbase2.5.5分布式部署安装记录
Hadoop11:Hadoop3.1.4 、 zookeeper3.4.6、jdk8 Hadoop12:Hadoop3.1.4 、 zookeeper3.4.6、jdk8 Hadoop13:Hadoop3.1.4 、 zookeeper3.4.6、jdk8
火之高兴
2024/07/25
3110
Hbase2.5.5分布式部署安装记录
Docker下HBase学习,三部曲之二:集群HBase搭建
本文介绍了如何在Docker中搭建集群环境,并使用Hadoop和HBase进行实战演示。包括详细的搭建过程、配置和启动HDFS、HBase、Zookeeper等组件,以及使用Docker Compose一键启动所有服务。同时,还介绍了如何基于Zookeeper进行分布式协调,以及如何使用HBase Shell进行操作。
程序员欣宸
2018/01/04
2.3K0
Docker下HBase学习,三部曲之二:集群HBase搭建
Hbase完全分布式集群搭建
---- 环境准备 服务器集群 我用的CentOS-6.6版本的4个虚拟机,主机名为hadoop01、hadoop02、hadoop03、hadoop04,另外我会使用hadoop用户搭建集群(生产环境中root用户不是可以任意使用的) 关于虚拟机的安装可以参考以下两篇文章: 在Windows中安装一台Linux虚拟机 通过已有的虚拟机克隆四台虚拟机 服务器集群中已经搭建了hadoop集群(完全分布式和HA集群都可以) 参考 Hadoop完全分布式集群搭建 Hadoop高可用(HA)集群
CoderJed
2018/09/13
2.9K0
Hbase完全分布式集群搭建
hbase+opentsdb 单机版搭建
cd /root/ tar xf zookeeper-3.4.8.tar.gz -C ./ mv zookeeper-3.4.8 /opt/zk
保持热爱奔赴山海
2019/09/18
1.7K1
hbase+opentsdb 单机版搭建
Linux巩固记录(7) Hbase安装
接下来依次启动hadoop-》zookeeper(每个几点要分别启动)-》hbase
肖哥哥
2018/08/02
7520
hbase 2.2.3 ZooKeeper cluster setup on linux
follow all steps in hadoop-3.1.3 cluster setup on linux
esse LL
2023/11/11
4571
001.hadoop及hbase部署
#下载官方地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/
木二
2019/07/26
9490
001.hadoop及hbase部署
HBase集群环境配置
这里搭建一个 3 节点的 HBase 集群,其中三台主机上均为 Region Server。同时为了保证高可用,除了在 hadoop001 上部署主 Master 服务外,还在 hadoop002 上部署备用的 Master 服务。Master 服务由 Zookeeper 集群进行协调管理,如果主 Master 不可用,则备用 Master 会成为新的主 Master。
每天进步一点点
2022/07/27
7520
HBase集群环境配置
hbase_学习_01_HBase环境搭建(单机)
本文承接上一篇:hadoop_学习_02_Hadoop环境搭建(单机)  ,主要是搭建HBase的单机环境
shirayner
2018/08/10
7271
hbase_学习_01_HBase环境搭建(单机)
Opentsdb安装部署(单机版)
opentsdb是基于Hbase的时序数据库[时间序列数据库]。不具备通用性,主要针对具有时间特性和需求的数据,如监控数据、温度变化数据等。opentsdb说是数据库,但并不能称作为数据库,他是在Hbase(HBase才是具有存储功能的)的基础上,进行数据结构的优化和处理,从而适合存储具有时间特性的数据,同时提供特定的工具进行查询等操作。
子润先生
2021/07/09
1.6K0
[喵咪大数据]Hbase搭建和基本使用
[喵咪大数据]Hbase搭建和基本使用 说完了Hive我们接着来看另外一个建立在Hadoop基础上的存储引擎HBase,HBase以内存作为缓存数据落地到HDFS的Key-Value数据库,因为使用内
喵了个咪233
2018/03/02
1.9K0
[喵咪大数据]Hbase搭建和基本使用
相关推荐
Hbase(三)Hbase安装配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档