You need to enable JavaScript to run this app.
导航

使用 HBase Shell 连接实例

最近更新时间2024.05.16 17:42:18

首次发布时间2022.05.11 14:00:33

本文介绍如何使用 HBase Shell 工具连接 HBase 实例。

前提条件

  • 如需通过私网地址访问 HBase 实例,需同时满足如下要求:
    • 已购 ECS 服务器与 HBase 实例在相同私有网络 VPC 下。ECS 服务器的购买方法,请参见购买云服务器
    • 已将 ECS 服务器的 IP 地址添加至 HBase 中的白名单中。白名单设置方法,请参见编辑白名单
  • 如需通过公网地址访问 HBase 实例,需确保运行 Java 工具的设备 IP 地址已加入 HBase 实例的白名单中。白名单设置方法,请参见编辑白名单
  • 已在 ECS 实例或本地设备上安装 Java 环境,建议使用 JDK 8 版本。更多详情,请参见 Java Downloads
  • 若创建实例时已开启登录认证,连接实例前,您需要为实例创建数据库账号,详情请参见创建账号

未开启登录认证

  1. 获取 HBase 实例的 ZK 连接地址。具体操作步骤,请参见查看连接地址

  2. 下载 HBase Shell 工具包。

    说明

    根据步骤 1 的方法进入目标 HBase 实例的连接管理页签,在页面右下方单击 HBase Shell 下载

  3. 解压 HBase Shell 工具包,并修改 hbase-2.x/conf/hbase-site.xml 文件中的配置。

    # 解压 HBase Shell 工具包
    tar -zxvf hbase-shell-2.x-tar.gz
    # 编辑 hbase-site.xml 文件
    vim hbase-2.x/conf/hbase-site.xml
    

    说明

    您需要修改代码中的如下信息:

    • 用步骤 1 中获取的 ZK 地址替换代码中的 ${zkEndpoint}:${port}
    • 用目标 HBase 实例 ID 替换代码中的 ${instanceId}。您可以在 HBase 控制台实例列表页找到并复制目标实例 ID。
    • 使用 ZK 私网连接地址访问实例
      <configuration>
        <property>
          <name>hbase.zookeeper.quorum</name>
          <value>${zkEndpoint}:${port}</value>
        </property>
        <property>
          <name>zookeeper.znode.parent</name>
          <value>/hbase/${instanceId}</value>
        </property>
        <property>
          <name>zookeeper.znode.acl.parent</name>
          <value>/hbase/${instanceId}</value>
        </property>
      </configuration>
      
    • 使用 ZK 公网连接地址访问实例
      <configuration>
          <property>
              <name>hbase.zookeeper.quorum</name>
              <value>${zkEndpoint}:${port}</value>
          </property>
          <property>
              <name>zookeeper.znode.parent</name>
              <value>/hbase/${instanceId}</value>
          </property>
          <property>
              <name>zookeeper.znode.acl.parent</name>
              <value>/hbase/${instanceId}</value>
          </property>
         <property>
              <name>zookeeper.znode.metaserver</name>
              <value>public-meta-region-server</value>
          </property>
          <property>
              <name>zookeeper.znode.master</name>
              <value>public-master</value>
          </property>
      </configuration>
      
  4. 访问目标 HBase 实例。在 hbase-2.x 目录下,执行命令 bin/hbase shell 命令即可访问实例。

    说明

    通过 HBase Shell 工具连接 HBase 实例后,您可以使用 Shell 命令进行建表、读写等操作。详细操作步骤,请参见如何使用 HBase Shell

已开启登录认证

  1. 获取 HBase 实例的 ZK 连接地址。具体操作步骤,请参见查看连接地址

  2. 下载 HBase Shell 工具包。

    说明

    根据步骤 1 的方法进入目标 HBase 实例的连接管理页签,在页面右下方单击 HBase Shell 下载

  3. 解压 HBase Shell 工具包。

    tar -zxvf hbase-shell-2.x-tar.gz
    
  4. 点击此处下载账户认证的 hbase-security-2.3.8.jar 包,并将下载的 jar 包放在 hbase-2.x/lib 目录下。

  5. 修改 hbase-2.x/conf/hbase-site.xml 文件中的配置。

    说明

    您需要修改文件中的如下信息:

    • 使用创建的数据库账号和密码替换代码中的 ${username}${password}

    • 用步骤 1 中获取的 ZK 地址替换代码中的 ${zkEndpoint}:${port}

    • 用目标 HBase 实例 ID 替换代码中的 ${instanceId}。您可以在 HBase 控制台实例列表页找到并复制目标实例 ID。

    • 使用 ZK 私网连接地址访问实例

      <configuration>
        <property>
          <name>hbase.security.authentication</name>
          <value>bytedance</value>
        </property>
      <!--  账号信息 -->  
        <property>
          <name>hbase.client.username</name>
          <value>${username}</value>
        </property>
        <property>
          <name>hbase.client.password</name>
          <value>${password}</value>
        </property>
        <property>
          <name>hbase.client.userprovider.class</name>
          <value>org.apache.hadoop.security.BytedanceUserProvider</value>
        </property>
        <property>
          <name>hbase.client.sasl.provider.extras</name>
          <value>com.volcengine.hbase.security.plain.internals.PlainSaslClientAuthenticationProvider</value>
        </property>
        <property>
          <name>hbase.client.sasl.provider.class</name>
          <value>com.volcengine.hbase.security.AuthProviderSelector</value>
        </property>
      <!--  连接地址信息 -->
        <property>
          <name>hbase.zookeeper.quorum</name>
          <value>${zkEndpoint}:${port}</value>
        </property> 
      <!--  实例基本信息 --> 
        <property>
          <name>zookeeper.znode.parent</name>
          <value>/hbase/${instanceId}</value>
        </property>
        <property>
          <name>zookeeper.znode.acl.parent</name>
          <value>/hbase/${instanceId}</value>
        </property>
      </configuration>
      
    1. 使用 ZK 公网连接地址访问实例

      <configuration>
        <property>
          <name>hbase.security.authentication</name>
          <value>bytedance</value>
        </property>
      <!--  账号信息 -->  
        <property>
          <name>hbase.client.username</name>
          <value>${username}</value>
        </property>
        <property>
          <name>hbase.client.password</name>
          <value>${password}</value>
        </property>
        <property>
          <name>hbase.client.userprovider.class</name>
          <value>org.apache.hadoop.security.BytedanceUserProvider</value>
        </property>
        <property>
          <name>hbase.client.sasl.provider.extras</name>
          <value>com.volcengine.hbase.security.plain.internals.PlainSaslClientAuthenticationProvider</value>
        </property>
        <property>
          <name>hbase.client.sasl.provider.class</name>
          <value>com.volcengine.hbase.security.AuthProviderSelector</value>
        </property>
      <!--  连接地址信息 -->
        <property>
          <name>hbase.zookeeper.quorum</name>
          <value>${zkEndpoint}:${port}</value>
        </property> 
      <!--  实例基本信息 --> 
        <property>
          <name>zookeeper.znode.parent</name>
          <value>/hbase/${instanceId}</value>
        </property>
        <property>
          <name>zookeeper.znode.acl.parent</name>
          <value>/hbase/${instanceId}</value>
        </property>
      <!--  公网访问 --> 
        <property>
          <name>zookeeper.znode.metaserver</name>
          <value>public-meta-region-server</value>
        </property>
        <property>
          <name>zookeeper.znode.master</name>
          <value>public-master</value>
        </property>
      </configuration>
      
  6. 访问目标 HBase 实例。在 hbase-2.x 目录下,执行命令 bin/hbase shell 命令即可访问实例。