大数据Hadoop之——Hbase下载安装部署

一、前期准备

1、Hadoop集群安装

传送门

2、Zookeeper安装

传送门

二、Hbase的环境搭建

1、Hbase的下载安装

1.1. 下载

https://archive.apache.org/dist/hbase/2.4.11/

​下载 hbase-2.4.11-bin.tar.gz 安装包

1.2 上传

使用xshell上传到指定安装路径

此处是安装路径是**/opt/** module

​​​

1.3 解压重命名

tar -xzvf hbase-2.4.11-bin.tar.gz

mv hbase-2.4.11-bin hbase

​​​

1.4 配置环境变量

vi /etc/profile

export JAVA_HOME=/opt/module/java

export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar

export HBASE_HOME=/opt/module/hbase

export PATH=PATH**:** JAVA_HOME/bin**:**$HBASE_HOME/bin

1.5 加载环境变量

source /etc/profile

验证环境变量是否生效:

env | grep HOME

env | grep PATH

2、配置文件设置

2.1. 配置 hbase-env.sh

修改内容,可以添加到最后:不用habase自带的zookeeper

vi /opt/module/hbase/conf/hbase-env.sh

export JAVA_HOME=/opt/module/java

export HBASE_MANAGES_ZK=false

2.2. 配置 hbase-site.xml

vi /opt/module/hbase/conf/hbase-site.xml

XML 复制代码
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <!-- 使用 安装好的Zookeeper 指定地址-->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop001,hadoop002,hadoop003</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>

<!--    <property>-->
<!--        <name>hbase.zookeeper.property.dataDir</name>-->
<!--        <value>/export/zookeeper</value>-->
<!--        <description> 记得修改ZK的配置文件 -->
<!--            ZK的信息不能保存到临时文件夹-->
<!--        </description>-->
<!--    </property>-->

  <!-- 指定 Hbase 在 HDFS 上的存储路径 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop001:9000/hbase</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>

  <!-- Hbase是否部署为集群模式-->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

</configuration>

2.3. 配置 regionservers

**vi /opt/module/hbase/conf/**regionservers

hadoop001

hadoop002

hadoop003

3、删除jar包

解决HBase和Hadoop的log4j兼容性(冲突)问题,修改HBase的jar包,使用Hadoop的jar包。

rm -rf /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar

或重命名

mv /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak

4、分发文件

scp -r /etc/profile root@hadoop002:/etc/profile

scp -r /etc/profile root@hadoop003:/etc/profile

scp -r /opt/module/hbase root@hadoop002:/opt/module/hbase

scp -r /opt/module/hbase root@hadoop003:/opt/module/hbase

让三台机器文件生效

ssh hadoop001 "source /etc/profile"

ssh hadoop002 "source /etc/profile"

ssh hadoop003 "source /etc/profile"

5、Hbase启动

5.1.启动zookeer与Hadoop

/usr/bin/zkall.sh

cd /opt/module/hadoop

sbin/start-all.sh

5.1.单点启动(了解)

cd /opt/module/hbase

bin/hbase-daemon.sh start master

bin/hbase-daemon.sh start regionserver

5.2.群启

cd /opt/module/hbase

bin/start-hbase.sh

5.3.对应的停止服务

cd /opt/module/hbase

bin/stop-hbase.sh

6、Hbase高可用(可选)

在HBase中HMaster负责监控HRegionServer的生命周期,均衡RegionServer的负载,如果HMaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对HMaster的高可用配置。

6.1.关闭HBase集群(如果没有开启则跳过此步)

cd /opt/module/hbase

bin/stop-hbase.sh

6.2.创建backup-masters文件、

在conf目录下创建backup-masters文件

touch $HBASE_HOME/conf/backup-masters

6.3.配置高可用HMaster节点

在backup-masters文件中配置高可用HMaster节点,将hadoop002作为master备用节点

echo hadoop002 > $HBASE_HOME/conf/backup-masters/conf/backup-masters

6.4.文件分发

将整个conf目录scp到其他节点

scp -r HBASE_HOME/conf root@**hadoop002**:/HBASE_HOME/conf

scp -r HBASE_HOME/conf root@**hadoop003**:/HBASE_HOME/conf

6.5.重启hbase,打开页面测试查看

cd /opt/module/hbase

bin/start-hbase.sh

http://hadooo002:16010

三、Hbase的基本命令

1、基本操作

1)进入HBase客户端命令行

cd /opt/module/hbase

bin/hbase shell

2)查看帮助命令

hbase:001:0> help

3)创建命名空间

hbase:002:0> help 'create_namespace'

4)创建命名空间bigdata

hbase:003:0> create_namespace 'bigdata'

5)查看所有的命名空间

hbase:004:0> list_namespace

2、DDL操作

1)创建表

(1)直接指定表名、列族、版本数据

创建表格student,2个列族info和msg。info列族数据维护的版本数为5个,如果不写默认版本数为1。

create 'bigdata:student', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}

(2)不指定表名

如果创建表格只有一个列族,没有列族属性,可以简写。

如果不写命名空间,使用默认的命名空间default。

create 'student1','info'

2)查看表

(1)查看所有列表名称

hbase:013:0> list

(2)查看表的详细信息

hbase:014:0> describe 'student1'

hbase:014:0> describe 'bigdata:student'

3)修改表

表名创建时写的所有和列族相关的信息,都可以后续通过alter修改,包括增加删除列族。

(1)增加列族和修改信息都使用覆盖的方法

hbase:015:0> alter 'student1', {NAME => 'f1', VERSIONS => 3}

(2)删除信息使用特殊的语法

hbase:015:0> alter 'student1', NAME => 'f1', METHOD => 'delete'

hbase:016:0> alter 'student1', 'delete' => 'f1

4)删除表

shell中删除表格,需要先将表格状态设置为不可用

hbase:017:0> disable 'student1'

hbase:018:0> drop 'student1'

3、DML

1)写入数据

hbase:019:0> put 'bigdata:student','1001','info:name','zhangsan'

hbase:020:0> put 'bigdata:student','1001','info:name','lisi'

hbase:021:0> put 'bigdata:student','1001','info:age','18'

在HBase中如果想要写入数据,只能添加结构中最底层的cell。可以手动写入时间戳指定cell的版本,推荐不写默认使用当前的系统时间。

如果重复写入相同rowKey,相同列的数据,会写入多个版本进行覆盖。

2)读取数据

读取数据的方法有两个:get和scan。

(1)get最大范围是一行数据,也可以进行列的过滤,读取数据的结果为多行cell。

也可以修改读取cell的版本数,默认读取一个。

最多能够读取当前列族设置的维护版本数。

hbase:022:0> get 'bigdata:student','1001'

hbase:023:0> get 'bigdata:student','1001' , {COLUMN => 'info:name'}

hbase:024:0> get 'bigdata:student','1001' , {COLUMN => 'info:name', VERSIONS => 6}

(2)scan是扫描数据,能够读取多行数据,不建议扫描过多的数据,

推荐使用startRow和stopRow来控制读取的数据,默认范围左闭右开。

hbase:025:0> scan 'bigdata:student',{STARTROW => '1001',STOPROW => '1002'}

3)删除数据

删除数据的方法有两个:delete和deleteall。

(1)delete表示删除一个版本的数据,即为1个cell,不填写版本默认删除最新的一个版本。

hbase:026:0> delete 'bigdata:student','1001','info:name'

(2)deleteall表示删除所有版本的数据,即为当前行当前列的多个cell。

(执行命令会标记数据为要删除,不会直接将数据彻底删除,删除数据只在特定时期清理磁盘时进行)

hbase:027:0> deleteall 'bigdata:student','1001','info:name'

相关推荐
FF-Studio2 小时前
【硬核数学】3. AI如何应对不确定性?概率论为模型注入“灵魂”《从零构建机器学习、深度学习到LLM的数学认知》
大数据·人工智能·深度学习·机器学习·数学建模·自然语言处理·概率论
嘉讯科技HIS系统4 小时前
嘉讯科技:医疗信息化、数字化、智能化三者之间的关系和区别
大数据·数据库·人工智能·科技·智慧医疗
lifallen5 小时前
Paimon vs. HBase:全链路开销对比
java·大数据·数据结构·数据库·算法·flink·hbase
viperrrrrrrrrr75 小时前
大数据(1)-hdfs&hbase
大数据·hdfs·hbase
拓端研究室7 小时前
专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
大数据·人工智能
武子康7 小时前
大数据-30 ZooKeeper Java-API 监听节点 创建、删除节点
大数据·后端·zookeeper
王小王-1237 小时前
基于Hadoop的餐饮大数据分析系统的设计与实现
hive·hadoop·flask·sqoop·pyecharts·hadoop餐饮大数据分析·hadoop美食数据分析
小手WA凉7 小时前
Hadoop之MapReduce
大数据·mapreduce
AgeClub8 小时前
服务600+养老社区,Rendever如何通过“VR+养老”缓解老年孤独?
大数据·人工智能