前置条件
Linkis是一个由微众银行开发的查询引擎中间件,可以整合Spark,Hive,DB等多种数据源,并对外提供统一规范的查询接口。根据Linkis文档,部署需要安装以下组件:
- MySQL或Postgresql数据库,使用MySQL即可,因为其它组件可能依赖MySQL
- Hadoop
- Spark
- Hive
首先,依次安装配置好以上组件,并实现正常运行,此处不列出具体安装方法。
首次安装Linkis
以下部分内容节选官方文档
硬件要求
安装linkis 微服务近6个,至少3G内存。每个微服务默认配置启动的jvm -Xmx 内存大小为 512M(内存不够的情况下,可以尝试调小至256/128M,内存足够情况下也可以调大)。
添加部署用户(可选,实际上用root也可以)
部署用户: linkis核心进程的启动用户,同时此用户会默认作为管理员权限,部署过程中会生成对应的管理员登录密码,位于conf/linkis-mg-gateway.properties文件中 Linkis支持指定提交、执行的用户。linkis主要进程服务会通过sudo -u ${linkis-user} 切换到对应用户下,然后执行对应的引擎启动命令,所以引擎linkis-engine进程归属的用户是任务的执行者(因此部署用户需要有sudo权限,而且是免密的)。
以hadoop用户为例(linkis中很多配置用户默认都使用hadoop用户,建议初次安装者使用hadoop用户,否则在安装过程中可能会遇到很多意想不到的错误):
先查看系统中是否已经有 hadoop 用户,若已经存在,则直接授权即可,若不存在,先创建用户,再授权。
查看是否已存在 hadoop 用户
$ id hadoop
uid=2001(hadoop) gid=2001(hadoop) groups=2001(hadoop)
若不存在,则需要创建 hadoop 用户,并加入 hadoop 用户组
$ sudo useradd hadoop -g hadoop
$ vi /etc/sudoers
#免密配置
hadoop ALL=(ALL) NOPASSWD: NOPASSWD: ALL
修改配置
- 获取安装包
新建一Linkis目录,例如/home/linkis,以1.4.0版本为例,执行命令
$ wget https://dlcdn.apache.org/linkis/1.4.0/apache-linkis-1.4.0-bin.tar.gz
下载二进制压缩包,如果是无互联网的环境,可以先在外部下载再上传到服务器。上传后进行解压
$ tar -xvf apache-linkis-1.4.0-bin.tar.gz
- 配置数据库信息
vim deploy-config/linkis-env.sh
# 选择linkis业务数据库类型,默认mysql
# 如果使用postgresql,请改为postgresql
# 注意: 当前配置只适用于linkis>=1.4.0
dbType=mysql
vim deploy-config/db.sh
# Linkis自身业务的数据库信息 - mysql
MYSQL_HOST=mysql地址
MYSQL_PORT=3306
MYSQL_DB=linkis_test
MYSQL_USER=test
MYSQL_PASSWORD=xxxxx
# Linkis自身业务的数据库信息 - postgresql
# 注意: 以下配置只适用于linkis>=1.4.0
PG_HOST=xx.xx.xx.xx
PG_PORT=5432
PG_DB=linkis_test
PG_SCHEMA=linkis_test
PG_USER=test
PG_PASSWORD=123456
# 提供 Hive 元数据数据库的 DB 信息,如果不涉及hive引擎(或则只是简单试用),可以不配置
#主要是配合scriptis一起使用,如果不配置,会默认尝试通过$HIVE_CONF_DIR 中的配置文件获取
HIVE_META_URL="jdbc:mysql://mysql地址:3306/hive_meta_demo?useUnicode=true&characterEncoding=UTF-8"
HIVE_META_USER=demo # HiveMeta元数据库的用户
HIVE_META_PASSWORD=demo123 # HiveMeta元数据库的密码
此处特别注意,如果MySQL密码包含了特殊符号,应该使用英文单引号‘’包裹。
其它配置可参考官方文档。所有配置完毕后,可以执行安装脚本。
···sh
$ sh bin/install.sh
···
特别注意,如果mysql密码中有特殊符号,并且已经用英文引号’'包裹,则需要编辑install.sh,进行如下修改:
$ vim bin/install.sh
找到如下一行:
MYSQL_PASSWORD=$(echo ${MYSQL_PASSWORD\/'#'\/'\#'})
将后面的正则表达式替换去掉,否则会因为密码被修改而无法操作数据库
全部安装完成后执行
sh /home/linkis/LinkisInstall/sbin/linkis-start-all.sh
启动服务,至此完成Linkis的安装部署。