以无HDFS模式部署linkis 1.3.2


前言

工作需要,开发需要使用linkis,于是尝试部署linkis。

本文档基本参考官方文档,主要是在按照官方文档部署的时候碰到一些小问题,所以记录一下完整的操作步骤,自己备份用。

linkis的版本为1.3.2。

以无HDFS模式部署(去HDFS模式部署不支持hive/spark/flink引擎等任务)。


一、首次安装准备事项

1.1 Linux服务器

硬件要求

安装linkis 微服务近10个,至少3G内存。每个微服务默认配置启动的jvm -Xmx 内存大小为 512M(内存不够的情况下,可以尝试调小至256/128M,内存足够情况下也可以调大)。

我这里直接部署了一个CentOS7.9的虚拟机,内存8G,磁盘200G。

更新一下全部服务,并重启一下服务器。

yum update -y
reboot

1.2 部署说明

安装linkis之前需要部署 yum、Java、MySQL、telnet、tar、sed、lsof、nginx。

部署路径为/opt/soft/

创建两个文件夹分别给linkis的前后端部署使用,并将安装包上传至对应文件夹当中。

mkdir /opt/soft
mkdir /opt/soft/apache-linkis-1.3.2-bin
mkdir /opt/soft/apache-linkis-1.3.2-web-bin

1.3 添加部署用户

部署用户: linkis核心进程的启动用户,同时此用户会默认作为管理员权限,部署过程中会生成对应的管理员登录密码,位于conf/linkis-mg-gateway.properties文件中 Linkis支持指定提交、执行的用户。linkis主要进程服务会通过sudo -u ${linkis-user} 切换到对应用户下,然后执行对应的引擎启动命令,所以引擎linkis-engine进程归属的用户是任务的执行者(因此部署用户需要有sudo权限,而且是免密的)。

以hadoop用户为例:

先查看系统中是否已经有 hadoop 用户,若已经存在,则直接授权即可,若不存在,先创建用户,再授权。

查看是否已存在 hadoop 用户

id hadoop

若不存在,则需要创建 hadoop用户组和hadoop 用户,并加入 hadoop 用户组

groupadd hadoop
useradd hadoop -g hadoop
vi /etc/sudoers
#免密配置
hadoop ALL=(ALL) NOPASSWD: NOPASSWD: ALL

1.4 安装jdk

这里使用的是jdk1.8.0_211。

将jdk-8u211-linux-x64.tar.gz上传至服务器,进行解压。

tar -zxvf jdk-8u211-linux-x64.tar.gz
mv jdk1.8.0_211 /usr/local/jdk1.8
rm -rf jdk-8u211-linux-x64.tar.gz

配置JAVA_HOME

vi /etc/profile
#在结尾处添加
export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/LIB:$JRE_HOME/LIB:$CLASSPATH
export PATH=$JAVA_HOME:$JRE_HOME/bin:$PATH
#使配置生效
source /etc/profile

1.5 安装mysql

我在另一台服务器上已经使用docker部署了mysql了,所以这边只需要安装mysql命令即可。

#安装wget
yum install -y wget
#下载安装mysql8.0
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum localinstall mysql80-community-release-el7-3.noarch.rpm
wget https://dev.mysql.com/doc/mysql-apt-config.repo.latest.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install -y mysql 

1.6 安装nginx

在部署linkis前端的时候,脚本会通过yum安装nginx,但其没考虑过yum没有安装成功的情况(CentOS7的yum源没有nginx安装包),所以这里自己安装一下nginx。

可以选择通过修改yum源安装nginx,优点是安装后的路径都是默认路径(比如配置文件路径为/etc/nginx/nginx.conf),后续可以直接使用。

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx 

也可以选择手动源码安装nginx。

官网下载nginx最新版本。

#安装依赖文件
#安装gcc
yum install -y gcc-c++
#安装PCRE pcre-devel
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装Open SSL
yum install -y openssl openssl-devel
#下载nginx安装包
cd /opt/soft
wget http://nginx.org/download/nginx-1.24.0.tar.gz
#创建一个文件夹
mkdir -p /usr/local/nginx
cd /opt/soft
#解压缩包,直接tar -xvf nginx安装包所在路径
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
#编译
./configure --prefix=/usr/local/nginx
#部署
make && make install

这样部署下来的nginx的配置文件路径是/usr/local/nginx/conf/nginx.conf。

1.7 安装其他依赖

tar和sed是默认安装的,只需执行yum额外安装telnet、lsof即可。

yum install -y telnet
yum install -y lsof

二、配置修改

2.1 安装包准备

方式1:从官网下载地址下载对应的安装包(项目安装包和管理台安装包)。

方式2:根据Linkis 编译打包前端管理台编译自行编译出项目安装包和管理台安装包。

上传安装包apache-linkis-1.3.2-bin.tar.gz后,进行解压安装包

mv apache-linkis-1.3.2-bin.tar.gz /opt/soft/apache-linkis-1.3.2-bin/
cd /opt/soft/apache-linkis-1.3.2-bin/
tar -zxvf apache-linkis-1.3.2-bin.tar.gz

解压后的目录结构如下:

-rw-r--r-- 1 hadoop hadoop 518192043 Jun 20 09:50 apache-linkis-1.3.2-bin.tar.gz
drwxrwxr-x 2 hadoop hadoop      4096 Jun 20 09:56 bin  //执行环境检查和安装的脚本
drwxrwxr-x 2 hadoop hadoop      4096 Jun 20 09:56 deploy-config // 部署时依赖的DB等环境配置信息
drwxrwxr-x 4 hadoop hadoop      4096 Jun 20 09:56 docker
drwxrwxr-x 4 hadoop hadoop      4096 Jun 20 09:56 helm
-rwxrwxr-x 1 hadoop hadoop     84732 Jan 22  2020 LICENSE
drwxr-xr-x 2 hadoop hadoop     20480 Jun 20 09:56 licenses
drwxrwxr-x 7 hadoop hadoop      4096 Jun 20 09:56 linkis-package // 实际的软件包,包括lib/服务启动脚本工具/db的初始化脚本/微服务的配置文件等
-rwxrwxr-x 1 hadoop hadoop    119503 Jan 22  2020 NOTICE
-rw-r--r-- 1 hadoop hadoop     11959 Jan 22  2020 README_CN.md
-rw-r--r-- 1 hadoop hadoop     12587 Jan 22  2020 README.md

2.2 配置数据库信息

需提前在MySQL数据库创建对应的库和用户。

#在MySQL数据库中以root用户执行
create database linkis;
#创建linkis用户,密码可以设复杂点
create user 'linkis'@'%' identified by 'linkis123';
grant all privileges on `linkis`.* to 'linkis'@'%';
flush privileges;

编辑配置数据库信息文件

vi deploy-config/db.sh
# Linkis自身业务的数据库信息
MYSQL_HOST=xx.xx.xx.xx
MYSQL_PORT=3306
MYSQL_DB=linkis
MYSQL_USER=linkis
MYSQL_PASSWORD=linkis123

# 提供 Hive 元数据数据库的 DB 信息,如果不涉及hive引擎(或则只是简单试用),可以不配置 
#主要是配合scriptis一起使用,如果不配置,会默认尝试通过$HIVE_CONF_DIR 中的配置文件获取
HIVE_META_URL="jdbc:mysql://10.10.10.10:3306/hive_meta_demo?useUnicode=true&characterEncoding=UTF-8" 
HIVE_META_USER=demo   # HiveMeta元数据库的用户
HIVE_META_PASSWORD=demo123    # HiveMeta元数据库的密码

2.3 配置基础变量

文件位于deploy-config/linkis-env.sh。

部署用户

deployUser=hadoop #执行部署的用户,为 1.3 步骤给中创建的用户

基础目录配置(可选)

# 指定用户使用的目录路径,一般用于存储用户的脚本文件和日志文件等,是用户的工作空间。 对应的配置文件配置项为  wds.linkis.filesystem.root.path(linkis.properties)
WORKSPACE_USER_ROOT_PATH=file:///tmp/linkis 

# 结果集日志等文件路径,用于存储Job的结果集文件  wds.linkis.resultSet.store.path(linkis-cg-entrance.properties) //如果未配置 使用HDFS_USER_ROOT_PATH的配置
RESULT_SET_ROOT_PATH=file:///tmp/linkis 

# 结果集日志等文件路径,用于存储Job的结果集文件  wds.linkis.filesystem.hdfs.root.path(linkis.properties)
HDFS_USER_ROOT_PATH=hdfs:///tmp/linkis 
  
# 存放执行引擎的工作路径,需要部署用户有写权限的本地目录   wds.linkis.engineconn.root.dir(linkis-cg-engineconnmanager.properties)
ENGINECONN_ROOT_PATH=/appcom/tmp

JVM内存配置(可选)

微服务启动jvm内存配置,可以根据机器实际情况进行调整,如果机器内存资源较少,可以尝试调小至256/128M。

## java application default jvm memory
export SERVER_HEAP_SIZE="512M"

安装目录配置(可选)

Linkis最终会被安装到此目录下,不配置默认是与当前安装包同一级目录下。

##The decompression directory and the installation directory need to be inconsistent
LINKIS_HOME=/appcom/Install/LinkisInstall

无HDFS模式部署(可选 >1.1.2版本支持)

在没有HDFS 的环境中部署 Linkis 服务,以方便更轻量化的学习使用和调试。去HDFS模式部署不支持hive/spark/flink引擎等任务。

修改 linkis-env.sh 文件,修改以下内容:

#使用[file://]路径模式代替[hdfs://]模式 
WORKSPACE_USER_ROOT_PATH=file:///tmp/linkis/ 
HDFS_USER_ROOT_PATH=file:///tmp/linkis 
RESULT_SET_ROOT_PATH=file:///tmp/linkis 

export ENABLE_HDFS=false
export ENABLE_HIVE=false
export ENABLE_SPARK=false

三、安装和启动

3.1 添加mysql驱动包

因为mysql-connector-java驱动是GPL2.0协议,不满足Apache开源协议关于license的政策,因此从1.0.3版本开始,提供的Apache版本官方部署包,默认是没有mysql-connector-java-x.x.x.jar的依赖包(若是通过集成的全家桶物料包安装,则无需手动添加),安装部署时需要自行添加依赖到对应的lib包中。 可以在对应的目录下查看是否存在,如果不存在则需要添加。

下载mysql驱动 以8.0.33版本为例:

下载地址

拷贝mysql驱动包至lib包下。

cp mysql-connector-j-8.0.33.jar  /opt/soft/apache-linkis-1.3.2-bin/linkis-package/lib/linkis-spring-cloud-services/linkis-mg-gateway/
cp mysql-connector-j-8.0.33.jar  /opt/soft/apache-linkis-1.3.2-bin/linkis-package/lib/linkis-commons/public-module/

3.2 执行安装脚本

cd /opt/soft/apache-linkis-1.3.2-bin
sh bin/install.sh

install.sh脚本会询问您是否需要初始化数据库并导入元数据。如果选择初始化,会把数据库中的表数据清空重新初始化。

第一次安装必须选清空数据库。

如果出现报错,又不清楚具体是执行什么命令报错,可以加 -x 参数sh -x bin/install.sh,将shell脚本执行过程日志打印出来,方便定位问题。 权限问题:mkdir: cannot create directory ‘xxxx’: Permission denied,请确认部署用户是否拥有该路径的读写权限。

执行成功提示如下:

`Congratulations! You have installed Linkis 1.0.3 successfully, please use sh /data/Install/linkis/sbin/linkis-start-all.sh to start it!  
Your default account password is [hadoop/5e8e312b4]`

3.3 启动服务

sh sbin/linkis-start-all.sh

3.4 安装后配置的修改

安装完成后,如果需要修改配置(因端口冲突或则某些配置有问题需要调整配置),可以重新执行安装,或则修改对应服务的配置${LINKIS_HOME}/conf/*properties文件后,重启对应的服务,如:sh sbin/linkis-daemon.sh start ps-publicservice。

3.5 检查服务是否正常启动

访问eureka服务页面(http://eurekaip:20303), 默认会启动6个 Linkis 微服务,其中下图linkis-cg-engineconn服务为运行任务才会启动。

在这里插入图片描述

LINKIS-CG-ENGINECONNMANAGER 引擎管理服务 
LINKIS-CG-ENTRANCE  计算治理入口服务
LINKIS-CG-LINKISMANAGER  计算治理管理服务 
LINKIS-MG-EUREKA        微服务注册中心服务   
LINKIS-MG-GATEWAY  网关服务 
LINKIS-PS-PUBLICSERVICE 公共服务 

注意:在 Linkis 1.3.1 中已将 LINKIS-PS-CS、LINKIS-PS-DATA-SOURCE-MANAGER、LINKIS-PS-METADATAMANAGER服务合并到LINKIS-PS-PUBLICSERVICE,将LINKIS-CG-ENGINEPLUGIN服务合并到LINKIS-CG-LINKISMANAGER。

如果有服务未启动,可以在对应的log/${服务名}.log文件中查看详细异常日志。


四、安装web前端

web端是使用nginx作为静态资源服务器的,访问请求流程是: Linkis管理台请求->nginx ip:port->linkis-gateway ip:port-> 其他服务 。

4.1 下载前端安装包并解压

mv apache-linkis-1.3.2-web-bin.tar.gz /opt/soft/apache-linkis-1.3.2-web-bin/
cd /opt/soft/apache-linkis-1.3.2-web-bin/
tar -xvf apache-linkis-1.3.2-web-bin.tar.gz

4.2 修改配置config.sh

#访问管理台的端口
linkis_port="8188"

#linkis-mg-gateway服务地址
linkis_url="http://localhost:9020"

4.3 执行部署脚本

cd /opt/soft/apache-linkis-1.3.2-web-bin/
sh install.sh

安装后,linkis的nginx配置文件默认是在 /etc/nginx/conf.d/linkis.conf 。

nginx的日志文件在 /var/log/nginx/access.log 和/var/log/nginx/error.log 。

生成的linkis管理台的nginx配置文件示例如下(如果是源码安装的话就把下面的配置手动添加到nginx的配置文件nginx.conf中的对应位置即可):

        server {
            listen       8188;# 访问端口 如果端口被占用,则需要修改
            server_name  localhost;
            #charset koi8-r;
            #access_log  /var/log/nginx/host.access.log  main;
            location / {
            root   /opt/soft/apache-linkis-1.3.2-web-bin/dist; # 静态文件目录 
            index  index.html index.html;
            }
            location /ws {
            proxy_pass http://localhost:9001;#后端Linkis的地址
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection upgrade;
            }

            location /api {
            proxy_pass http://localhost:9001; #后端Linkis的地址
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header x_real_ipP $remote_addr;
            proxy_set_header remote_addr $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_http_version 1.1;
            proxy_connect_timeout 4s;
            proxy_read_timeout 600s;
            proxy_send_timeout 12s;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection upgrade;
            }

            #error_page  404              /404.html;
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
            root   /usr/share/nginx/html;
            }
        }

如果需要修改端口或则静态资源目录等,请修改nginx的配置文件后执行 nginx -s reload 命令。

4.4 登录管理台

浏览器登陆 http://xx.xx.xx.xx:8188/#/login 用户名/密码在{LINKIS_HOME}/conf/linkis-mg-gateway.properties中查看。

wds.linkis.admin.user= #用户
wds.linkis.admin.password= #密码

在这里插入图片描述

在这里插入图片描述


总结

本文简单介绍了以无HDFS模式部署linkis 1.3.2版本。

基本照搬官方文档,部分自己出问题的地方进行了修改,仅作自己备份。

我自己照官方文档进行操作的时候出现的问题主要是下面几点:

1.执行安装脚本的时候提示需要依赖mysql,于是检查了一下安装脚本,在checkEnv.sh中有明确表示需要安装yum、java、mysql、telnet、tar、sed、lsof。

在这里插入图片描述

2.执行前端安装脚本的时候,nginx是通过yum安装的,但是会安装失败,CentOS7的yum源中没有nginx,需要自己更换一下yum源。
如果通过源码安装,则需要手动改一下nginx配置文件中的端口和跳转路径,参考上面4.3的配置即可。

参考文档:

Linkis单机部署

Linux安装nginx详细步骤

MySQL问题 公钥尚未安装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值