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

大数据技术之HBase 快速入门(2)

目录

 HBase 安装部署

 Zookeeper 正常部署

 Hadoop 正常部署

 HBase 的解压

 HBase 的配置文件

 HBase 远程发送到其他集群

 HBase 服务的启动

 查看 HBase 页面

 高可用(可选)

 HBase Shell 操作

 基本操作

 Namespace

 DDL

 DML


 HBase 安装部署

 Zookeeper 正常部署

首先保证 Zookeeper 集群的正常部署,并启动之。

[lzl@hadoop12 zookeeper-3.5.7]$ bin/zkServer.sh start
[lzl@hadoop13 zookeeper-3.5.7]$ bin/zkServer.sh start
[lzl@hadoop14 zookeeper-3.5.7]$ bin/zkServer.sh start

 Hadoop 正常部署

Hadoop 集群的正常部署并启动。

[lzl@hadoop12 hadoop-3.1.3]$ sbin/start-dfs.sh
[lzl@hadoop13 hadoop-3.1.3]$ sbin/start-yarn.sh

 HBase 的解压

  1. 解压 Hbase 到指定目录

    [lzl@hadoop12 software]$ tar -zxvf hbase-2.4.11-bin.tar.gz -C /opt/module/
    [lzl@hadoop12 software]$ mv /opt/module/hbase-2.4.11 /opt/module/hbase
  2. 配置环境变量

    [lzl@hadoop12 ~]$ sudo vim /etc/profile.d/my_env.sh

    添加

    # HBASE_HOME
    export HBASE_HOME=/opt/module/hbase
    export PATH=$PATH:$HBASE_HOME/bin
  3. 使用 source 让配置的环境变量生效

    [lzl@hadoop12 module]$ source /etc/profile.d/my_env.sh

 HBase 的配置文件

  1. hbase-env.sh 修改内容

    export HBASE_MANAGES_ZK=false
  2. hbase-site.xml 修改内容

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration><property><name>hbase.zookeeper.quorum</name><value>hadoop12,hadoop13,hadoop14</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> --><property><name>hbase.rootdir</name><value>hdfs://hadoop12:8020/hbase</value><description>The directory shared by RegionServers.</description></property><property><name>hbase.cluster.distributed</name><value>true</value></property>
    </configuration>
  3. regionservers 文件

    hadoop12
    hadoop13
    hadoop14
  4. 解决 HBase 和 Hadoop 的 log4j 兼容性问题

    [lzl@hadoop12 hbase]$ 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

 HBase 远程发送到其他集群

[lzl@hadoop12 module]$ xsync hbase/

 HBase 服务的启动

  1. 单点启动

    [lzl@hadoop12 hbase]$ bin/hbase-daemon.sh start master
    [lzl@hadoop12 hbase]$ bin/hbase-daemon.sh start regionserver
  2. 群启

    [lzl@hadoop12 hbase]$ bin/start-hbase.sh
  3. 对应的停止服务

    [lzl@hadoop12 hbase]$ bin/stop-hbase.sh

 查看 HBase 页面

启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如:

http://hadoop12:16010

 高可用(可选)

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

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

    [lzl@hadoop12 hbase]$ bin/stop-hbase.sh
  2. conf 目录下创建 backup-masters 文件

    [lzl@hadoop12 hbase]$ touch conf/backup-masters
  3. backup-masters 文件中配置高可用 HMaster 节点

    [lzl@hadoop12 hbase]$ echo hadoop13 > conf/backup-masters
  4. 将整个 conf 目录 scp 到其他节点

    [lzl@hadoop12 hbase]$ xsync conf#集群分发脚本如下
    #!/bin/bash
    #1. 判断参数个数
    if [ $# -lt 1 ]
    thenecho Not Enough Arguement!exit;
    fi
    #2. 遍历集群所有机器
    for host in hadoop12 hadoop13 hadoop14
    doecho ====================  $host  ====================#3. 遍历所有目录,挨个发送for file in $@do#4 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
    done
  5. 重启 HBase, 打开页面测试查看

    http://hadoop12:16010

 HBase Shell 操作

 基本操作

  1. 进入 HBase 客户端命令行

    [lzl@hadoop12 hbase]$ bin/hbase shell
  2. 查看帮助命令

    hbase:001:0> help

 Namespace

  1. 创建命名空间

    hbase:002:0> help 'create_namespace'
  2. 创建命名空间 bigdata

    hbase:003:0> create_namespace 'bigdata'
  3. 查看所有的命名空间

    hbase:004:0> list_namespace

 DDL

  1. 创建表

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

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

    hbase:009:0> create 'student1','info'
  2. 查看表

    hbase:013:0> list

    查看一个表的详情

    hbase:014:0> describe 'student1'
  3. 修改表

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

    删除信息使用特殊的语法

    hbase:015:0> alter 'student1', NAME => 'f1', METHOD => 'delete'
    hbase:016:0> alter 'student1', 'delete' => 'f1'
  4. 删除表

    hbase:017:0> disable 'student1'
    hbase:018:0> drop 'student1'

 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'

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

  2. 读取数据

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

    修改读取 cell 的版本数,默认读取一个。最多能够读取当前列族设置的维护版本数。

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

    scan 是扫描数据,能够读取多行数据,不建议扫描过多的数据,推荐使用 startRowstopRow 来控制读取的数据,默认范围左闭右开。

    hbase:025:0> scan 'bigdata:student',{STARTROW => '1001',STOPROW => '1002'}
  3. 删除数据

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

    deleteall 表示删除所有版本的数据,即为当前行当前列的多个 cell。(执行命令会标记数据为要删除,不会直接将数据彻底删除,删除数据只在特定时期清理磁盘时进行)

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Parallels Desktop 19发布,无需重启即可在 Mac 上运行 Windows
  • VSCode设置复制 Ctrl+D想下复制
  • 知识社区的小程序源码系统 界面支持万能DIY装修 带源代码包以及搭建部署教程
  • 黑神话悟空-提高画质、防卡顿、修复等各种功能、各种CT表、各种存档、武器包、人物、装备替换等193+MOD合集
  • 汽车乘客热舒适度大挑战,如何利用仿真技术提高汽车环境舒适度
  • oracle11g常用基本字典和动态性能字典
  • Flask的上下文管理流程
  • 利用Streamlit前端框架开发Stable Diffusion模型图像生成网页应用(下篇)
  • SprinBoot+Vue实验室考勤管理小程序的设计与实现
  • c++关于字符串的练习
  • Camtasia 2024 v2024.0.6 for Mac 中文版 屏幕录像视频录制编辑软件
  • 开源项目管理工具Taiga
  • “添加”业务功能开发
  • 手把手带你实现C语言扫雷进阶(1)(接上回基础版扫雷,附上源码)
  • JAVAEE初阶第二节——多线程基础(中)
  • 【译】JS基础算法脚本:字符串结尾
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • angular2 简述
  • CSS 专业技巧
  • Facebook AccountKit 接入的坑点
  • HashMap剖析之内部结构
  • java取消线程实例
  • Kibana配置logstash,报表一体化
  • Laravel Telescope:优雅的应用调试工具
  • MD5加密原理解析及OC版原理实现
  • mysql 数据库四种事务隔离级别
  • React的组件模式
  • Web设计流程优化:网页效果图设计新思路
  • XForms - 更强大的Form
  • 飞驰在Mesos的涡轮引擎上
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 今年的LC3大会没了?
  • 跨域
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数据可视化之 Sankey 桑基图的实现
  • 在Mac OS X上安装 Ruby运行环境
  • Hibernate主键生成策略及选择
  • 阿里云API、SDK和CLI应用实践方案
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​数据链路层——流量控制可靠传输机制 ​
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (9)STL算法之逆转旋转
  • (pojstep1.1.2)2654(直叙式模拟)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (分布式缓存)Redis哨兵
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (论文阅读30/100)Convolutional Pose Machines
  • (原)Matlab的svmtrain和svmclassify
  • (转载)hibernate缓存
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全