当前位置: 首页 > news >正文

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

http://www.dtcms.com/a/264902.html

相关文章:

  • CSS外边距合并(塌陷)全解析:原理、场景与解决方案
  • OD 算法题 B卷【求最小步数】
  • 计算机视觉的新浪潮:扩散模型(Diffusion Models)技术剖析与应用前景
  • 360安全卫士占用5037端口(ADB端口)解决方案
  • 【小技巧】Python+PyCharm IDE 配置解释器出错,环境配置不完整或不兼容。(小智AI、MCP、聚合数据、实时新闻查询、NBA赛事查询)
  • 智慧赋能高压并网:分布式光伏监控系统在5.88MW物流园项目的实践解析
  • 深入解析 OPC UA:工业自动化与物联网的关键技术
  • css实现优惠券效果 全
  • DAY 45 通道注意力(SE注意力)
  • langchain从入门到精通(三十四)——RAG优化策略(十)父文档检索器实现拆分和存储平衡
  • JavaFX:属性Property简介
  • 集合-二叉搜索树
  • 【在 C# 中通过 P/Invoke 调用 C++ DLL 时的数据类型转换】
  • 第二章-AIGC入门-文本生成:开启内容创作新纪元(4/36)
  • 字典课后练习讲解|5类数据容器的总结对比
  • 存储过程封装:复杂业务逻辑的性能优化
  • AntV L7 之LarkMap 地图
  • A模块 系统与网络安全 第三门课 网络通信原理-4
  • Notion 创始人 Ivan Zhao:传统软件开发是造桥,AI 开发更像酿酒,提供环境让 AI 自行发展
  • 机器学习在智能制造业中的应用:质量检测与设备故障预测
  • 使用v-bind指令绑定属性
  • VUE admin-element 后台管理系统三级菜单实现缓存
  • flutter更改第三方库pub get的缓存目录;更改.gradle文件夹存放目录
  • BERT Score是干啥的?
  • 【python】pdf拆成图片,加中文,再合成pdf
  • 网络协议传输层UDP协议
  • 【NLP第一期 语料处理:从获取到预处理的完整链路解析】
  • 非接触式DIC测量系统:助力汽车研发与测试的创新技术应用
  • 从UI设计到数字孪生实战部署:构建智慧农业的智能灌溉系统
  • 数据结构学习之栈