【运维】linkis安装dss保姆级教程与踩坑实践

文章目录

  • 一. 安装准备
  • 二. 创建用户
  • 三. 准备安装包
  • 四. 修改配置
    • 1. 修改config.sh
    • 2. 修改db.sh
  • 五、安装和使用
    • 1. 执行安装脚本
    • 2. 启动服务
    • 3. 查看验证是否成功
  • 六. 报错处理
    • 报错一:The user is not logged in
    • 报错二:dss接口报错
    • 报错三:执行没有输出结果

dss官方安装文档

 

一. 安装准备

  • 需要的命令工具(安装时会自动检查,并安装,如果安装失败则需手动安装):telnet; tar; sed; dos2unix; mysql; yum; java; unzip; zip; expect
  • 需要安装的软件:MySQL (5.5+); JDK (1.8.0_141以上); Nginx
  • Tips: 请确保已安装Links

 

二. 创建用户

  1. 假设部署用户是taiyi账号
  2. 在所有需要部署的机器上创建部署用户,用于安装:sudo useradd taiyi
  3. 改部署用户权限:vi /etc/sudoers
    taiyi ALL=(ALL) NOPASSWD: NOPASSWD: ALL

 

三. 准备安装包

下载安装包:DSS Release-1.1.1,或者自己编译

这里选择了一键安装的dss安装包,安装起来比较方便。

DSS 一键安装部署包的层级目录结构如下:

├── dss_install # 一键部署主目录├── bin # 用于一键安装,以及一键启动 DSS├── conf # 一键部署的参数配置目录├── wedatasphere-dss-x.x.x-dist.tar.gz # DSS后端安装包├── wedatasphere-dss-web-x.x.x-dist.zip # DSS前端安装包

 

四. 修改配置

1. 修改config.sh

### deploy user
deployUser=taiyi### DSS Web
DSS_NGINX_IP=dss安装所在ip或hostname
DSS_WEB_PORT=8085### DSS VERSION
DSS_VERSION=1.1.1LINKIS_HOME=
###  EUREKA install information
########## 这些配置会产生dss的nginx配置,注意别写默认的127.0.0.1
###  You can access it in your browser at the address below:http://${EUREKA_INSTALL_IP}:${EUREKA_PORT}
###  Microservices Service Registration Discovery Center
LINKIS_EUREKA_INSTALL_IP=linkis EUREKA所在节点ip
LINKIS_EUREKA_PORT=20303
#LINKIS_EUREKA_PREFER_IP=true###  Gateway install information
LINKIS_GATEWAY_INSTALL_IP=linkis GATEWAY所在节点ip
LINKIS_GATEWAY_PORT=9001
############ java application default jvm memory
export SERVER_HEAP_SIZE="512M"##sendemail配置,只影响DSS工作流中发邮件功能
EMAIL_HOST=smtp.163.com
EMAIL_PORT=25
EMAIL_USERNAME=xxx@163.com
EMAIL_PASSWORD=xxxxx
EMAIL_PROTOCOL=smtp### Save the file path exported by the orchestrator service
ORCHESTRATOR_FILE_PATH=/home/taiyi/dss1.1.1/orchestrator-service
### Save DSS flow execution service log path
EXECUTION_LOG_PATH=/home/taiyi/dss1.1.1/logs

 

2. 修改db.sh

### for DSS-Server and Eventchecker APPCONN
MYSQL_HOST=ip
MYSQL_PORT=3306
MYSQL_DB=linkis_dss
MYSQL_USER=user
MYSQL_PASSWORD=pd#主要是配合scriptis一起使用,如果不配置,会默认尝试通过$HIVE_CONF_DIR 中的配置文件获取
# 或者不配置、或找不到配置则在scriptis使用不了hive
HIVE_META_URL="jdbc:mysql://hostname:3306/hivedb?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false"
HIVE_META_USER="user"
HIVE_META_PASSWORD="pd"

 

五、安装和使用

1. 执行安装脚本

cd xx/dss_install/bin
sh install.sh

2. 启动服务

在xx/dss_install/bin目录下执行启动服务脚本

sh start-all.sh

如果启动产生了错误信息,可以查看具体报错原因。启动后,各项微服务都会进行通信检测,如果有异常则可以帮助用户定位异常日志和原因。

3. 查看验证是否成功

  • 用户可以在Linkis的Eureka界面查看 DSS 后台各微服务的启动情况,默认情况下DSS有7个微服务
  • 用户可以使用谷歌浏览器访问以下前端地址:http://DSS_NGINX_IP:DSS_WEB_PORT 启动日志会打印此访问地址(在xx/dss_install/conf/config.sh中也配置了此地址)。

 

六. 报错处理

报错一:The user is not logged in

解决方式:手动添加令牌

日志分析

2023-07-26 20:52:04.149 [INFO ] [main                                    ] o.a.l.h.d.DWSHttpClient (110) [org$apache$linkis$httpclient$AbstractHttpClient$$addAttempt$1] - The user is not logged in, please log in first, you can set a retry
2023-07-26 20:52:04.153 [ERROR] [main                                    ] c.w.w.d.c.u.DSSExceptionUtils (42) [lambda$handling$0] - execute failed, reason: org.apache.linkis.httpclient.exception.HttpClientRetryException: errCode: 10900 ,desc: The user is not logged in, please log in first, you can set a retry, message: 这里是dds向links的gateway接口请求令牌
{"method":"/api/rest_j/v1/bml/upload","status":-1,"message":"Token Authentication Failed, token: BML-AUTH,tokenUser: taiyi, reason: errCode: 15201 ,desc: Token is not valid or stale(token 令牌无效或已过期)! ,ip: bi50v.poc.bjmd.qihoo.net ,port: 9001 ,serviceKind: linkis-mg-gateway","data":{}} ,ip: bi50v.poc.bjmd.qihoo.net ,port: 9002 ,serviceKind: dss-framework-project-serverat org.apache.linkis.httpclient.AbstractHttpClient.org$apache$linkis$httpclient$AbstractHttpClient$$addAttempt$1(AbstractHttpClient.scala:115) ~[linkis-httpclient-1.1.1.jar:1.1.1]at org.apache.linkis.httpclient.AbstractHttpClient.execute(AbstractHttpClient.scala:123) ~[linkis-httpclient-1.1.1.jar:1.1.1]at org.apache.linkis.httpclient.AbstractHttpClient.execute(AbstractHttpClient.scala:92) ~[linkis-httpclient-1.1.1.jar:1.1.1]at org.apache.linkis.bml.client.impl.HttpBmlClient.uploadResource(HttpBmlClient.scala:313) ~[linkis-bml-client-1.1.1.jar:1.1.1]at com.webank.wedatasphere.dss.framework.appconn.service.impl.AppConnResourceServiceImpl.upload(AppConnResourceServiceImpl.java:121) ~[dss-appconn-framework-1.1.1.jar:?]at 

通过查看日志堆栈,基本可以定位到,dss调用links的gateway接口发送令牌,以便能成功与linkis连通,但因为令牌的原因(令牌无效或已过期)导致dss无法通过linkis gateway的校验。所以我们需要找到符合逻辑的令牌。

 

通过阅读相关linkis gateway代码知道,令牌存在linkis_mg_gateway_auth_token表中

在这里插入图片描述

而这些令牌是linkis安装时进行初始化的,接着看dss提供的令牌是:BML-AUTH,这里显然没有,那既然这样手动添加一个BML-AUTH令牌。
在这里插入图片描述

重启linkis服务,访问前端,输入用户名密码,进来了。
在这里插入图片描述
 

报错二:dss接口报错

在这里插入图片描述

rg.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)\n\tat 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadEx
ecutor.java:409)\n\tat 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)\n\tat 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)\n\
tat java.lang.Thread.run(Thread.java:748)\nCaused by: 
org.apache.ibatis.exceptions.PersistenceException: \n### Error querying database.  
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC 
Connection; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: 
wait millis 6000, active 0, maxActive 20, creating 0, createErrorCount 98652\n### The 
error may exist in URL [jar:file:/home/taiyi/linkis1.3.2/install/lib/linkis-public-
enhancements/linkis-ps-publicservice/linkis-metadata-
1.3.2.jar!/mapper/common/HiveMetaDao.xml]\n### The error may involve 
org.apache.linkis.metadata.hive.dao.HiveMetaDao.getAllDbs\n### The error occurred whileexecuting a query\n### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 6000, active 0, maxActive 20, creating 0, createErrorCount 98652\n\tat 
org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)\n\tat 

通过观察报错信息getAllDbs所用的连接配置,定位到linkis-ps-publicservice模块下的配置出现了问题,如下:

修改配置:
vim conf/db.sh
vim conf/linkis-ps-publicservice.properties

### Provide the DB information of Hive metadata database.
### Attention! If there are special characters like "&", they need to be enclosed in quotation marks.
HIVE_META_URL="jdbc:mysql://hive_meta_hive_db:3306/hivedb?createDatabaseIfNotExist=true'&'amp;useUnicode=true'&'amp;characterEncoding=UTF-8'&'amp;useSSL=false"

而错误的原因就是:

Attention! If there are special characters like “&”, they need to be enclosed in quotation marks.

 

报错三:执行没有输出结果

执行没有输出结果,报错如下:
在这里插入图片描述

具体是输出结果的路径配置的的不对,而输出结果路径是在安装时配置的,如下在install脚本中

在这里插入图片描述

安装后存在两个位置,修改:

vim install/conf/linkis-env.sh
 在这里插入图片描述

vim linkis-cg-entrance.properties
在这里插入图片描述

 

重启linkis,再执行Script:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法随笔:图论问题之割点割边

割点 定义 割点的定义:如果一个点被删除之后会导致整个图不再是一个连通图,那么这个顶点就是这个图的割点。举例: 上图中的点2就是一个割点,如果它被删除,则整个图被分为两个连通分量,不再是一个连通图。…

vue3多条件搜索功能

搜索功能在后台管理页面中非常常见&#xff0c;本篇就着重讲一下vue3-admin-element框架中如何实现一个顶部多条件搜索功能 一、首先需要在vue页面的<template></template>中写入对应的结构 <!-- 搜索 --><div style"display: flex; justify-content…

突破大模型 | Alluxio助力AI大模型训练-成功案例(一)

更多详细内容可见《Alluxio助力AI大模型训练制胜宝典》 【案例一&#xff1a;知乎】多云缓存在知乎的探索:从UnionStore到Alluxio 作者&#xff1a;胡梦宇-知乎大数据基础架构开发工程师&#xff08;内容转载自InfoQ&#xff09; 一、背景 随着云原生技术的飞速发展&#xff…

ApacheCon - 云原生大数据上的 Apache 项目实践

Apache 软件基金会的官方全球系列大会 CommunityOverCode Asia&#xff08;原 ApacheCon Asia&#xff09;首次中国线下峰会将于 2023 年 8 月 18-20 日在北京丽亭华苑酒店举办&#xff0c;大会含 17 个论坛方向、上百个前沿议题。 字节跳动云原生计算团队在此次 CommunityOve…

Java多线程编程中的线程间通信

Java多线程编程中的线程间通信 基本概念&#xff1a; ​ 线程间通信是多线程编程中的一个重要概念&#xff0c;指的是不同线程之间如何协调和交换信息&#xff0c;以达到共同完成任务的目的。 线程间通信的目的 ​ 是确保多个线程能够按照一定的顺序和规则进行协作&#xff…

使用QT可视化设计对话框详细步骤与代码

一、创建对话框基本步骤 创建并初始化子窗口部件把子窗口部件放到布局中设置tab键顺序建立信号-槽之间的连接实现对话框中的自定义槽 首先前面三步在这里是通过ui文件里面直接进行的&#xff0c;剩下两步则是通过代码来实现 二、项目创建详细步骤 创建新项目 为项目命名 为…

计算机组成原理之地址映射

例1&#xff1a;某计算机主存容量256MB&#xff0c;按字编址&#xff0c;字长1B&#xff0c;块大小32B&#xff0c;Cache容量512KB。对如下的直接映射方式、4-路组相联映射方式、全相联映射方式的内存地址格式&#xff0c;求&#xff1a; &#xff08;1&#xff09;计算A、B、C…

案例研究|大福中国通过JumpServer满足等保合规和资产管理双重需求

“大福中国为了满足安全合规要求引入堡垒机产品&#xff0c;在对比了传统型堡垒机后&#xff0c;发现JumpServer使用部署更加灵活&#xff0c;功能特性丰富&#xff0c;能够较好地满足公司在等保合规和资产管理方面的双重需求。” ——大福&#xff08;中国&#xff09;有限公…

网络编程(8.14)TCP并发服务器模型

作业&#xff1a; 1. 多线程中的newfd&#xff0c;能否修改成全局&#xff0c;不行&#xff0c;为什么&#xff1f; 2. 多线程中分支线程的newfd能否不另存&#xff0c;直接用指针间接访问主线程中的newfd,不行&#xff0c;为什么&#xff1f; 多线程并发服务器模型原代码&…

YOLOv5基础知识入门(3)— 目标检测相关知识点

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLO算法发展历程和YOLOv5核心基础知识学习完成之后&#xff0c;接下来我们就需要学习目标检测相关知识了。为了让大家后面可以顺利地用YOLOv5进行目标检测实战&#xff0c;本节课就带领大家学习一下目标检测的基础知识点&…

SpringBootWeb案例

通过该综合案例,我们就可以知道,在开发一个Web程序时,前端程序、后端程序以及数据库这三者之间是如何交互、如何协作的,而通过这个综合案例也需要掌握根据接口文档开发服务端接口的能力。 而这个案例呢,就是Tlias智能学习辅助系统。 产品经理所绘制的页面原型: 在这个案…

less基本使用

1 less中的变量 //对值进行声明 link-color: #ccc//定义变量名称 .{sleName} {}bg: background-color; //定义属性名称 .container {{bg}: red; }2 继承&#xff08;复用重复样式&#xff09; //继承必须位于选择器最后 //继承选择器名不能为变量 .a:hover:extend(.b) {}.a {…

数据结构篇七:排序

文章目录 前言1.插入排序1.1 基本思想1.2 代码实现1.3 特性总结 2.希尔排序2.1 基本思想2.2 代码实现2.3 特性总结 3. 选择排序3.1 基本思想3.2 代码实现3.3 特性总结 4. 堆排序4.1 基本思想4.2 代码实现4.3 特性总结 5. 冒泡排序5.1 基本思想5.2 代码实现5.3 特性总结 6. 快速…

浦东优秀解决方案!闪马智能加速赋能数字化转型

近日&#xff0c;由上海市浦东新区城市数字化转型应用促进中心和上海数字产业发展有限公司联合主办的2023年浦东新区“数转汇”品牌活动启动仪式暨上海数产“科技下午茶”活动举行。现场“2022年浦东新区数字化转型应用优秀解决方案”正式发布&#xff0c;凭借智慧交通一体化感…

VM中linux虚拟机配置桥接模式(虚拟机与宿主机网络互通)

VM虚拟机配置桥接模式&#xff0c;可以让虚拟机和物理主机一样存在于局域网中&#xff0c;可以和主机相通&#xff0c;和互联网相通&#xff0c;和局域网中其它主机相通。 vmware为我们提供了三种网络工作模式&#xff0c;它们分别是&#xff1a;Bridged&#xff08;桥接模式&…

智头条|DFM-2大模型吹热智能家居,360安全云正式发布

行业动态 DFM-2大模型吹热智能家居 近期,思必驰行业语言计算大模型DFM-2正式发布,也带来了人机交互能力的提升和优秀的技术落地能力。DFM-2大模型与DUI平台结合推出DUI2.0,完成了对话式AI全链路技术的升级,推进深度产业应用。在智能家居领域,目前思必驰已与海信、长虹美菱、老…

ORA-00845: MEMORY_TARGET not supported on this system

处理故障时&#xff0c;发现startup实例失败&#xff0c;报错ORA-00845: MEMORY_TARGET not supported on this system SYSorcl1> startup; ORA-00845: MEMORY_TARGET not supported on this system 查看alert日志&#xff0c;报错如下 Starting ORACLE instance (normal…

一个脚本 专治杂乱

背景 之前不是自己手动搞了一个COS嘛&#xff0c;直接复制粘贴图片&#xff0c;上传到后端的服务器&#xff0c;返回一个可访问的地址。我在哔哩哔哩上也分享过这样的一期视频。 今天偶尔上服务器一看&#xff0c;我靠&#xff0c;我的文件真的乱&#xff01; 这还得了了&…

ViewFs And Federation On HDFS

序言 ViewFs 是在Federation的基础上提出的,用于通过一个HDFS路径来访问多个NameSpace,同时与ViewFs搭配的技术是client-side mount table(这个就是具体的规则配置信息可以放置在core.xml中,也可以放置在mountTable.xml中). 总的来说ViewFs的其实就是一个中间层,用于去连接不…

Redis - 数据类型映射底层结构

简介 从数据类型上体现就是&#xff0c;同一个数据类型&#xff0c;在不同的情况下会使用不同的编码类型&#xff0c;底层所使用的的数据结构也不相同。 字符串对象 字符串对象的编码可以是 int、raw 和 embstr 三者之一。 embstr 编码是专门用于保存简短字符串的一种优化编…