安装部署
Palo Studio部署手册
Palo Studio提供预编译版本部署和Docker镜像部署两种部署形式,用户可根据业务需求进行选择。
部署Palo Studio前,需要先行检查Palo集群版本,确保满足版本依赖。若Palo版本过低,应先对Palo集群进行升级后,再行部署Palo Studio。
预编译版本部署
操作系统要求:服务器环境需使用常见Linux发行版,保障部署流畅建议使用CentOS 7.X,并且保障和Palo集群能够网络互通
组件依赖:JDK 1.8
第一步:配置Java环境
Java1.8及环境变量配置为Studio部署的前置条件。本节将说明如何检查Java版本和配置环境变量。
1. 检查Java版本
首先检查本机是否安装有Java,以及Java具体版本:
java -version
2. 配置环境变量
若未安装Java或Java版本低于1.8,需要安装或升级至Java1.8版本。以下内容基于JDK 1.8版本进行操作:
(1)配置环境变量
此处假设Java安装路径为/usr/local/java,打开文件
vim /etc/profile
并在文件末尾添加下面的内容,然后保存并退出
export JAVA_HOME=/usr/local/java/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
(2)使用命令刷新,使环境变量生效
source /etc/profile
至此完成JDK版本的检查和环境变量配置。
第二步:下载Palo Studio
Studio默认使用轻量级内存数据库H2进行后端数据存储,数据库已完成内嵌,无需额外部署或对接。若用户在生产环境中存在高可用需求,或需要将Studio服务相关的元数据进行持久化保存,则建议使用MySQL作为Palo Studio的后端数据库。
首先根据集群版本下载对应的Palo Studio预编译安装包。
用户自行选择文件路径,进行解压后得到Palo-Studio文件夹。文件结构如下图所示:
├── analysis
│ ├── app
│ ├── favicon.ico
│ ├── index_template.html
│ ├── index_template_dev.html
│ ├── init.html
│ └── inline_js
├── conf
│ ├── README.txt
│ ├── manager.conf
│ └── studio.conf
├── d-stack
│ ├── assets
│ ├── index.html
│ └── src
├── docs
│ ├── 404.html
│ ├── assets
│ ├── favicon.ico
│ ├── images
│ ├── index.html
│ └── pages
├── prometheus
│ ├── download_prometheus.sh
│ ├── prometheus-2.28.1.linux-amd64.tar.gz
│ ├── prometheus.yml
│ ├── start_prometheus.sh
│ └── stop_prometheus.sh
├── start.sh
├── start_fe.sh
├── stop.sh
└── studio-server.jar
文件说明如下:
- studio-server.jar:studio服务包;
- start.sh:启动脚本;
- start_fe.sh:启动前端脚本;
- stop.sh:停止脚本;
- conf:配置文件的存放文件夹;
- docs:产品文档
- studio.conf:配置文件。
第三步:启动Palo Studio
启动服务前,应先对配置文件 studio.conf 进行检查,确保Studio服务端口未被占用。配置文件 studio.conf 的检查如下:
# 数据库类型,默认为H2,可直接使用
MB_DB_TYPE=h2
# Studio服务端口,默认8080,请检查该端口是否被其他程序占用
STUDIO_PORT=8080
完成配置文件的检查与修改后,在当前安装包路径下,执行下述命令:
nohup sh ./start.sh > start.log 2>&1 &
执行命令完毕后,稍后查看start.log查看日志,确定服务是否启动完成。若日志中出现: Palo Studio start done,则说明服务成功启动(需要一定执行时间)。
至此,完成Studio部署。Studio预置了系统管理员账号信息,详见部署包中的README文件(txt) 。
使用MySQL存储服务数据
Studio默认使用内嵌的H2内存数据库。若用户在生产环境中存在高可用需求,或需要将Studio服务相关的元数据进行持久化保存,则建议使用MySQL作为后端数据库。
操作系统要求:Linux发行版,保障部署流畅建议使用Centos 7.X。同时需要保证部署Palo Studio的服务器能够顺利访问Palo集群。
组件依赖:JDK 1.8
数据库依赖:建议使用MySQL 5.7版本。
使用MySQL存储服务数据需要完成第一步:配置Java环境与第二步:下载Palo Studio,并在此基础上完成后续配置操作。
安装 MySQL5.7
本节演示如何在CentOS中部署MySQL 5.7。若用户使用其他操作系统如Ubuntu / MacOS,也可根据网络教程自行安装mysql5.7。
下载MySQL安装包 点击下载
下载后解压安装包,找到mysql-5.7.22-linux-glibc2.12-x86_64/install/install.sh文件,并做如下修改:
INSTALL_DIR= # mysql文件的安装目录,自行提前创建
PORT= # mysql的访问端口
INIT_DB= # 为Studio服务初始化的数据库名称,自行创建
STUDIO_USER= # Studio在mysql的用户名称,自行设置
PASSWD= # Studio在mysql的用户密码,自行设置
修改完成后,保存文件。执行下述命令,并执行脚本,即可完成mysql安装和服务启动
sh ./install/install.sh
更新配置文件
在启动服务前,需要用户将MySQL信息写入配置文件 studio.conf,修改方式如下:
# Studio服务端口,默认8080,请检查该端口是否被其他程序占用
STUDIO_PORT=8080
# 数据库类型,为mysql
MB_DB_TYPE=mysql
# mysql的访问地址,如果mysql默认部署在studio同一台机器,则使用127.0.0.1即可。如有变动请自行修改。
MB_DB_HOST=127.0.0.1
# mysql供studio进行访问的端口
MB_DB_PORT=
# studio通过代理用户访问和操作mysql。建议用户在mysql中提前创建代理用户,并用该用户账号创建studio元数据库
# 此处填写代理用户的username
MB_DB_USER=
# 此处填写代理用户的password
MB_DB_PASS=
# 提前在MySQL中完成一个studio元数据库的创建,并在下方填写数据库名称
MB_DB_DBNAME=
完成配置文件的修改后,在当前安装包路径下,执行下述命令:
nohup sh ./start.sh > start.log 2>&1 &
执行命令完毕后,稍后查看start.log查看日志,确定服务是否启动完成。若日志中出现: Palo Studio start done,则说明服务成功启动(需要一定执行时间)。
至此,Palo Studio完成基于MySQL服务的部署。Studio预置了系统管理员账号信息,详见部署包中的README文件(txt) 。
Docker镜像部署
本节演示如何在Docker中启动Palo Studio镜像。
其中,MySQL作为Palo Studio的后端数据库,将服务相关的元数据持久化保存。容器启动后,Studio和MySQL服务以及nginx服务会自动运行。
一、准备工作
安装包下载后,将文件Palo-Studio-版本号-MySQL-5.7-Docker.zip解压到任意目录下,得到Palo-Studio-版本号-MySQL-5.7-Docker文件夹。
本文以解压到/Users/BaiduMacPro/Desktop/Palo-Studio-版本号-MySQL-5.7-Docker为例。
解压后,该文件夹包含的文件如下:
Palo-Studio-版本号-MySQL-5.7-Docker
│
├── data.tar.gz
│
├── install.sh
│
├── studio-mysql-版本号.tar
其中:
- studio-mysql-版本号.tar是studio对应版本的本地镜像包,如果用户有本地镜像仓库,可以上传后push到镜像仓库。
- install.sh是镜像第一次启动容器的脚本。用户可以通过运行该脚本进行自动部署,也可以选择基于提供的流程进行手动部署。如果容器后续发生意外退出,可以参考脚本中的启动命令自行启动和运维。
- data.tar.gz 是容器中初始化的mysql数据,适用于数据外部挂载的场景。
可选一:快速部署服务
进入安装包目录后,顺序执行下述命令即可完成镜像的加载和启动。其中,8090是为了访问Studio服务开辟的端口(可自行修改,其他端口不可修改)。
docker load < studio-mysql-版本号.tar
docker run -p 8090:8090 -di studio-mysql:v版本号
完成启动后,通过浏览器访问Studio服务器ip以及8090端口,即可访问服务。
若用户存在生产环境的部署需求,建议将Studio日志数据和MySQL元数据挂载在本地。具体操作方式,参考 手动部署服务并配置数据本地挂载 或 通过脚本部署服务并配置数据本地挂载。
注意:该部署流程未将mysql中数据挂载到本地,因此使用新版镜像包升级服务时,会造成应用内数据丢失。
可选二:手动部署服务并配置数据本地挂载
首先,执行如下命令,进行文件路径的创建(具体路径用户自定义)。
mkdir -p /Users/BaiduMacPro/Desktop/Studio/mysql /Users/BaiduMacPro/Desktop/Studio/log
/Users/BaiduMacPro/Desktop/Studio/monitor
- 第一个路径用来挂载MySQL的数据,记为mysql_dir
- 第二个路径用来挂载Studio的日志数据,记为studio_log_dir
- 第三个路径用来挂载监控数据,记为studio_monitor_dir
接下来,进入mysql_dir,将安装包中的data.tar.gz 移动到该目录下,并进行解压。
cp /Users/BaiduMacPro/Desktop/docker-studio-mysql-install/data.tar.gz /Users/BaiduMacPro/Desktop/Studio/mysql
tar -zxvf /Users/BaiduMacPro/Desktop/Studio/mysql/data.tar.gz
最后,使用命令直接启动容器。命令格式如下:
docker run -p $analysis_module_port:8090 -p $meta_data_port:3306 --name=studio-mysql -v $mysql_data_path/data:/usr/local/mysql/data -v $studio_log_path:/root/studio/logs -di studio-mysql:$studio_version
- studio_version:Studio版本号
- analysis_module_port:访问Studio的对外访问端口,需要自行定义,建议配置为8090
- meta_data_port:访问Studio元数据库(mysql)的对外访问端口
执行下述命令确认容器是否成功启动
docker ps |grep studio-mysql
完成启动后,通过浏览器访问Studio服务器地址以及对应端口(analysis_module_port),即可访问服务。
可选三:通过脚本部署服务并配置数据本地挂载
首先,执行如下命令,进行两个文件路径的创建。文件具体路径可以根据用户习惯进行自定义。
mkdir -p /Users/BaiduMacPro/Desktop/Studio/mysql /Users/BaiduMacPro/Desktop/Studio/log
/Users/BaiduMacPro/Desktop/Studio/monitor
- 第一个路径用来挂载MySQL的数据,记为mysql_dir
- 第二个路径用来挂载Studio的日志数据,记为studio_log_dir
- 第三个路径用来挂载监控数据,记为studio_monitor_dir
进入安装包根目录,对配置文件做如下修改:
#/bin/bash
set -e
curdir=`dirname "$0"`
curdir=`cd "$curdir"; pwd`
studio_version=$studio_version
if [[ "$(docker images -q studio-mysql:v$sutdio_version 2> /dev/null)" == "" ]]; then
echo "image not exist,load..."
docker load < $curdir/studio-mysql-$studio_version.tar
fi
echo "start container..."
echo "挂载路径和端口映射配置"
mysql_dir=/Users/BaiduMacPro/Desktop/Studio/mysql # 请自行修改为mysql数据的保存路径(路径需要提前手动创建)
studio_log_dir=/Users/BaiduMacPro/Desktop/Studio/logs # 请自行修改为studio日志数据的存放路径(路径需要提前手动创建)
studio_monitor_dir=/Users/BaiduMacPro/Desktop/Studio/monitor # 请自行修改为studio监控功能数据的存放路径(路径需要提前手动创建)
studio_port=8090 # studio访问端口,用户可自定义修改
mysql_port=8306 # mysql元数据库端口,用户可自定义修改
if [ ! -d $mysql_dir ]; then
mkdir -p $mysql_dir
fi
mysql_data_dir=$mysql_dir/data
if [ ! -d $mysql_data_dir ]; then
tar -zxvf $curdir/data.tar.gz
mv data $mysql_dir
fi
if [ ! -d $studio_log_dir ]; then
mkdir -p $studio_log_dir
fi
if [ ! -d $studio_monitor_dir ]; then
mkdir -p $studio_monitor_dir
fi
docker run -p $studio_port:8090 -p $mysql_port:3306 --name=studio-mysql -v $mysql_data_dir:/usr/local/mysql/data -v $studio_log_dir:/root/studio/logs -v $studio_monitor_dir:/root/studio/prometheus_home -di studio-mysql:v$studio_version
echo "start container done"
- studio_version:Studio版本号
- studio_port:访问Studio的对外访问端口,需要自行定义,建议配置为8090
- mysql_port:访问Studio元数据库(mysql)的对外访问端口
修改完脚本后保存,并执行下述命令(执行需要稍等一会),即可完成服务的启动。
sh install.sh
执行下述命令确认容器是否成功启动
docker ps |grep studio-mysql
完成启动后,通过浏览器访问Studio服务器地址以及对应端口(analysis_module_port),即可访问服务。
Studio预置的系统管理员账号请查看部署包中的txt文件:”README“
版本更新升级说明
预编译版本升级教程
下载最新的预编译版安装包,重新执行安装流程即可。
安装期间,在修改配置文件studio.conf时,务必按照升级前的配置进行修改。
其余流程与安装相同。
Docker镜像升级教程
注意:若用户在升级前没有将数据挂载到本地,升级后的应用数据可能会全部丢失。
解压安装包后,无需再次创建MySQL数据挂载路径和Studio数据挂载路径,也无需移动和解压data.tar.gz 文件,使用升级前的路径即可。
其余流程与安装相同。