更新时间:2024-12-17 GMT+08:00

使用DBeaver访问Phoenix

应用场景

DBeaver是一个SQL客户端和数据库管理工具。对于关系数据库,使用JDBC API通过JDBC驱动程序与数据库交互。对于其他数据库(NoSQL),使用专有数据库驱动程序。

本章节以DBeaver 6.3.5版本为例,讲解如何使用DBeaver访问MRS 3.1.0未开启Kerberos认证的集群,且该集群的HBase服务未开启Ranger鉴权。

方案架构

HBase以表的形式存储数据,数据模型如图 HBase数据模型所示。表中的数据划分为多个Region,并由Master分配给对应的RegionServer进行管理。

每个Region包含了表中一段RowKey区间范围内的数据,HBase的一张数据表开始只包含一个Region,随着表中数据的增多,当一个Region的大小达到容量上限后会分裂成两个Region。可以在创建表时定义Region的RowKey区间,或者在配置文件中定义Region的大小。

图1 HBase数据模型

Phoenix是构建在HBase之上的一个SQL中间层,提供一个客户端可嵌入的JDBC驱动,Phoenix查询引擎将SQL输入转换为一个或多个HBase scan,编译并执行扫描任务以产生一个标准的JDBC结果集。

约束与限制

步骤一:配置DBeaver安装环境

  1. 向DBeaver安装目录下的“dbeaver.ini”文件中增加JDK 1.8.0_x的bin目录,例如:C:\Program Files\Java\jdk1.8.0_121\bin,则新增如下内容:
    图2 新增JDK的bin目录
  2. https://archive.apache.org/dist/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz中下载Phoenix软件包并解压,获取“phoenix-5.0.0-HBase-2.0-client.jar”。
  3. 创建并购买一个包含HBase组件的MRS 3.1.0未开启Kerberos认证的集群,详情可参考创建MRS集群
  4. 安装包含HBase的客户端,并从客户端安装节点上的“客户端安装目录/HBase/hbase/conf”目录下载“hbase-site.xml”文件。使用压缩软件打开获取到的“phoenix-5.0.0-HBase-2.0-client.jar”,将“hbase-site.xml”拖拽到该Jar文件中。

步骤二:在DBeaver配置访问Phoenix参数

  1. 打开DBeaver,选择“文件 > 新建 > DBeaver > 数据库连接”。
    图3 创建数据库连接
  2. 单击“下一步”,在选择新连接类型界面选中“Apache Phoenix”并单击“下一步”。
    图4 选择数据连接类型
  3. 单击“编辑驱动设置”。
    图5 编辑驱动设置
  4. 单击“添加文件”,选择准备好的“phoenix-5.0.0-HBase-2.0-client.jar”,如果有多个驱动包,需先删除,只保留手动添加的“phoenix-5.0.0-HBase-2.0-client.jar”。
    图6 删除原有的驱动包
    图7 添加Phoenix Jar包
  5. 单击“找到类”,加载完成后在左侧框中选择“org.apache.phoenix.jdbc.PhoenixDriver”。
    图8 加载驱动类
  6. 添加Zookeeper Base Path。
    1. 登录FusionInsight Manager,选择“集群 > 服务 > HBase”,单击“HMaster WebUI”右侧的超链接,登录HBase WebUI界面,搜索“Zookeeper Base Path”,并获取该值,如下图所示“Zookeeper Base Path”的值为“/hbase”:
      图9 查看Zookeeper Base Path
    2. 将“ZooKeeper Base Path”值配置到URL模板中,即在原有的URL地址后面增加“:/hbase”即可,并单击确定:
      图10 配置URL模板
  7. 配置EIP。如果本地Windows与集群之间网络不通,需要为每个HBase节点以及ZooKeeper节点配置EIP,并且在本地Windows的hosts文件添加所有节点的公网IP对应主机域名的映射关系,例如:

    如果使用的是Windows云服务器,并且与集群的网络是通的,则无需配置EIP。

  8. 登录FusionInsight Manager,选择“集群 > 服务 > ZooKeeper > 实例”。

    选择任一节点,将该节点对应的EIP填入主机框中(如果使用的是Windows云服务器,并且与集群的网络是通的,直接填写节点的业务IP地址即可)。

    图11 配置主机
  9. 单击“测试连接”,如图10 测试连接所示表示对接成功,单击“确定”。
    图12 测试连接
  10. 以客户端安装用户登录安装HBase客户端的节点,执行以下命令创建新的命名空间MY_NS

    cd 客户端安装目录

    source bigdata_env

    hbase shell

    create_namespace "MY_NS"

步骤三:在DBeaver验证连接结果

  1. 打开DBeaver,选择“SQL编辑器 > 新建SQL编辑器”,即可执行相关SQL语句,例如:
    1. 在编辑器中输入以下命令并选择“SQL 编辑器 > 执行 SQL 语句”,即可在default中创建表TEST

      CREATE TABLE IF NOT EXISTS TEST (id VARCHAR PRIMARY KEY, name VARCHAR);

      UPSERT INTO TEST(id,name) VALUES ('1','jamee');

    2. 在编辑器中输入以下命令并选择“SQL 编辑器 > 执行 SQL 语句”,即可在MY_NS中创建表TEST并插入数据:

      CREATE TABLE IF NOT EXISTS MY_NS.TEST (id integer not null primary key, name varchar);

      UPSERT INTO MY_NS.TEST VALUES(1,'John');

      UPSERT INTO MY_NS.TEST VALUES(2,'Tom');

      UPSERT INTO MY_NS.TEST VALUES(3,'Manson');

      UPSERT INTO MY_NS.TEST VALUES(4,'Aurora');

  2. 右键单击连接名称,单击“刷新”,再单击连接名称左侧的,即可查看在defaultMY_NS中新建的表:
    图13 查看表