Smartbi MPP 高速缓存库,列式数据库管理系统,用于抽取数据。
安装指南
1、系统环境要求
组件 | 要求 |
---|---|
操作系统 | 只支持 64位的Linux系统 建议:
|
CPU | 建议8核或以上 |
内存 | 建议32G以上 |
硬盘 | 建议固态硬盘或高速硬盘 空间大小2048G |
官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2
指令集,部署前需要检查环境是否支持SSE4.2指令
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
2、安装介质装备
SmartbiMPP 介质
- CentOS6.X/Redhat6.x
介质名称 |
clickhouse-client-19.4.2.7-1.el6.x86_64.rpm |
clickhouse-common-static-19.4.2.7-1.el6.x86_64.rpm |
clickhouse-server-19.4.2.7-1.el6.x86_64.rpm |
clickhouse-server-common-19.4.2.7-1.el6.x86_64.rpm |
- CentOS7.X/Redhat7.x
介质名称 |
---|
clickhouse-client-19.4.2.7-1.el7.x86_64.rpm |
clickhouse-common-static-19.4.2.7-1.el7.x86_64.rpm |
clickhouse-server-19.4.2.7-1.el7.x86_64.rpm |
clickhouse-server-common-19.4.2.7-1.el7.x86_64.rpm |
安装权限要求:
具有 sudo权限的用户或root用户,推荐使用root用户安装
安装时用root用户运行或使用具有 sudo权限的用户执行。
3、设置系统环境
3.1 取消打开文件数限制
在/etc/security/limits.conf 文件的末尾加入以下内容(注意: * 不能省略):
* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
在/etc/sysctl.conf中,添加以下内容:
fs.inotify.max_user_watches=524288 fs.inotify.max_user_instances=8192
保存后,执行以下命令让设置生效
sudo sysctl -p /etc/sysctl.conf
3.2 取消SELINUX
#临时关闭selinux setenforce 0 #永久关闭Selinux,需要重启服务器生效 sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
3.3 关闭防火墙
1)CentOS 6.X/Redhat 6.X
service iptables stop service ip6tables stop chkconfig iptables off chkconfig ip6tables off
2)CentOS 7.X/Redhat 7.X
systemctl stop firewalld systemctl disable firewalld systemctl status firewalld
3.4开启防火墙
如果需要开启防火墙,则需要开放smartbi-mpp服务使用到的端口:
服务名 | 开放端口 |
smartbi-mpp | 9000,8123 |
开启端口:9000、8123
firewall-cmd --permanent --add-port=9000/tcp firewall-cmd --permanent --add-port=8123/tcp
配置完以后重新加载firewalld,使配置生效
firewall-cmd --reload
查看防火墙的配置信息
firewall-cmd --list-all
4、安装SmartbiMPP
4.1 安装SmartbiMPP
安装过程中请根据实际提示信息安装依赖包。
rpm -ivh clickhouse-common-static-19.4.2.7-1.el7.x86_64.rpm rpm -ivh clickhouse-server-common-19.4.2.7-1.el7.x86_64.rpm rpm -ivh clickhouse-server-19.4.2.7-1.el7.x86_64.rpm rpm -ivh clickhouse-client-19.4.2.7-1.el7.x86_64.rpm
4.2 SmartbiMPP的配置文件
SmartbiMPP配置文件:/etc/clickhouse-server/config.xml
SmartbiMPP用户配置文件:/etc/clickhouse-server/users.xml
4.3 日志文件存放路径
修改的配置文件/etc/clickhouse-server/config.xml,可以配置mpp的日志存放路径。
如修改日志目录,启动时可能提示权限不足,可以为指定的日志目录授权
#chown -R clickhouse.clickhouse <新的日志目录>
4.4 修改默认端口
8123是JDBC驱动的连接端口。
9000是clickhouse-client的连接端口。
一般不建议修改端口配置。
4.5 修改数据目录
数据存储目录用来存储SMARTBIMPP的数据文件,可以设置其他目录用于存储SMARTBIMPP的数据文件,如果指定其他目录,服务启动时可能会提示目录权限不足,需要为指定的目录添加权限:
chown -R clickhouse.clickhouse <新数据目录>
根据实际情况(找一个磁盘空间比较大的存储路径),修改的配置文件/etc/clickhouse-server/config.xml,修改之后的内容如下:
4.6 开启远程访问权限
修改的配置文件/etc/clickhouse-server/config.xml,放开注释即可。IPV4地址和IPV6地址只能配置一个,否则会出现端口冲突的报错。
如果需要配置监听ipv4地址,则配置问<listen_host>0.0.0.0</listen_host>
如果需要配置监听ipv6地址,则配置问<listen_host>::</listen_host>
温馨提示
ipv4地址和ipv6地址只能配置一个。
不是所有环境都支持ipv6地址,建议优先选择配置监听ipv4地址。
4.7 修改SMARTBIMPP内存设置
修改配置文件/etc/clickhouse-server/users.xml,单位是Byte,默认值是10G。根据实际情况配置内存值:
4.8 设置用户密码
修改配置文件/etc/clickhouse-server/users.xml,修改之后的内容如下:
方法一:设置明文密码。
方法二:设置加密密码(sha256sum加密)。
1)执行下面命令生成密码:
echo -n "manager" | sha256sum | tr -d '-'
2)设置密码:
4.9 启动SMARTBIMPP
1)CentOS 6.X/Redhat 6.X
sudo service clickhouse-server start
2)CentOS 7.X/Redhat 7.X
systemctl start clickhouse-server
使用指南
1、运维操作
1)CentOS 6.X/Redhat 6.X
# 停止服务 sudo service clickhouse-server stop # 查看服务状态 sudo service clickhouse-server status # 设置开机自启 chkconfig clickhouse-server on
2)CentOS 7.X/Redhat 7.X
# 停止服务 systemctl stop clickhouse-server # 查看服务状态 systemctl status clickhouse-server # 设置开机自启 systemctl enable clickhouse-server
2、上手教程
2.1 命令行登录
# 用clickhouse-client连接本机clickhouse-server服务器 clickhouse-client # 用本机clickhouse-client连接远程clickhouse-server服务器 clickhouse-client --host 192.168.3.54 --port 9000 --database default --user default --password manager
2.2 建表语句
ENGINE:是表的引擎类型,最常用的MergeTree。还有一个Log引擎也是比较常用。MergeTree要求有一个日期字段,还有主键。Log没有这个限制。
CREATE TABLE code_province( state_province String, province_name String, create_date date ) ENGINE = MergeTree(create_date, (state_province), 8192); ------------------------------------------------------------------------ CREATE TABLE code_province( state_province String, province_name String, create_date date ) ENGINE = Log;
create_date:是表的日期字段,一个表必须要有一个日期字段。
State_province:是表的主键,主键可以有多个字段,每个字段用逗号分隔。
8192:是索引粒度,用默认值8192即可。
2.3 数据加载
-----------导入CSV文件--------------- clickhouse-client --query "INSERT INTO default.code_province FORMAT CSV" < code_province.csv
3、数据备份
1、停止服务 service clickhouse-server stop
2、备份SMARTBIMPP的整个数据目录即可。数据目录可在/etc/clickhouse-server/config.xml文件中查看。
4、常见问题
关于日志:
SmartbiMPP默认日志存放路径:/var/log/clickhouse-server/ 目录包含:
clickhouse-server.log :SmartbiMPP运行日志
clickhouse-server.err.log:SmartbiMPP错误日志
遇到SmartbiMPP启动失败的时候,一般都可以根据日志来分析问题。
如果修改了日志路径,请根据实际配置路径查找错误日志。
注意事项
如果需要获取SmartbiMPP日志,请使用root用户或者具有sudo权限的用户操作
系统不支持ipv6:
日志报错情况如下图所示。手工修改/etc/clickhouse-server/config.xml的监听地址,屏蔽::和::1的IPV6监听配置。
启动失败:
如下图所示,如果使用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
MPP运行过程中被终止进程:
MPP进程运行过程中奔溃,MPP错误日志没有任何输出
处理方法:查看/var/log/messages日志,发现MPP挂掉的原因,如下图:
MPP在运行过程中使用内存超出服务器最大内存,导致系统将MPP进程Kill掉。
查看MPP的users.xml配置文件,调整内存最大限制(具体参考服务器内存):
<max_memory_usage>28000000000</max_memory_usage> #示例限制最大内存28G
MPP在运行过程中可能突破内存的限制,因为在单次查询的用量统计中,CH是以分区为最小单位进行统计(不是数据行的粒度),这意味着单次查询的实际内存使用量有可能超过阀值。
通过添加max_memory_usage_for_user参数,限制单个用户在运行查询限制使用的最大内存量。
<max_memory_usage_for_user>26000000000</max_memory_usage_for_user>
重启MPP服务,观察服务是否会被系统kill。
5、调试方法
有时可能会出现SmartbiMPP启动失败,但是又没有日志的情况,可以使用如下命令启动SmartbiMPP,在前端获取启动日志分析问题。
使用指定配置文件启动SmartbiMPP # sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml