Inceptor/ArgoDB开发者指南系列1--如何连接数据库

友情链接

社区版

社区开发版

本篇文章将详细介绍用户在下载安装好社区版/社区开发版或企业版TDH后如何连接 Inceptor 及 ArgoDB 数据库。


连接方式

Transwarp Inceptor及ArgoDB支持通过 Beeline、应用程序、外部工具等多种方式连接

a. 通过 Beeline 命令行连接 //通过命令行方式执行 SQL 命令,如创建数据库;

b. 通过 Waterdrop 客户端连接  //通过客户端界面化方式管理数据库,支持跨平台管理多种数据库(如Apache Hive);

c. 通过 JDBC/ODBC 连接  //支持标准的 JDBC/ODBC 接口,安装驱动后即可编写应用程序,读写ArgoDB 或 Inceptor中的数据。

d. 支持第三方使用标准JDBC/ODBC接口的工具连接 // 例如 Tableau 等


本文将重点介绍使用Beeline命令行以及使用数据库开发工具Waterdrop的连接方法,有关使用JDBC/ODBC的方式可参考如下连接:


操作前提

1. 如何判断自己的安全认证方式?

ArgoDB、Inceptor 支持 LDAP(轻型目录访问协议)和 Kerberos 认证方式,可帮助您提升数据安全性。在连接数据库前,您可以通过下方步骤判断集群的认证方式。

以Inceptor为例

① 登录 Transwarp Manage 平台

② 在页面左侧,选择仪表盘-->集群

③ 单机Inceptor对应的 Qurak 服务

④ 单击‘配置’列表,搜索参数 hive.server2.authentication,确认是否开启了 LDAP 认证

值为 NONE:未开启 LDAP 认证

值为 LDAP:已开启 LDAP 认证

⑤ 单击‘安全’列表,查看是否开启了 Kerberos 认证

⑥ 如果上述认证均未开启时,则为免认证状态

如果开启了 LDAP/Kerberos 认证,作为运维管理人员,您可以通过 Guardian 创建用户并授权,具体操作,详见 Guardian使用手册

LDAP/Kerberos的区别是什么?

  • 认证的协议不一样,Kerberos 是基于票据的认证协议,相对复杂但是更安全,可以防攻击等等,可以通过使用票据(Ticket)和票据授权(Ticket Granting Ticket)来实现身份验证
  • LDAP相对简单方便,是基于目录服务的认证协议,通过目录服务(Directory Service)来存储和验证用户的身份信息。

2. 如何获取连接数据库的地址?

ArgoDB/Inceptor通过 Quark Gateway 服务提供统一的 SQL 执行入口,连接数据库时,您需要提供 Quark Gateway服务的连接地址,如 IP 地址或主机名。

① 登录 Transwarp Manage 平台。

② 在左侧导航栏,单击仪表盘 --> 集群。

③ 找到并单击对应的 Quark 服务。

④ 在角色标签页,获取 Quark 服务对应的 IP 地址和主机名。


连接方式1  通过 Beeline 命令行连接

Beeline 是基于 SQLLine 的命令行客户端,它通过 JDBC 方式以 Thrift 协议连接至 Inceptor/ArgoDB 数据库,连接后即可执行 SQL 命令(如创建数据库)。


更多关于 Beeline 的使用介绍,见 Beeline 官方文档

操作步骤

注意:
社区版以及社区开发版下载客户端的方式不同,下方主要以2023.5版本的社区版为例,仅做参考,具体以各自手册中描述的内容为准

社区版安装手册(含演示视频):  V2024-5版本
TDH/Scope/StellarDB社区开发版安装手册(含演示视频): V2024-5版本

步骤一  下载客户端

① 登录 Transwarp Manage 平台。

② 在页面右上角,选择 ⋮ > 下载客户端。选中要访问的集群及对应的服务(至少包含 Quark 服务),然后单击向右箭头

③ 单击确定,客户端将开始自动下载

注:如果修改了集群中服务的配置(例如 Kerberos 认证从关闭设置为开启),则需要重新下载客户端。

步骤二  将下载好的客户端上传至集群中的任一机器中

步骤三  解压客户端文件

登录至该机器,进入客户端上传到的目录,执行下述命令解压文件

tar -xvf tdh-client.tar

步骤四  初始化客户端

执行下述命令(需 root 权限),完成客户端初始化

source ./TDH-Client/init.sh

步骤五  确认认证方式,进行连接

按照前情提要1中的方式确认认证方式,然后选择执行下述格式的命令,连接数据库。

Ø 免认证(LDAP/Kerberos均未开启):

beeline -u "jdbc:hive2://<server_ip/hostname>:<port>/<database_name>"

a. <server_ip/hostname>:Quark 服务的 IP 地址或主机名;

b. <port>:服务端口,默认为 10000;

c. <database_name>:要连接到的数据库;

示例如下:

beeline -u "jdbc:hive2://172.16.20.1:10000/default"  

Ø LDAP 认证:

beeline -u "jdbc:hive2://<server_ip/hostname>:<port>/<database_name>" -n <username> -p <password>

a. <server_ip/hostname>:Quark 服务的 IP 地址或主机名。

b. <port>:服务端口,默认为 10000。

c. <database_name>:要连接到的数据库。

d. <username>:用于身份认证的用户名。

e. <password>:用户名对应的密码。

示例如下:

beeline -u "jdbc:hive2://172.18.130.24:10000/default" -n hive -p 123

Ø Kerberos 认证:

1) 使用Kinit用户登陆

您需要先执行 kinit 用户名,输入密码以获取 Kerberos 票据授权票据(TGT),然后再执行下述连接命令。

beeline -u "jdbc:hive2://<server_ip/hostname>:<port>/<database_name>;principal=<princpal_name>" 

a. <server_ip/hostname>:Quark 服务的 IP 地址或主机名。

b. <port>:服务端口,默认为 10000。

c. <database_name>:要连接到的数据库。

d. <princpal_name>:Server Principal 中的 User Name 固定为 hive,即本参数的格式为 hive/<Quark 服务所属设备的主机名>@TDH,例如 hive/idc3@TDH。

示例如下:

# 获取core_user_01用户对应的票据,随后输入该用户的密码。
kinit core_user_01
# 执行连接命令
beeline -u "jdbc:hive2://172.18.122.113:10000/default;principal=hive/ce113@TDH"

2)使用连接串(keytab)指定连接用户

使用该方式连接,需提前在Guardian Server界面下载Keytab文件,并上传至服务器端。

# beeline -u 'jdbc:hive2://<server_ip/hostname>:10000/default;principal=hive/<hostname>@TDH;kuser=hive@TDH;keytab=<keytab路径>;auth=kerberos;krb5conf=/etc/krb5.conf'

a. kuser=hive@TDH,这个参数真正指定了登陆的用户,这里是hive,此时hive登陆的密码使用keytab指定。

b. keytab=<keytab路径>,例如keytab=/root/hive.keytab,指定了使用/root/hive.keytab的keytab登陆hive用户。

c. auth=kerberos:指定了使用kerberos认证方式连接Inceptor。

d. krb5conf=/etc/krb5.conf;指定kdc配置文件。

示例:

346072952740427551.png

3)使用连接串[password]指定连接的用户(社区版暂不支持)

密码需在Guardian Server界面,进入租户hive页面,重置密码获得。

# beeline -u 'jdbc:hive2://<hostname/IP>:10000/default;principal=hive/<hostname>@TDH;kuser=hive@TDH;password=<密码>;auth=kerberos;krb5conf=/etc/krb5.conf'

a. kuser=hive@TDH,这个参数真正指定了登陆的用户,这里是hive,此时hive登陆的密码使用passwar指定。

b. auth=kerberos:指定了使用kerberos认证方式连接Inceptor。

c. krb5conf=/etc/krb5.conf;指定kdc配置文件。

步骤六  完成连接,查看数据库

完成连接后,您可以执行所需的 SQL 命令,更多介绍,见 SQL 参考。

-- 查看数据库列表
SHOW DATABASES;

更多认证方式

Ø Guardian Token 认证

当 Kerberos/LDAP 认证开启时,您也可以使用本方式,连接命令格式如下:
$ beeline -u "jdbc:hive2://<server_ip/hostname>:<port>/<database_name>;guardianToken=<access_token>"
关于 access_token 值的获取,请参见 Guardian 使用手册中的使用 Guardian Access Token 访问服务。

Ø CAS 认证

支持使用 CAS 进行单点登录/登出,此功能默认为开启,连接命令格式如下:
beeline -u "jdbc:hive2://<server_ip/hostname>:10000/<database_name>;casTicket=<cas_ticket>"
关于 cas_ticket 值的获取,请参见 Guardian 使用手册中的使用 CAS Ticket 访问服务。

HA(高可用)连接方式

如果您采用了高可用架构,您可以采用下述格式的命令进行连接(仅支持免认证和 LDAP 认证),从而使用完整的 HA 功能。
Ø 免认证
beeline -u jdbc:hive2://<server2_ip/hostname>:<port>, <server2_ip/hostname>:<port>/<database_name>
Ø LDAP 认证
beeline -u jdbc:hive2://<server2_ip/hostname>:<port>, <server2_ip/hostname>:<port>/<database_name> -n <username> -p <password>


连接方式2  通过Waterdrop连接

Transwarp Waterdrop 是面向开发和数据库管理人员的管理工具,支持跨平台管理多种数据库(如 Apache Hive),帮助您实现界面化管理数据库、编辑/执行 SQL 语句等操作。

下方内容主要是1.0版本的链接教程,2.0版本可参考 Waterdrop 2.0 连接 Inceptor 教程

参考视频: 视频示例

如何获取keytab文件

环境要求

  • Windows(x86_32/64)
  • Linux(x86_32/64, ppc_64, s390)
  • Mac OS X(x86_64)
  • Solaris(x86_64)
  • AIX(ppc_32/64)
  • HP-UX(ia_64)

操作步骤

下述步骤以 Windows 64 位操作系统为例,演示连接步骤。

步骤一  获取Waterdrop产品包

  1. 企业版TDH:需要先通过官网申请 Waterdrop 许可证(试用/商业版),随后联系星环官方支持,获取驱动程序和安装包,然后完成激活操作
  2. 社区版TDH:访问社区版官网页面,获取Waterdrop产品包
注:社区版Waterdrop无需许可证,但仅支持社区版TDH使用;

步骤二  安装Waterdrop

在客户端电脑上,解压安装包并进入解压后的文件夹,以管理员身份运行该程序;

image.png

在弹出的对话框中,选择 inceptor > Inceptor Server,双击进入下一步;

image.png

步骤三  单击 Next,在 General 选项卡中完成下述配置

image.png

  • 服务器地址:填写 Quark 服务的 IP 地址或主机名。
  • 端口:服务端口,默认为 10000。 数据库:要连接的数据库。
  • 认证类型:基于前情提要中的步骤确认认证方式,然后选择配置下述信息。

Ø 免认证:保持为空,无需配置。

Ø LDAP 认证:选择为 LDAP,然后填写用户名和密码。

Ø Kerberos 认证:选择为 Kerberos,然后填写 Principle、用户 Principal,最后依次双击 Keytab 和 KBConf 对应的文本框,选择对应的配置文件。

为保障正常连接,您需要修改本地 hosts 文件,将 Quark 服务的 IP 地址与主机名进行关联。例如 Windows 平台下,该文件的路径为C:\Windows\System32\drivers\etc\hosts。 使用 HA:如果您采用了高可用架构,选中该复选框并填写 HA 地址和端口。

步骤四  导入驱动文件

单击编辑驱动设置,随后在弹出的对话框中单击 Add File

image.png

a. 选择并导入驱动文件,随后单击 OK。如需验证配置正确性,可单击测试连接。

社区版Waterdrop对应的驱动版本号inceptor-sdk-transwarp-6.1.0-snapshot,如果不是请及时联系社区右下角社区版官方小助手领取正确驱动。

步骤五 单击 Next,无特殊要求可再次单击 Next

步骤六 单击 Finish 完成配置

完成连接后,您可以双击对应的数据库获取表信息,也可以执行相关 SQL 命令。


评论
登录后可评论
发布者
A
Admin
官方
文章
17
问答
42
关注者
18
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入