一、安装指南
1、系统环境要求
组件 | 要求 |
---|---|
操作系统 | 只支持 64位的Linux系统 建议:
|
CPU | 建议8核或以上 |
内存 | 建议32G以上 |
硬盘 | 建议固态硬盘或高速硬盘 空间大小2048G |
2、安装介质装备
SmartbiMPP 介质
CentOS6.X/Redhat6.x注意 |
---|
官方预构建的二进制文件通常针对x86_64进行编译,并利用
|
2、安装介质装备
SmartbiMPP 介质(RPM包)
介质名称 |
---|
clickhouse-common-static |
-21.6.6.51-2.x86_64.rpm |
clickhouse-server |
-21.6.6.51 |
-2.noarch.rpm |
clickhouse-client |
-21.6.6.51 |
-2.noarch.rpm |
SmartbiMPP 介质(deb包)
介质名称 |
---|
clickhouse-common-static_ |
22. |
8. |
9. |
24_amd64. |
deb |
clickhouse-server_ |
22. |
8. |
9. |
24_ |
amd64. |
deb |
clickhouse-client_ |
22. |
8. |
9. |
24_ |
amd64.deb |
安装权限要求:
安装时用root用户运行或使用具有sudo权限的用户执行,推荐使用root用户安装。
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(UBUNTU 系统不需要配置此步骤)
代码块 | ||
---|---|---|
| ||
#临时关闭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)Ubuntu系统
Ubuntu系统默认的防火墙是ufw,具体操作如下
代码块 | ||
---|---|---|
| ||
ufw disable
ufw status |
3.4开启防火墙
如果需要开启防火墙,则需要开放smartbi-mpp服务使用到的端口:如果需要开启防火墙,则需要开放smartbiMPP服务使用到的端口:
服务名 | 开放端口 |
---|---|
smartbi-mpp | 9000,8123 |
Centos系统
开启端口:9000、8123
代码块 | ||
---|---|---|
| ||
firewall-cmd --permanent --add-port=9000/tcp firewall-cmd --permanent --add-port=8123/tcp |
配置完以后重新加载firewalld,使配置生效
代码块 | ||
---|---|---|
| ||
firewall-cmd --reload |
查看防火墙的配置信息
代码块 | ||
---|---|---|
| ||
firewall-cmd --list-all |
Ubuntu系统
开启端口:9000、8123
代码块 | ||
---|---|---|
| ||
ufw allow 8123/tcp
ufw allow 9000/tcp
|
配置完以后重新加载firewalld,使配置生效
代码块 | ||
---|---|---|
| ||
ufw reload |
查看防火墙的配置信息
代码块 | ||
---|---|---|
| ||
ufw status numbered |
注意 | ||
---|---|---|
| ||
建议关闭服务器虚拟内存,避免查询期间使用虚拟内存导致查询变慢和查询异常。 swapoff -a #临时关闭 |
4、安装SmartbiMPP
4.1 安装SmartbiMPP
安装过程中请根据实际提示信息安装依赖包。
注意 |
---|
若提示缺少相关依赖,则需先安装依赖包 例如:rpm -ivh libicu-50.2-3.el7.x86_64.rpm |
RPM包安装:
代码块 | ||
---|---|---|
| ||
rpm -ivh clickhouse-common-static_21.6.6.51.rpm rpm -ivh clickhouse-server_-21.6.6.51_all.rpm-2.noarch.rpm 注意:安装server服务时此处会出现输入密码提示:Enter password for default user: 选择一:此处可以设置密码,密码信息将会保存在/etc/clickhouse-server/users.d/default-password.xml文件中,后期修改密码可在此文件修改。 选择二:跳过不设置密码,密码为空,没有生成/etc/clickhouse-server/users.d/default-password.xml文件,后期可以在/etc/clickhouse-server/users.xml文件中添加或修改密码。 rpm -ivh clickhouse-client_-21.6.6.51_all-2.noarch.rpm |
4.2 SmartbiMPP的配置文件
SmartbiMPP配置文件:DEB包安装
代码块 | ||
---|---|---|
| ||
dpkg -i clickhouse-common-static_22.8.9.24_amd64.deb dpkg -i clickhouse-server_22.8.9.24_amd64.deb 注意:安装server服务时此处会出现输入密码提示:Enter password for default user: 选择一:此处可以设置密码,密码信息将会保存在/etc/clickhouse-server/users.d/default-password.xml文件中,后期修改密码可在此文件修改。 选择二:跳过不设置密码,密码为空,没有生成/etc/clickhouse-server |
/users.d/default-password.xml文件,后期可以在/etc/clickhouse-server/users |
.xml文件中添加或修改密码。
dpkg -i clickhouse-client_22.8.9.24_amd64.deb |
5、配置修改说明
5.1 日志文件存放路径
修改的配置文件/etc/clickhouse-server/config.xml,可以配置mpp的日志存放路径。
如修改日志目录,启动时可能提示权限不足,可以为指定的日志目录授权
#chown #chown -R clickhouse.clickhouse <新的日志目录>
4
5.
42 修改默认端口
8123是JDBC驱动的连接端口。
9000是clickhouse-client的连接端口。
一般不建议修改端口配置。
4
5.
53 修改数据目录
数据存储目录用来存储SMARTBIMPP的数据文件,可以设置其他目录用于存储SMARTBIMPP的数据文件,如果指定其他目录,服务启动时可能会提示目录权限不足,需要为指定的目录添加权限:
chown -R clickhouse.clickhouse <新数据目录>
根据实际情况(找一个磁盘空间比较大的存储路径),修改的配置文件/etc/clickhouse-server/config.xml,修改之后的内容如下:
5.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
5.
75 修改SMARTBIMPP内存设置
21.6版本的clickhouse,修改内存使用配置文件在/etc/clickhouse-server/user.xml
修改配置文件/etc/clickhouse-server/users.xml,单位是Byte,默认值是10G。根据实际情况配置内存值:
4.8 设置用户密码
<max_memory_usage>10000000000</max_memory_usage>
22.8版本的clickhouse,修改内存使用的配置文件在/etc/clickhouse-server/config.xml
修改配置文件/etc/clickhouse-server/config.xml
<max_server_memory_usage>0</max_server_memory_usage>
<max_server_memory_usage_to_ram_ratio>0.9</max_server_memory_usage_to_ram_ratio>
注意 | ||
---|---|---|
| ||
max_server_memory_usage默认值为0,表示不限制内存使用。跟config.xml文件的max_server_memory_usage_to_ram_ratio参数一起使用。默认最大内存是服务器的物理内存的90%。 max_server_memory_usage的配置值不能大于服务器物理内存乘以max_server_memory_usage_to_ram_ratio的值。 max_server |
方法一:设置明文密码。
方法二:设置加密密码(sha256sum加密)。
1)执行下面命令生成密码:_memory_usage的配置值也不能太小,否则可能导致无法执行sql查询 |
5.6 其他配置修改:
查询语句大小限制,默认的max_query_size最大是256 KiB,如果查询语句比较大,可以配置此项,下图配置为10G,可自行调整,但不超过mpp最大内存
<max_query_size>10737418240</max_query_size>
查询语法树中的最大元素数。默认值下为50000,如果超过,会引发异常。
<max_ast_elements>10000000</max_ast_elements>
<max_expanded_ast_elements>10000000</max_expanded_ast_elements>
5.7 修改用户密码
情况一:安装server服务时设置过密码
默认密码是在安装时已经设置的密码,密码会被加密处理后存放在/etc/clickhouse-server/users.d/default-password.xml配置文件中,若要修改修改密码,需要先将密码加密。然后替换默认密码
具体操作如下:
1)执行下面命令生成密码
代码块 | ||
---|---|---|
| ||
echo -n "manager" | sha256sum | tr -d '-' |
2)设置密码:
注意 | ||
---|---|---|
| ||
设置用户密码的两种方式,只能选择其中一种,不能同时配置两个方式的密码选项。 |
2)设置密码
代码块 |
---|
vi /etc/clickhouse-server/users.d/default-password.xml # 编辑该文件,将加密生成的密码替换之前的密码。 |
情况二:安装server服务时没有设置密码
没设置密码时,连接高速缓存库密码为空,修改/etc/clickhouse-server/users.xml文件可以修改密码。
方法一:设置明文密码
方法二:设置加密密码
代码块 |
---|
echo -n "manager" | sha256sum | tr -d '-' |
代码块 |
---|
vi /etc/clickhouse-server/users.xml # 编辑该文件,将加密生成的密码替换之前的密码。
|
5.8、设置时区
修改的配置文件/etc/clickhouse-server/config.xml,设置时区为北京时间 Asia/Shanghai。
<timezone>Asia/Shanghai</timezone>
6 启动SMARTBIMPP
启动成功后,即可在smartbi中测试连接。
1)CentOS 6.X/Redhat 6.X
代码块 | ||
---|---|---|
| ||
sudo service clickhouse-server start |
2)CentOS 7.X/Redhat 7.X
代码块 | ||
---|---|---|
| ||
systemctl start clickhouse-server |
使用指南
1、运维操作3)22.8版本的clickhouse,启动方式如下
代码块 | ||
---|---|---|
| ||
clickhouse start |
二、使用指南
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 #设置开机自启 |
3)Ubuntu系统
代码块 | ||
---|---|---|
| ||
# 停止服务
clickhouse stop
# 启动服务
clickhouse start
# 查看服务进程
ps -ef|grep clickhouse
# 设置开机自启
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 |