Smartbi UnionServer是一个分布式SQL查询引擎,处在Smartbi的SQL引擎层,为不同的数据源提供统一的SQL解析、跨库查询能力。
1、设置系统环境
①关闭防火墙。
CentOS 6.X/Redhat 6.X
代码块 | ||
---|---|---|
| ||
service iptables stop service ip6tables stop chkconfig iptables off chkconfig ip6tables off |
CentOS 7.X/Redhat 7.X
代码块 | ||
---|---|---|
| ||
systemctl stop firewalld systemctl disable firewalld systemctl status firewalld |
②关闭Selinux
代码块 | ||
---|---|---|
| ||
#临时关闭selinux setenforce 0 #永久关闭Selinux,需要重启服务器生效 sed -i 's/=enforcing/=disabled/g' /etc/selinux/config |
2、安装Smartbi-UnionServe
上传SmartbiUnionServer.tar.gz到服务器,并解压到/opt目录。
代码块 | ||
---|---|---|
| ||
tar -zxvf SmartbiUnionServer.tar.gz -C /opt |
3、 修改配置文件
1)JVM配置
通过修改启动文件可以设置JVM的最大内存、GC等参数。
代码块 | ||
---|---|---|
| ||
cd /opt/SmartbiUnionServer |
在启动服务之前,需要根据服务器的实际物理内存大小,修改JVM的默认最大内存,如下:
修改run.sh中的-Xmx参数,默认的最大内存值为8G,可根据服务器实际配置进行情况填写:
2)参数配置
参数配置文件放在/opt/SmartbiUnionServer/etc目录下,需要修改config.properties。
config.properties的基本配置信息如下:
代码块 | ||
---|---|---|
| ||
coordinator=true node-scheduler.include-coordinator=true http-server.http.port=48080 query.max-memory=2GB query.max-memory-per-node=1GB discovery-server.enabled=true discovery.uri=http://0.0.0.0:48080 |
参数说明如下:
配置项 | 说明 |
http-server.http.port | 设置presto的端口,默认为48080,启动时如果端口冲突,需要修改。 |
query.max-memory | 设置单条查询语句最大使用内存,默认为2GB。 |
query.max-memory-per-node | 设置单条查询语句在每个节点上的最大使用内存,默认为1GB。 |
discovery.uri | 设置Smartbi UnionServer的url,默认为http://0.0.0.0:48080,其中0.0.0.0表示本机地址,48080表示端口,必须与http-server.http.port保持一致。 |
3)日志级别配置
日志级别配置文件放在/opt/SmartbiUnionServer/etc目录下log.propertes,默认日志级别为INFO。
代码块 | ||
---|---|---|
| ||
com.facebook.presto=INFO |
日志级别可以选择:DEBUG、INFO、WARN和ERROR,其中DEBUG的日志级别最高,输出的日志最多,ERROR的日志级别最低,输出的日志最少。
4、运维操作
4.1、启动Smartbi-UnionServer
赋予启动脚本可执行权限
代码块 | ||
---|---|---|
| ||
cd /opt/SmartbiUnionServer chmod +x run.sh |
给jdk赋予可执行权限:
代码块 | ||
---|---|---|
| ||
chmod +x -R jdk_linux/ |
启动SmartbiUnionServer服务有两种方式:
代码块 | ||
---|---|---|
| ||
# 前端启动方式,日志信息直接打印在屏幕上,多用于调试 sh run.sh # 后台启动方式,启动日志存放在var/log/server.log nohup sh run.sh > /dev/null 2>&1 & |
使用前端方式启动presto时,当看到屏幕打印信息:
======== SERVER STARTED ========,说明服务启动成功。
如果提示Address already in use,说明端口冲突了,需要修改/opt/SmartbiUnionServer/etc/config.properties里的端口,然后重启SmartbiUnionServer。
使用后台方式启动SmartbiUnionServer时,如果使用后台启动,可以使用ps -ef | grep SmartbiUnionServer查看SmartbiUnionServer进程是否存在,如果存在,则启动成功。如下图所示。
如果进程不存在,可以查看/opt/SmartbiUnionServer/var/log/server.log,查看报错信息。如果提示Address already in use,说明端口冲突了,需要修改/opt/SmartbiUnionServer/etc/config.properties里的端口,然后重启presto。
4.2、停止SmartbiUnionServer
通过命令:ps -ef | grep SmartbiUnionServer
查到SmartbiUnionserver的进程号:
然后使用kill -9 <进程号>命令杀掉SmartbiUnionserver进程。
4.3、设置开机启动
Linux部署SmartbiUnionServer开机启动设置方式:
4.3.1方法一:
Centos6.x
①赋予脚本可执行权限(/opt/SmartbiUnionServer/run.sh是SmartbiUnionServer的脚本路径)
代码块 | ||
---|---|---|
| ||
chmod +x /opt/SmartbiUnionServer/run.sh |
②在/etc/rc.d/rc.local文件末尾增加添加SmartbiUnionServer的脚本启动命令,保存退出
代码块 | ||
---|---|---|
| ||
vi /etc/rc.d/rc.local #添加以下启动命令 nohup sh /opt/SmartbiUnionServer/run.sh > /dev/null 2>&1 & |
Centos7.x
①赋予脚本可执行权限(/opt/SmartbiUnionServer/run.sh是SmartbiUnionServer的脚本路径)
代码块 | ||
---|---|---|
| ||
chmod +x /opt/SmartbiUnionServer/run.sh |
②在/etc/rc.d/rc.local文件末尾增加添加SmartbiUnionServer的脚本启动命令,保存退出
代码块 | ||
---|---|---|
| ||
vi /etc/rc.d/rc.local #添加以下启动命令 nohup sh /opt/SmartbiUnionServer/run.sh > /dev/null 2>&1 & |
③在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
代码块 | ||
---|---|---|
| ||
chmod +x /etc/rc.d/rc.local |
Suse12
①赋予脚本可执行权限(/opt/SmartbiUnionServer/run.sh是SmartbiUnionServer的脚本路径)
代码块 | ||
---|---|---|
| ||
chmod +x /opt/SmartbiUnionServer/run.sh |
②在/etc/rc.d/after.local文件末尾增加添加SmartbiUnionServer的脚本启动命令,保存退出
代码块 | ||
---|---|---|
| ||
vi /etc/rc.d/after.local #添加以下启动命令 nohup sh /opt/SmartbiUnionServer/run.sh > /dev/null 2>&1 & |
③给/etc/rc.d/after.local添加执行权限
代码块 | ||
---|---|---|
| ||
chmod +x /etc/rc.d/after.local |
4.3.2 方法二
进入/etc/init.d目录,创建unionserver启动配置文件
代码块 | ||
---|---|---|
| ||
vi /etc/init.d/unionserver |
配置参考如下:
代码块 | ||||
---|---|---|---|---|
| ||||
#!/bin/bash # chkconfig: 345 80 20 # description: start the unionserver deamon # # Source function library . /etc/rc.d/init.d/functions prog=unionserver CATALANA_HOME=/home/smartbi/SmartbiUnionServer/ #注意替换成实际的smartbi unionserver路径 export CATALINA_HOME case "$1" in start) echo "Starting unionserver..." $CATALANA_HOME/run.sh & ;; stop) echo "Stopping unionserver..." kill -9 $(ps -ef | grep SmartbiUnionServer | grep jdk_linux | awk '{print $2}') ;; restart) echo "Stopping unionserver..." kill -9 $(ps -ef | grep SmartbiUnionServer | grep jdk_linux | awk '{print $2}') sleep 2 echo echo "Starting unionserver..." $CATALANA_HOME/run.sh & ;; *) echo "Usage: $prog {start|stop|restart}" ;; esac exit 0 |
设置开机启动
代码块 | ||
---|---|---|
| ||
chmod +x /etc/init.d/unionserver #添加执行权限 chkconfig unionserver on #添加到开机启动 chkconfig --list #查看开机启动服务列表 |
5、日志文件
SmartbiUnionServer 的日志路径:<SmartbiUnionServer >/var/log/server.log。
如果出现启动失败时,可以通过分析日志来判断问题点。
6、版本更新
1)停止现有的SmartbiUnionServer服务:
代码块 | ||
---|---|---|
| ||
# ps -ef| grep SmartbiUnionServer # kill -9 进程id |
2)升级
备份原来的SmartbiUnionServer/plugin目录plugin目录和SmartbiUnionServer/lib
代码块 | ||
---|---|---|
| ||
# mv plugin pluin_back
# mv lib lib_back |
复制第一步解压出来的SmartbiUnionServer/plugin和SmartbiUnionServer/plugin到原来的目录文件lib到原来的目录文件
代码块 | ||
---|---|---|
| ||
# cp -r <SmartbiUnionServer新版本>/plugin <SmartbiUnionServer旧版本>/plugin
# cp -r <SmartbiUnionServer新版本>/lib <SmartbiUnionServer旧版本>/lib |
复制SmartbiUnionServer/etc/queue_config.json 到etc目录
代码块 | ||
---|---|---|
| ||
# cp -r <SmartbiUnionServer新版本>/etc/queue_config.json <SmartbiUnionServer旧版本>/etc/ |
复制SmartbiUnionServer/etc/resource-groups.properties 到etc目录
代码块 | ||
---|---|---|
| ||
# cp -r <SmartbiUnionServer新版本>/etc/resource-groups.properties <SmartbiUnionServer旧版本>/etc/ |
3)启动
代码块 | ||
---|---|---|
| ||
# nohup ./run.sh & |
4)测试验证
使用smartbi连接跨库联合数据源验证。