使用DBeaver访问Phoenix
本章节以DBeaver 6.3.5版本为例,讲解如何访问MRS 3.1.0未开启Kerberos认证的集群,且该集群的HBase服务未开启Ranger鉴权。
前提条件
- 已安装DBeaver 6.3.5,DBeaver软件下载链接为:https://dbeaver.io/files/6.3.5/dbeaver-ce-6.3.5-x86_64-setup.exe。
- 已创建包含HBase组件的MRS 3.1.0未开启Kerberos认证的集群。
- 已安装HBase客户端。
- 已安装JDK 1.8.0_x。
操作步骤
- 向DBeaver安装目录下的“dbeaver.ini”文件中增加JDK 1.8.0_x的bin目录,例如:C:\Program Files\Java\jdk1.8.0_121\bin,则新增如下内容:
图1 新增JDK的bin目录
- 在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”。
- 从客户端安装节点上的“客户端安装目录/HBase/hbase/conf”目录下下载“hbase-site.xml”文件。使用压缩软件打开2获取到的“phoenix-5.0.0-HBase-2.0-client.jar”,将“hbase-site.xml”拖拽到该Jar文件中。
- 打开DBeaver,选择“文件 > 新建 > DBeaver > 数据库连接”。
图2 创建数据库连接
- 单击“下一步”,在选择新连接类型界面选中“Apache Phoenix”并单击“下一步”。
图3 选择数据连接类型
- 单击“编辑驱动设置”。
图4 编辑驱动设置
- 单击“添加文件”,选择准备好的“phoenix-5.0.0-HBase-2.0-client.jar”,如果有多个驱动包,需先删除,只保留手动添加的“phoenix-5.0.0-HBase-2.0-client.jar”。
图5 删除原有的驱动包
图6 添加Phoenix Jar包
- 单击“找到类”,加载完成后在左侧框中选择“org.apache.phoenix.jdbc.PhoenixDriver”。
图7 加载驱动类
- 添加Zookeeper Base Path。
- 登录FusionInsight Manager,选择“集群 > 服务 > HBase”,单击“HMaster WebUI”右侧的超链接,登录HBase WebUI界面,搜索“Zookeeper Base Path”,并获取该值,如下图所示“Zookeeper Base Path”的值为“/hbase”:
图8 查看Zookeeper Base Path
- 将“ZooKeeper Base Path”值配置到URL模板中,即在原有的URL地址后面增加“:/hbase”即可,并单击确定:
图9 配置URL模板
- 登录FusionInsight Manager,选择“集群 > 服务 > HBase”,单击“HMaster WebUI”右侧的超链接,登录HBase WebUI界面,搜索“Zookeeper Base Path”,并获取该值,如下图所示“Zookeeper Base Path”的值为“/hbase”:
- 配置EIP。如果本地Windows与集群之间网络不通,需要为每个HBase节点以及ZooKeeper节点配置EIP,并且在本地Windows的hosts文件添加所有节点的公网IP对应主机域名的映射关系,例如:
如果使用的是Windows云服务器,并且与集群的网络是通的,则无需配置EIP。
- 登录FusionInsight Manager,选择“集群 > 服务 > ZooKeeper > 实例”。
选择任一节点,将该节点对应的EIP填入主机框中(如果使用的是Windows云服务器,并且与集群的网络是通的,直接填写节点的业务IP地址即可)。
图10 配置主机
- 单击“测试连接”,如图10 测试连接所示表示对接成功,单击“确定”。
- 以客户端安装用户登录安装HBase客户端的节点,执行以下命令创建新的命名空间MY_NS:
cd 客户端安装目录
source bigdata_env
hbase shell
create_namespace "MY_NS"
- 打开DBeaver,选择“SQL编辑器 > 新建SQL编辑器”,即可执行相关SQL语句,例如:
- 在编辑器中输入以下命令并选择“SQL 编辑器 > 执行 SQL 语句”,即可在default中创建表TEST:
CREATE TABLE IF NOT EXISTS TEST (id VARCHAR PRIMARY KEY, name VARCHAR);
UPSERT INTO TEST(id,name) VALUES ('1','jamee');
- 在编辑器中输入以下命令并选择“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');
- 在编辑器中输入以下命令并选择“SQL 编辑器 > 执行 SQL 语句”,即可在default中创建表TEST:
- 右键单击连接名称,单击“刷新”,再单击连接名称左侧的,即可查看在default和MY_NS中新建的表:
图12 查看表