大数据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'

相关推荐
ManageEngineITSM18 分钟前
从混乱到秩序:IT服务管理如何重塑企业运营效率
大数据·人工智能·程序人生·职场和发展·itsm
青云交1 小时前
Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网数据管理与边缘计算协同中的创新实践(364)
java·大数据·边缘计算·工业互联网·分布式存储·paxos·数据协同
数据爬坡ing2 小时前
软件工程之可行性研究:从理论到实践的全面解析
大数据·流程图·软件工程·可用性测试
晴天彩虹雨3 小时前
统一调度与编排:构建自动化数据驱动平台
大数据·运维·数据仓库·自动化·big data·etl
SelectDB6 小时前
浩瀚深度:从 ClickHouse 到 Doris,支撑单表 13PB、534 万亿行的超大规模数据分析场景
大数据·数据库·apache
SelectDB6 小时前
公开免费!Apache Doris & SelectDB 培训与认证课程正式上线
大数据·数据库·apache
mykyle6 小时前
Elasticsearch-8.17.0 centos7安装
大数据·elasticsearch·jenkins
大视码垛机6 小时前
协作机器人掀起工厂革命:码垛场景如何用数据重塑制造业命脉?
大数据·数据库·人工智能
StarRocks_labs7 小时前
Lakehouse x AI ,打造智能 BI 新体验
大数据·starrocks·人工智能·iceberg·lakehouse·智能bi·湖仓分析
码字的字节7 小时前
深入解析Hadoop高频面试题:HDFS读/写流程的RPC调用链
hadoop·hdfs·rpc