【运维】linkis1.3.2添加jdbc引擎(添加mysql、greenplum、starrocks、doris数据源查询)与配合多数据源管理提交任务初探

news2024/11/19 13:13:50

文章目录

  • 一. 引擎的安装
    • 1. 前置工作
    • 2. 获取引擎插件
    • 3. 上传和加载
    • 4. 引擎刷新
      • 4.1. 重启刷新
      • 4.2. 检查引擎是否刷新成功
  • 二. 测试mysql、starrocks与doris数据库
    • 1. 通过shell提交任务
    • 2. 通过(IDE)shell进行提交
    • 3. 通过接口提交
  • 三. 添加greenplum
  • 四. 通过linkis的数据源管理提交任务(ing)
  • 五. 官方包安装(失败)(可略)

一. 引擎的安装

1. 前置工作

安装mysql(略)
 

2. 获取引擎插件

有两种方式:

直接下载引擎插件包 Linkis 引擎插件下载
单独编译引擎插件(需要有 maven 环境)

这里通过单独编译获取插件包

# 编译
cd ${linkis_code_dir}/linkis-engineconn-plugins/jdbc/
mvn clean install
# 编译出来的引擎插件包,位于如下目录中
${linkis_code_dir}/linkis-engineconn-plugins/jdbc/target/out/

执行很快就产生了插件包,比较顺利。

 

3. 上传和加载

引擎插件包上传到服务器的引擎目录下

${LINKIS_HOME}/lib/linkis-engineplugins

上传后目录结构如下所示

linkis-engineconn-plugins/
├── jdbc
│   ├── dist
│   │   └── 4
│   │       ├── conf
│   │       └── lib
│   └── plugin
│       └── 4

 

4. 引擎刷新

4.1. 重启刷新

通过重启 linkis-cg-linkismanager 服务刷新引擎

cd ${LINKIS_HOME}/sbin
sh linkis-daemon.sh restart cg-linkismanager

 

4.2. 检查引擎是否刷新成功

可以查看数据库中的 linkis_engine_conn_plugin_bml_resources 这张表的 last_update_time 是否为触发刷新的时间。(实际因为执行需要时间所以会有延迟)

#登陆到 `linkis` 的数据库 
select * from linkis_cg_engine_conn_plugin_bml_resources;

 
 

二. 测试mysql、starrocks与doris数据库

1. 通过shell提交任务

sh ./bin/linkis-cli -engineType jdbc-4 \
-codeType jdbc -code "show databases;" \
-submitUser user1 -proxyUser user1 \
-runtimeMap wds.linkis.jdbc.connect.url=jdbc:mysql://xxx:port \
-runtimeMap wds.linkis.jdbc.driver=com.mysql.jdbc.Driver \
-runtimeMap wds.linkis.jdbc.username=user \
-runtimeMap wds.linkis.jdbc.password=passwd

 
上述shell是连接mysql的配置,同样地,连接doris和starrocks也是通过mysql协议连接的,所以配置基本一致。

提交后在linkis的管理台可以看到如下查询的结果:
在这里插入图片描述

 

2. 通过(IDE)shell进行提交

在这里插入图片描述

sh ./bin/linkis-cli -creator IDE \
-engineType jdbc-4 -codeType jdbc \
-code "show tables"  \
-submitUser user1 -proxyUser user1 

 

3. 通过接口提交

curl --location --request POST 'http://xxx:8085/api/rest_j/v1/entrance/execute' \
--header 'Token-Code: BML-AUTH' \
--header 'Token-User: user1' \
--header 'Content-Type: application/json' \
--data-raw '{
    "executionContent": {"code": "show databases;", "runType":  "jdbc"},
    "proxyUser":"logsget",
    "params": {
                    "variable": {},
                    "configuration": {
                            "runtime": {
                                    "wds.linkis.jdbc.connect.url":"jdbc:mysql://xxx:3306",  
                                    "wds.linkis.jdbc.driver":"com.mysql.jdbc.Driver",
                                    "wds.linkis.jdbc.username":"root",
                                    "wds.linkis.jdbc.password":"xxx",
                                    "wds.linkis.engine.runtime.datasource.maxVersionId":"2"
                                }
                            }
                    },
    "labels": {
        "engineType": "jdbc-4",
        "executeUser": "user1"
    }
}'
  • 接口是dss提交任务的接口,这里我们可以通过postman进行模拟dss的访问请求
  • header中添加token的验证,这里是我们上篇手动创建的token,以便我们有权限请求
  • 请求体:
    – code:查询语句
    – wds.linkis.jdbc.*:为库的连接信息
    – wds.linkis.engine.runtime.datasource.maxVersionId:重点:用于标识不同的连接,我们暂不分析源码逻辑,linkis会维护一个map(key:连接标识,value:连接【以单例的形式存在】),通过传递不同标识,获取map中对应的连接,如果不添加这个参数,那么在执行任务时,只能找到第一次请求的连接。

 
 

三. 添加greenplum

添加gp驱动包greenplum-jdbc-5.1.4.jar放到

/data01/linkis/lib/linkis-engineconn-plugins/jdbc/dist/4/lib

下,刷新引擎:

cd ${LINKIS_HOME}/sbin
sh linkis-daemon.sh restart cg-linkismanager

等待引擎更新

可以查看数据库中的 linkis_engine_conn_plugin_bml_resources 这张表的 last_update_time 是否为触发刷新的时间。

#登陆到 `linkis` 的数据库 
select * from linkis_cg_engine_conn_plugin_bml_resources;

 
 
调用接口测试

curl --location --request POST 'http://xxx:8085/api/rest_j/v1/entrance/execute' \
--header 'Token-Code: BML-AUTH' \
--header 'Token-User: logsget' \
--header 'Content-Type: application/json' \
--data-raw '{
    "executionContent": {"code": "show databases;", "runType":  "jdbc"},
    "proxyUser":"logsget",
    "params": {
                    "variable": {},
                    "configuration": {
                            "runtime": {
                                    "wds.linkis.jdbc.connect.url":"jdbc:pivotal:greenplum://xxx:5432",  
                                    "wds.linkis.jdbc.driver":"com.pivotal.jdbc.GreenplumDriver",
                                    "wds.linkis.jdbc.username":"xx",
                                    "wds.linkis.jdbc.password":"xxx",
                                    "wds.linkis.engine.runtime.datasource.maxVersionId":"2"
                                }
                            }
                    },
    "labels": {
        "engineType": "jdbc-4",
        "executeUser": "logsget"
    }
}'

 
 

四. 通过linkis的数据源管理提交任务(ing)

linkis的数据源管理

基本逻辑:

  • 在数据源管理创建相关数据源连接,维护到数据库中
  • 遍写任务sql
  • 触发接口提交任务:linkis根据指定数据源名称,查到相关引擎参数,创建连接,或从map中获取链接,然后提交任务。

多数据源功能与优点:

在这里插入图片描述

 
 

五. 官方包安装(失败)(可略)

Linkis 引擎插件下载

提交任务

sh ./bin/linkis-cli -engineType jdbc-4 \
-codeType jdbc -code "show tables" \
-submitUser taiyi -proxyUser taiyi \
-runtimeMap wds.linkis.jdbc.connect.url=jdbc:mysql://11.33.176.205:3306/linkis \
-runtimeMap wds.linkis.jdbc.driver=com.mysql.jdbc.Driver \
-runtimeMap wds.linkis.jdbc.username=xmanager \
-runtimeMap wds.linkis.jdbc.password=XManager_360.cn

报错:

2023-07-27 22:48:40.048 INFO This TaskID_78_otJobId_astJob_2_retry_10 retry, new retry-task is:TaskID_78_otJobId_astJob_2_retry_11, retryCount: 2.reason:ask Engine failed 
errCode: 12003 ,desc: xxx:9101_23 Failed  to async get EngineNode 
LinkisRetryException: errCode: 30002 ,desc:  The em of labels {userCreator=taiyi-
LINKISCLI, codeType=jdbc, engineType=jdbc-4, executeOnce=} not found ,ip: 
xxx ,port: 9101 ,serviceKind: linkis-cg-linkismanager ,ip: 
xxx ,port: 9104 ,serviceKind: linkis-cg-entrance
解决办法:
1.  查看表 linkis_cg_manager_service_instance 是否有数据
2.  查看执行任务的参数是否正确,如 codeType,engineType
3.  可以truncate表之后重启engineconnmanager服务

重启之后:又报类找不到。。。
在这里插入图片描述

排查到这里实属有些心累,因为修改了挺多地方,还是不能正常使用,此时暂时认为官方下载的引擎包不能适配我的环境,接下来下载源码通过编译打包安装。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/886220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【java毕业设计】基于SSM+MySql的人才公寓管理系统设计与实现(程序源码)--人才公寓管理系统

基于SSMMySql的人才公寓管理系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于SSMMySql的人才公寓管理系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方式。更多毕业…

VGG简单学习

VGG简单学习 简单介绍 在AlexNet网络的基础上,为了设计深层神经网络,牛津大学设计了VGG网络,采用块的设计理念,将AlexNet中多个重复的卷积层和池化层组成一个块 论文中,使用3x3卷积核,padding1的卷积层 和带有2x2的汇…

网工内推 | 网络工程师专场,CCNP证书优先,多次晋升机会

01 上海正诺信息科技有限公司 招聘岗位:网络工程师 职责描述: 1、负责公司办公内网内网需求对接、实施和方案的标准化; 2、负责办公网络、机房的网络设备(接入层)的运维、变更、故障解决; 3、负责公司网…

网络通信原理ARP协议(第四十六课)

ARP/RARP报文 ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。RARP(Reverse Address Resolution Protocol,反向地址解析协议)是用来将MAC地址解析为IP地址的协议。 字段长度(bit)含义Ethernet Address of Destination48比特目的…

【GitHub】Pycharm本地项目打包上传到Github仓库的操作步骤

文章目录 1、Pycharm端的设置操作2、Github端的设置操作3、Pycharm上配置Github4、Git本地项目至GitHub仓库5、前往Github中查看确认6、常见报错 1、Pycharm端的设置操作 通过CtrlAltS快捷组合键的方式,打开设置,导航到版本控制一栏中的Git,…

【视频笔记】2023年上半年最耀眼的AI创业公司

大模型赛道: OpenAI(估值270-290亿美元):继续融资3亿美元 Anthropic(估值50亿美元):绑定谷歌、免费开放Claude2 Adept(估值10亿美元):推出ACT-1模型&#xf…

Navicat Premium连接sqlserve数据库失败?你需要注意这几点看看配置对了么?

新建数据库连接的时候这么填的信息 报错 原因1:sqlserver数据库的端口和IP地址之间不是:连接而是用,连接 改成如下样式用逗号连接端口和IP地址就好了 原因2:在Navicat Premium中需要安装一个sqlserver的插件 找到安装路径的根目…

2023年Android性能优化常见30道面试题解

在Android开发领域,性能优化是一个关键而广泛讨论的话题。对于任何一位Android开发者而言,了解和掌握性能优化的技巧是至关重要的。无论是在开发过程中还是在面试环节中,掌握Android性能优化的知识都能展示出你作为一名优秀开发者的能力。 本…

机器学习需要面对的两大问题:泛化性和可信性

随着人工智能的迅速发展,机器学习成为了炙手可热的领域,它让计算机能够从数据中学习并做出智能决策。然而,机器学习在取得巨大成功的同时,也面临着两个重大挑战:泛化性和可信性。这两大问题的解决关系到机器学习应用的…

驱动开发day3

#include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include<linux/io.h> #include <linux/device.h> #include "led.h"int major; char kbuf[256] {0};//定义指针接收映射…

【HarmonyOS北向开发】-01 HarmonyOS概述

飞书原文链接-【HarmonyOS北向开发】-01 HarmonyOS概述https://fvcs2dhq8qs.feishu.cn/docx/TDf2d2KMaoPSUUxnvg2cASDdnCe?fromfrom_copylink

k8s 自身原理之高可用

说到高可用&#xff0c;咱们在使用主机环境的时候&#xff08;非 k8s&#xff09;&#xff0c;咱做高可用有使用过这样的方式&#xff1a; 服务器做主备部署&#xff0c;当主节点和备节点同时存活的时候&#xff0c;只有主节点对外提供服务&#xff0c;备节点就等着主节点挂了…

Typora上传文件到Gitee

工作内容,不对外开放 一、Typora上传笔记到CSDN 一、安装node.js 官网链接:Node.js (nodejs.org) 下载后得到一个.msi文件,双击即可。 win + R 打开CMD,基于node -v 和npm -v,验证是否安装成功: 二、配置Gitee 1、新建仓库 2、开源此仓库 2.1、初始化readme文件

测试微信个人收款,实现静态博客文章付费和及时显示

1. 个人微信收款&#xff0c;不需要微信认证&#xff0c;这里通过赞赏码 2. hugo实现静态博客&#xff0c;付费功能是需要服务器动态实现的&#xff0c;可通过第三方实现 3. 通过javascript调用服务器&#xff0c;实现付费后即时显示&#xff0c;以及页面显示付费网友信息&am…

股市杠杆操作是什么意思?期货杠杆平台指的是什么?

在股市和期货市场中&#xff0c;杠杆操作是一种常见的投资手段。然而&#xff0c;许多人对于杠杆操作的概念和风险并不清楚。本文将科普股市杠杆操作和期货杠杆平台的相关知识&#xff0c;帮助读者了解其意义和特点。 一、股市杠杆操作的含义 股市杠杆操作是指通过借入资金股票…

EDA软件—Cadence学习笔记分享(内含安装教程)

作为流行的EDA工具之一&#xff0c;Cadence一直以来以其强大的功能受到广大EDA工程师的青睐。Cadence可以完成整个IC设计流程的各个方面。 Cadence 软件是一个功能强大的系统工具&#xff0c;包括很多功能模块&#xff0c;如原理图输入: 数字、模拟及混合电路仿真:自动布局、布…

# 快速评估立功科技基于S32K324的TMS方案

文章目录 1.前言2.立功科技的TMS方案介绍2.1 介绍资料2.2 简要介绍 3.S32K3_TriMotor评估板测试3.1 环境搭建S32 Design Studio for S32 Platform 3.4安装RTD 2.0.0安装Freemaster 3.2 3.2 例程测试3.3 例程适配3.4 双核烧录3.5 测试 1.前言 最近和一些做汽车水泵/风机的客户交…

【Linux命令详解 | wget命令】 wget命令用于从网络下载文件,支持HTTP、HTTPS和FTP协议

文章标题 简介一&#xff0c;参数列表二&#xff0c;使用介绍1. 基本文件下载2. 递归下载整个网站3. 限制下载速率4. 防止SSL证书校验5. 断点续传6. 指定保存目录7. 自定义保存文件名8. 增量下载9. 使用HTTP代理10. 后台下载 总结 简介 在编程世界中&#xff0c;处理网络资源是…

python 各种疑难杂包安装方法与踩坑记录

常用招数&#xff1a; 网络问题&#xff1a;切换网络线路/开关科学、启用/不用国内镜像 包找不到&#xff1a;启用/不用国内镜像、尝试conda、pip、source等多种安装方式 gdal、rasterio 参考链接&#xff1a; python rasterio库安装具体流程 - 知乎 Python安装gdal,raster…

JavaScript读取文件夹和文件、输出文件内容到控制台、showDirectoryPicker、getFile、FileReader、readAsText

文章目录 读取文件夹并输出某个文件内容读取文件及输出内容 读取文件夹并输出某个文件内容 效果图 html <button id"idFolder" class"fs_30 cursor_pointer">选择文件夹</button>JavaScript idFolder.onclick async function () {try {let …