大数据技术之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 ]
    then
      echo Not Enough Arguement!
      exit;
    fi
    #2. 遍历集群所有机器
    for host in hadoop12 hadoop13 hadoop14
    do
      echo ====================  $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:$pdir
        else
          echo $file does not exists!
        fi
      done
    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'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据深度洞察

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值