【运维】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.hqwc.cn/news/68683.html

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

相关文章

div中的元素水平居中对齐

<div><img src"imgs/xy.jpg" alt""><h2>百变小樱</h2> </div> <style>* {padding: 0;margin: 0;box-sizing: border-box;}div {width: 200px;height: 300px;margin: 20em auto;padding-top: 4em;border: 2px solid rg…

SpringBoot、Java 使用 Jsoup 解析 HTML 页面

使用 Jsoup 解析 HTML 页面 什么是 Jsoup&#xff1f; Jsoup 是一个用于处理 HTML 页面的 Java 库&#xff0c;它提供了简单的 API&#xff0c;使得从 HTML 中提取数据变得非常容易。无论是获取特定标签的内容还是遍历整个页面的元素&#xff0c;Jsoup 都能轻松胜任。 如何使…

H13-922题库 HCIP-GaussDB-OLAP V1.5

**H13-922 V1.5 GaussDB(DWS) OLAP题库 华为认证GaussDB OLAP数据库高级工程师HCIP-GaussDB-OLAP V1.0自2019年10月18日起&#xff0c;正式在中国区发布。当前版本V1.5 考试前提&#xff1a; 掌握基本的数据库基础知识、掌握数据仓库运维的基础知识、掌握基本Linux运维知识、…

【博客692】grafana如何解决step动态变化时可能出现range duration小于step

grafana如何解决step动态变化时可能出现range duration小于step 1、grafana中的step和resolution grafana中的 “step” grafana本身是没有提供step参数的&#xff0c;因为仪表盘根据查询数据区间以及仪表盘线条宽度等&#xff0c;对于不同查询&#xff0c;相同的step并不能…

SpringBoot中的可扩展接口

目录 # 背景 # 可扩展的接口启动调用顺序图 # ApplicationContextInitializer # BeanDefinitionRegistryPostProcessor # BeanFactoryPostProcessor # InstantiationAwareBeanPostProcessor # SmartInstantiationAwareBeanPostProcessor # BeanFactoryAware # Applicati…

Springboot + Vue ElementUI 实现MySQLPostgresql可视化

一、功能展示&#xff1a; 效果如图&#xff1a; DB连接配置维护&#xff1a; Schema功能&#xff1a;集成Screw生成文档&#xff0c;导出库的表结构&#xff0c;导出表结构和数据 表对象操作&#xff1a;翻页查询&#xff0c;查看创建SQL&#xff0c;生成代码 可以单个代码文…

3D- vista:预训练的3D视觉和文本对齐Transformer

论文&#xff1a;https://arxiv.org/abs/2308.04352 代码: GitHub - 3d-vista/3D-VisTA: Official implementation of ICCV 2023 paper "3D-VisTA: Pre-trained Transformer for 3D Vision and Text Alignment" 摘要 三维视觉语言基础(3D- vl)是一个新兴领域&…

微软商店的ubuntu 连不上网Temporary failure in name resolution

背景&#xff1a;win10 下载docker时需要wsl2&#xff0c;下了个微软商店的Ubuntu 。写这篇文章的原因是当时查了资料ubuntu的问题和微软下载的Ubuntu还是有一些区别&#xff0c;问题不好解决&#xff0c;故写此文。 问题&#xff1a;用命令ifconfig eth0 down后再执行ifconfi…

深入探索:解读创意的力量——idea的下载、初步使用

目录 ​编辑 1.IDEA的简介 2.IDEA的下载 2.1下载路径https://www.jetbrains.com/zh-cn/idea/download/?sectionwindows​编辑​ 2.2下载的步骤 3 idea的初步使用 3.1新建一个简单的Java项目 3.1.1首先需要创建一个新的工程 3.1.2创建一个新的项目&#xff08;模块&am…

ceph相关概念和部署

Ceph 可用于向云提供 Ceph 对象存储 平台和 Ceph 可用于提供 Ceph 块设备服务 到云平台。Ceph 可用于部署 Ceph 文件 系统。所有 Ceph 存储集群部署都从设置 每个 Ceph 节点&#xff0c;然后设置网络。 Ceph 存储集群需要满足以下条件&#xff1a;至少一个 Ceph 监控器&#x…

探索Java中的静态变量与实例变量:存储区域、生命周期以及内存分配方式的区别

文章目录 静态变量实例变量不可变对象静态变量和实例变量有什么区别&#xff1f;静态变量实例变量 Object 类都有哪些公共方法&#xff1f;Java 创建对象有哪几种方式&#xff1f;ab 与 a.equals(b) 有什么区别&#xff1f;总结 &#x1f389;欢迎来到Java面试技巧专栏~探索Jav…

详解RFC 793文档-3

3.4 建立连接 三次握手用来建立连接,这个过程通常由一个TCP发起,并由另一个TCP响应。如果两个TCP同时启动该过程,该过程也可以工作。这说明客户端和服务器可以同时发起连接请求,且能够连接成功。当同时尝试连接时,每个TCP在发送自己的SYN后接收到一个不携带任何ACK确认的…