介绍

通过和Trafodion eco-system通信可以实现很多管理功能,例如,DTMCI,SQLCI,"sqstatus","sqps"及"ckillall"脚本,仅举几个。此外,还有没有单个连接点的可供管理客户端可以和组件通信检索提供的信息。这样就给管理命令和控制客户端带来一个特护的挑战。。Trafodion DCS 组件目前包含一个REST服务可以被用作Trafodion“core” RSET服务。需要几天的工作从DcsMaster和 DcsServer项目中选出一组简洁的源代码中插入到 GIT Trafodion “core”项目作为一个新的 “REST”目录。代码使用Maven构建。

目标

服务器将为所有Trafodion组件提供"一站式服务"。而客户端使用众所周知的REST具有明确的操作REST服务器的后端可以发出SQL查询来从RMS检索信息。工作负载和存储库的信息,也可以使用两种JDBC Type 2或者 type 4来检索。DTM事物可视化将会在服务器可以和 DTMCI"通信"的时候可用。DCS服务器和客户端的连接状态将会使用T2和T4连接驱动。Zookeeper信息是通过Zookeeper 客户端连接器得到。返回的数据可能根据HTTP 客户端的请求返回JSON,文本或者XML格式。

使用场景

任何具有执行REST操作可以与服务器进行互操作的能力的on/off 平台。用户可以通过编写行业标准,开源REST机制支持的自定义管理应用程序。

对于全面介绍了REST,请参阅下面的教程: REST Tutorial

外部功能

本节涵盖了REST API。

新语法

客户端将使用RESTful的命令来检索REST服务器的信息。请看下面的例子。

注意事项

和DCS一样的REST服务器将由Trafodion installer安装和配置到“local_hadoop”目录。在/ bin目录中找到start-rest.sh和stop-rest.sh脚本来调用来启动/停止服务器。

将使用SSL实现安全性。

例子

下面的例子使用“curl”工作来演示了典型Trafodion REST服务器的客户端请求:

Core “sqcheck”:

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers/dtm

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers/rms

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers/dcs

DCS Connections info from Zookeeper:

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers/connections

Core “sqnodestatus”:

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers/nodes

Core “cancel query <query id>”:

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/workload/cancel/<query id>

Core “sqpstack [program]”:

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers/pstack

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/servers/pstack/program/<program>

DTMCI status tm

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/transactions/tm

DTMCI stats

curl -v -X GET -H "Accept: application/json" http://<Rest server IP address>:4200/v1/transactions/stats

默认设置

如同HBase和DCS,REST服务器使用Apache Hadoop配置机制。基本上,一个用户属性集合的是在rest-XXX-tar.gz里rest-default.xml文件中定义。用户可以通过将它添加到的conf/ REST-site.xml文件,并修改<value>标签覆盖的任何标记。配置机制将会合并这个文件集,然后服务器可以检索任何覆盖的属性。

配置文件更改

服务器是独立的使用自己的配置,因此它不影响Trafodion core的配置。

新的错误消息

如同DCS和HBASE一样,服务器产生错误消息使用标准的log4j记录到conf/log4j.properties配置的文件中。

架构

以下是从DCS服务器继承的功能的框图。

Trafodion REST Server

内部实现

服务器程序100%有Java多线程实现。简而言之,HTTP客户端连接到嵌入 Jetty服务器中并在4200端口监听。根据REST请求的服务器可以调用一个或多个连接从SQL引擎,DTM,或者Zookeeper检索所需要的信息。

使用Java的脚本引擎,(JSR 223),见手册Scripting for the Java platform,它可以调用Python脚本去执行bash命令,例如获取记录“sqstatus”等命令的输出。同样的Python脚本也具备Java的提供的全部功能。

服务器返回的Python脚本的输出,并返回JSON格式给客户端。

所有的Python脚本由Java脚本引擎编译。此外,该服务器可以检测当脚本改变和将重新编译脚本。

性能

REST服务器执行平台中存在Trafodion脚本。它不会影响核心Tradofion引擎的性能。

可使用性

REST是众所周知的,并且提供了用于内部/外部客户极好的API。

可用性

有服务器的仅一个实例。如果失败,必须重新启动。它可能的init.d可以用来检测故障和自动重新启动服务器。

管理性

服务器不提供管理接口。

可扩展性

嵌入式Jetty服务器是多线程的。最小/最大线程是通过的conf/rest-site.xml来配置。

依赖

REST服务器是依赖于Trafodion可用现有的脚本和工具。

测试

测试将在源代码树中提供。这些可以通过运行的Maven Trafodion开始之后被调用。

 

  • No labels