1、安装前确认
Ø 安装包类型
——根据操作系统,CPU架构确认安装包类型,x86和arm架构的机器使用不同的安装包。
查看操作系统:
cat /proc/version
查看CPU架构:
lscpu
Smartbi适配国产化现状参考连接:⬝ Smartbi支持国产化/信创环境现状
Ø 安装包完整性
——上传是否有损坏,使用MD5 ,md5sum校验,若有损坏需要重新上传。
windows上通过md5校验码命令查看:
certutil -hashfile 需要校验的文件 MD5
示例:certutil -hashfile smartbi.war MD5
linux上查看md5校验码命令:
md5sum 需要校验的文件
示例:md5sum smartbi.war
Ø 用户权限
——所拥有权限能否将服务部署起来,
安装部署各个组件,需要的权限
组件 | 部署方式 | 部署权限要求 |
---|---|---|
Smartbi | war包 | 普通用户 |
MPP | rpm包 | 需要root或sudo权限 |
UnionServer | tar包 | 普通用户权限,解压后直接启动就行 |
Export | docker镜像 | 需要root或sudo权限 |
Engine | tar包 | 普通用户权限,解压后直接启动就行 |
Spark | tar包 | 普通用户权限,解压后直接启动就行 |
python | sh脚本 | 普通用户权限,直接执行安装即可 |
hadoop | tar包 | 普通用户权限,解压后直接启动就行 |
zookeeper | tar包 | 普通用户权限,解压后直接启动就行 |
redis | tar包 | 普通用户权限,解压后直接启动就行 |
NLA | docker镜像 | 需要root或sudo权限 |
注意:以上权限后续可能由于部署方式或安装介质改变,部署权限也可能有相关调整。
2、安装过程
Ø 解压文件失败。
——可能是压缩包被损坏或解压命令有误
包类型 | 解压工具 |
---|---|
xxx.tar.gz | tar |
xxx.zip | zip |
xxx.war和xxx.jar | jar |
以下情况是压缩包被损坏。
解决方法:
步骤1:如果是压缩包类文件,可以在windows上,使用rar之类软件打开对应的压缩包文件,看看能不能正常打开
步骤2:如果windows上正常打开,则校验windows和linux环境的安装包的md5码,确认是否传输文件时,安装包损坏导致的问题。
Ø 安装命令行写错。
——需严格按照部署文档来写
(1)linux命令行区分大小写
命令行大小写不正确,提示找不到命令行(command not found)
(2)命令行对参数敏感
提示无效的参数(invalid option)
(3)特殊字符干扰
从其他地方复制命令行时,有乱码或多、少复制了内容
命令行写错了(拼写,大小写,空格,特殊字符,参数不正确)
注意:命令行里面的特殊字符,也要注意区分会不会是中文的字符(全角\半角字符区别)
示例:
命令行如果是从其他地方复制过来的,空格的地方可能有特殊字符
可以使用 notepad++ 工具来检查文本内容
(4)没有进入到对应的部署目录来执行命令
应该进入命令所在的目录下再调用
Ø 启动前检查配置文件
各组件的常用配置文件
组件 | 配置文件 | |
---|---|---|
tomcat | config/server.xml | # 主要配置端口 |
bin/setenv.sh | # 配置启动环境变量 | |
bin/startup.sh | # 启动脚本 | |
Smartbi | smartbi-config.xml | # config界面信息配置 |
mpp | /etc/clickhouse-server/config.xml | |
/etc/clickhouse-server/user.xml | ||
联合跨库查询 | run.sh | # 启动脚本 |
etc/config.properties | # 配置端口和配额信息 | |
OLAP | application.properties | # 主要配置端口 |
mysql | /etc/my.cnf | # 主要配置文件 |
建议:记住服务启动前修改了哪些文件或者配置?
Ø 关闭防火墙和selinux
查看防火墙状态(注意:有些客户可能不让我们去操作防火墙,可以让客户去确认是否关闭防火墙或开放相应端口)
查看状态:
systemctl status firewalld
停止防火墙:
systemctl stop firewalld
永久停止防火墙:
systemctl disable firewalld
查看selinux状态:
getenforce
注意:服务启动完成,netstat查看有相应的端口信息,就有可能是防火墙阻止了访问。
Ø 安装过程日志
一般是安装过程报错信息会直接显示在shell终端上,具体报错具体分析。
需要经过安装过程的组件有:clickhouse,导出引擎,高性能版本部署。
其余都是解压后,做好配置直接启动。
Ø 缺少依赖(主要是mpp)
解决办法:添加缺少mpp的依赖包,安装之前先安装依赖包。
安装依赖命令示例:rpm -ivh libicu-50.2-3.el7.x86_64.rpm
3、启动过程
Ø 启动报错,分析日志。
启动失败定义:执行启动命令后 ,对应的进程没有正常启动
所有应用,启动时,都是读取配置文件来启动的。
建议:想一下服务启动前修改了哪些文件或者配置?
检测进程和端口方法:
检查进程:ps -ef|grep 服务名称
检查端口:netstat -nap|grep 服务端口
对应的服务名称和端口根据具体组件来定,wiki文档上都有提及到。
小技巧:一般建议找第一个或最后一个错误
日志路径一般在安装目录的logs文件夹内,具体可以参考各个组件的安装部署文档说明。
组件名称 | 日志路径 |
---|---|
tomcat | tomcat/logs/catalina.out |
mpp | /var/log/clickhouse-server |
导出引擎 | smartbi-export/logs/ |
联合跨库查询 | smartbi-unionserver/var/log/server.log |
olap | smartbi-olap/smartbiolap_console.log |
数据挖掘 | martbi-engine/logs/service.log |
根据报错定位问题:
导出引擎启动失败:selinux没有关闭
Ø 内存或磁盘不足
查看内存和磁盘情况(内存和磁盘使用容量达到一定瓶颈就可能无法安装或启动起来)
导出引擎启动失败:磁盘空间不足
Ø 配置文件不正确
安装过程需要检查,若启动过程出错,还需要再次检查,回想自己曾做过什么配置。
Ø 服务器端口被占用
例如部署tomcat时,端口冲突报错显示:地址已在使用或 address is already in use
下面的是联合跨库查询的地址冲突报错。
解决办法:
方法1:停止占用端口的应用服务
方法2:更改对应组件服务的默认端口,根据不同组件的相应配置文件来修改端口。
4、访问过程(无法访问)
Ø 检查防火墙
——若服务正常,则要去确认是否开启了相应的端口。
安装过程配置过防火墙,如果无法访问再次确定是否配置正确。
Ø 确认是否启动成功
确认端口信息:netstat -lntup # 有端口信息,却无法访问,确认是否有端口映射情况
Ø 确认连接信息
url写错:端口写错,或者ip地址、域名写错
确认IP地址:ifconfig
客户环境可能会有内网和外网环境之分,浏览器访问使用外网地址访问,Smartbi内部组件使用内网地址访问。
Ø 测试连通性
各模块若没有部署在同一个服务器,则要通过ping命令检查连通性
ping 另外一台部署服务器,ping不通,说明不在同一个网络中,无法实现组件连接。
使用telnet来检查对应地址和服务端口来验证服务互通。出现最后一种情况就是互通的。
Ø proxy测试分发,一直分发到同一个地址。
解决办法:我们的proxy是轮询模式,第一个请求访问到第一个节点,第二个请求访问到第二个节点。应该重新开一个浏览器或无痕模式来测试第二个请求。
Ø 会话冲突,无法登录config界面
同一个浏览器使用两个相同的URL登录可能会引起会话冲突,导致无法登录。
解决办法:换一个浏览器或使用无痕模式就可以顺利登录成功。
5、知识库问题
Ø 知识库权限不够
当权限不够就会在创建知识库过程出现这样的报错。
解决办法:给予数据库相应的权限。
注意:mysql作为知识库需要(SELECT,UPDATE,DELETE,CREATE,DROP,INSERT,ALTER,INDEX,REFERENCES权限)
Ø 没有远程连接权限
没有权限就会出现这样的报错。如果不是我们部署,则要更客户确认。
解决办法:添加远程连接权限,如果不是我们部署则要跟客户确认是否开启了远程连接。
开启远程连接命令示例:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
Ø 字符集不正确
问题原因:知识库实际字符集编码和Smartbi config页面的配置的知识库字符集编码不一致导致。
解决方案:Smartbi可以支持GBK和UTF-8字符集编码。建议新创建一个指定GBK或UTF-8字符集编码的空库,在Smartbi config页面配置和知识库一致的字符集编码,然后再重新启动Smartbi。
6、数据迁移失败
Smartbi迁移环境:
建议迁移前备份知识库(使用Smartbi自带的备份知识库功能,如果可以,建议使用数据库工具再备份一次)
新环境使用一样的war包部署,空库启动
最后再使用恢复知识库功能,把刚刚备份的知识库还原回去
7、Smartbi问题
此处为组件单独出现的问题汇总,先按照上述的1-5点排查后再对照此部分。后期逐步完善
8、MPP问题
此处为组件单独出现的问题汇总,先按照上述的1-5点排查后再对照此部分。后期逐步完善
Ø 日志目录权限不够
如下图所示,如果使用service clickhouse-server start启动SmartbiMPP,提示UNKNOWN。此时SmartbiMPP启动失败。但是查看/var/log/clickhouse-server/clickhouse-server.err.log又没有日志输出。
原因:/var/log/clickhouse-server/目录的日志文件不是clickhouse用户权限,所以启动SmartbiMPP时,没权限写日志导致启动失败。
处理方法:给日志目录赋予clickhouse的权限
# sudo chown -R clickhouse:clickhouse /var/log/clickhouse-server
# sudo service clickhouse-server start
Ø 系统不支持ipv6
日志报错如下图所示。
原因:有些公司可能做了限制,系统不允许ipv6地址访问。
解决办法:手工修改/etc/clickhouse-server/config.xml的监听地址,屏蔽ipv6地址。
9、导出引擎问题
此处为组件单独出现的问题汇总,先按照上述的1-5点排查后再对照此部分。后期逐步完善
10、联合跨库问题
此处为组件单独出现的问题汇总,先按照上述的1-5点排查后再对照此部分。后期逐步完善
11、数据挖掘问题
此处为组件单独出现的问题汇总,先按照上述的1-5点排查后再对照此部分。后期逐步完善Ø
Ø 内存不足导致部署失败
解决思路:
1、使用free -h 查看内存情况,然后使用top来定位哪一个进程占用内存较多。
2、删除占用内存高的进程(若是Smartbi占用内存高,去查看setenv.sh文件配置的内存是否过高)或添加主机的内存。
添加评论