在使用LinkoopDB之前首先需要在环境中部署安装LinkoopDB,对于具体的部署步骤可以参见LinkoopDB安装手册。 成功安装LinkoopDB后,接下来在使用LinkoopDB之前需要先启动LinkoopDB的服务。LinkoopDB可以在2种模式下运行, 种为集群模式(适合大数据量生产环境),第二种为单节点模式(适合小数据量试用版,服务器资源不足的环境)。
3.1 LinkoopDB支持的JDK版本
Java数据库连接(JDBC)是一种Java标准,它提供了从Java连接到数据库的接口(API)。JDBC标准是通过标准java.sql接口定 义和实现的。这使各个提供程序可以使用自己的JDBC驱动程序来实现和扩展标准。JDBC基于X/Open SQL调用级别接口 (CLI)。 目前LinkoopDB JDBC驱动程序中支持的JDK版本:jdk1.6(LinkoopDB-jdbc-java6-X.X.X.jar)、jdk1.8(LinkoopDB-jdbc- X.X.X.jar)。
3.2 JDBC连接方式
通过JDBC方式连接时需要设置连接使用的url以及driver名称如下:
JDBC url格式分为single模式和cluster模式。 若为single模式:
jdbc:LinkoopDB:tcp://[host_ip]:[port]/ldb;query_iterator=1;clientcharset=gbk;resultcharset=gbk
若为cluster模式:
jdbc:LinkoopDB:cluster://[host_ip]:[port]|[ip]:[port]|[ip]:[port]/ldb;query_iterator=1;clientcharset=gbk;resultcharset=gb k
上述JDBC连接创建时所需的参数如下表描述。
LinkoopDB JDBC driver的名称为:
com.datapps.linkoopdb.jdbc.impl.JDBCDriver
3.3 LinkoopDB客户端通信
当用户想要访问LinkoopDB时,首先要与LinkoopDB建立连接,即所谓的会话层(session), 可以通过以下方式来建立: LinkoopDB客户端连接主要是通过JDBC的方式,一种方式是通过命令行(CLI)登录LinkoopDB,或者通过JDBC第三方客户端来 登录LinkoopDB,接下来具体介绍连接方式的用法。 LinkoopDB通过JDBC通信方式连接包括Studio(自主研发的图形化工具)、命令行以及第三方客户端等方式连接数据库。 在使用LinkoopDB之前首先要启动LinkoopDB的服务,接下来介绍LinkoopDB服务的启动和停止用法。
3.3.1 启动和关闭 启 LinkoopDB服务服 3.3.1.1 启动服务 启 在命令行方式下,启动LinkoopDB服务的命令如下所示。
[ldb232@node237 conf]$ ldbctl start --all start server check process finish workdir: /home/ldb232/linkoopdb/ldb-license-server
ldb-license-server started license server start completed start server check process CURRENT_PID 30144 workdir: /home/ldb232/linkoopdb/ldb-server ldb-server started server start completed start stream worker check process CURRENT_PID 30170 workdir: /home/ldb232/linkoopdb/ldb-stream ldb-stream started stream worker start completed ... ldb-dist has beed started ssh ldb232@node237 '/home/ldb232/linkoopdb_release/others/solr-5.3.2/bin/solr start -p 8984 -a "- Dsolr.data.dir=/home/ldb232/linkoopdb/studio-datesets"' NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8984. Started Solr server on port 8984 (pid=27099). Happy searching! workdir: /home/ldb232/linkoopdb/linkoopdb-studio/studio-server studio-server has beed started [ldb232@node237 conf]$
如上所示,ldbctl start --all是启动LinkoopDB的所有服务,主要包括ldb-license-server(license服务)、ldb-server(server服 务)、ldb-stream(stream服务)、node_exporter(ldb监控服务)、ldb-dist(ldb dist服务)、studio-server(studio server服务即 LinkoopDB的客户端访问服务)等。
其中的一些服务例如studio-server在启动时需要依赖solr服务的启动,启动此服务前solr server将会先启动(依赖的服务系统也 会自动启动,不需要单独启动)。另外还有一些服务启动后会包括相关的多个服务,例如ldb-server启动后,包括LinkoopDB的LinkoopDBServer、BonfireSubmit(worker服务)进程。
注:启动LinkoopDB服务需要提前切换到LinkoopDB的用户,假设LinkoopDB的用户为ldb,切换用户的命令为su - ldb。
执行上述命令会将LinkoopDB的所有服务都启动,也可以单独启动LinkoopDB的各项服务,例如,启动LinkoopDB的license`服 务命令如下:
[ldb232@node237 conf]$ ldbctl start --license start server check process finish workdir: /home/ldb232/linkoopdb/ldb-license-server ldb-license-server started license server start completed
若想要了解LinkoopDB启动的各项服务,可以通过以下命令来查看:
[ldb@node231 bin]$ldbctl start --help Usage: ldbctl [Actions] [Flags] Actions:start stop Flags:--license start/stop linkoopdb license server --db start/stop all linkoopdb server --meta start/stop all linkoopdb meta server(not mysql) --pallas start/stop all linkoopdb pallas --meta-pallas start/stop all linkoopdb meta pallas --monitor start/stop linkoopdb monitor: prometheus、pushgateway、ldb-monitor --node-exporter start/stop node-exporter on all hosts --solr start/stop solr service --studio start/stop linkoopdb studio server
--base start/stop linkoopdb base modules: [meta-pallas]、[meta-server]、license-server、db-server、 pallas--all start/stop all linkoopdb service eg. ./ldbctl start --db
可以通过在命令行输入jps命令来查看LinkoopDB的各项启动的服务进程。
[ldb232@node237 ~]$ jps 31025 LdbLicenseServer 1139 ldb-dist-[worker1] 31109 LinkoopDBServer 1045 ldb-monitor-agent[worker1] 22982 SqlTool 27303 Jps 31276 BonfireSubmit 1279 jar 31135 StreamServer
3.3.1.2 关闭服务 关 关闭LinkoopDB的服务与启动服务命令类似。
[ldb232@node237 ~]$ ldbctl stop --all workdir: /home/ldb232/linkoopdb/linkoopdb-studio/studio-server try to stop studio-server has been stopped Sending stop command to Solr running on port 8984 ... waiting 5 seconds to allow Jetty process 27099 to stop gracefully. check process finish workdir: /home/ldb232/linkoopdb/ldb-dist
try to stop ldb-dist has been stopped ... stop server check process finish workdir: /home/ldb232/linkoopdb/ldb-server killing ldb-server ldb-server was killed server stop completed stop stream worker check process finish workdir: /home/ldb232/linkoopdb/ldb-stream killing ldb-stream ldb-stream was killed stream worker stop completed ... license server stop completed [ldb232@node237 ~]$
从上述显示的结果中可以看出,LinkoopDB启动时的服务顺序与停止时的服务顺序基本相反,即先启动的服务一般后停止。 同样的,若想要单独关闭LinkoopDB的其中一个服务,例如关闭LinkoopDB的license服务,命令为:
[ldb232@node237 bin]$ldbctl stop --license stop server check process finish workdir: /home/ldb232/lin