HBase 学习:安装和使用

本文最后更新于:2021年6月10日 下午

本文简单介绍单机环境下 HBase 的安装和使用。

安装配置

HBase 依赖 Hadoop,需要先安装 Hadoop 并配置。实现完全分布式配置还需要安装 ZooKeeper。

Hadoop 和 HBase 均有三种模式,Standalone、Pseudo-Distributed(伪分布式)和 Fully-Distributed。开发机资源有限,安装模式选用伪分布式。

安装配置 Hadoop

  • 下载最新稳定版并解压,本次安装使用版本为 3.2.1

  • 配置文件

    • 编辑 etc/hadoop/core-site.xml

      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://localhost:9000</value>
          </property>
      </configuration>
    • 编辑 etc/hadoop/hdfs-site.xml

      <configuration>
          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
      </configuration>
    • 编辑配置 etc/hadoop/hadoop-env.sh

      #配置JAVA_HOME
      export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Hom
  • 配置 ssh 免密登录本机

    $ ssh localhost
    #如果需要输入密码,则做以下免密配置
    $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    $ chmod 0600 ~/.ssh/authorized_keys
  • 启动 sbin/start-all.sh,可以通过 JPS 查看进程

    Hadoop启动后进程

安装配置 HBase

  • 下载最新稳定版并解压,本次安装使用版本为 2.2.4

  • 配置文件

    • 配置 conf/hbase-site.xml

      <configuration>
      <property>
          <name>hbase.rootdir</name>
      	<!-- hdfs配置和hadoop配置对应 -->
          <value>hdfs://localhost:9000/hbase</value>
        </property>
        <property>
          <name>hbase.zookeeper.property.dataDir</name>
      	<!-- 本地目录 -->
          <value>/Users/wangrui/zookeeper</value>
        </property>
        <property>
          <name>hbase.unsafe.stream.capability.enforce</name>
          <value>true</value>
          <description>
            Controls whether HBase will check for stream capabilities (hflush/hsync).
      
            Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
            with the 'file://' scheme, but be mindful of the NOTE below.
      
            WARNING: Setting this to false blinds you to potential data loss and
            inconsistent system state in the event of process and/or node failures. If
            HBase is complaining of an inability to use hsync or hflush it's most
            likely not a false positive.
          </description>
        </property>
        <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
      </property>
      </configuration>
  • 配置 conf/hbase-env.sh

    #配置JAVA_HOME
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
    #使用自带zookeeper
    export HBASE_MANAGES_ZK=true
  • 启动 bin/start-hbase.sh

HBase Shell

  • 进入 HBase 命令行:hbase shell
  • 查看版本:version
  • 列出所有的 namespace:list_namespace
  • 查看有哪些表:list
  • 建表:create '表名','列族', '列族',示例 create 'person','name', 'age'
  • 禁用表:disable '表名'
  • 删除表:drop '表名'
  • 插入记录:put '<table name>', '<row>', '<column name>', '<value>'
  • 删除记录
    • 删除某个属性的记录:delete '<table name>', '<row>', '<column name>', '<time stamp>'
    • 删除行:deleteall '<table_name>', '<row>'
  • 查询记录:get
  • 修改记录:同插入
  • 扫描:查看 HTable 数据。使用 scan 命令可以得到表中的数据。scan '<table name\>'
  • 统计行数:count
  • 清空表:truncate

参考资料

Hadoop: Setting up a Single Node Cluster.

Quick Start - Standalone HBase


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!