页面树结构
转至元数据结尾
转至元数据起始

Smartbi MPP 高速缓存库,列式数据库管理系统,用于抽取数据。

SmartbiMPP支持 21.x及以上版本,低于该版本则需自行更新。更新方法可参考文档MPP更新

安装包请联系Smartbi官方支持获取。

一、安装指南

1、系统环境要求

组件要求

操作系统

只支持 64位的Linux系统

建议:

  • CentOS 6或以上
  • RedHat 6或以上

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 介质(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(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开启防火墙

如果需要开启防火墙,则需要开放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-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-2.noarch.rpm

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 -R clickhouse.clickhouse <新的日志目录> 

5.2 修改默认端口

8123是JDBC驱动的连接端口。

9000是clickhouse-client的连接端口。

一般不建议修改端口配置。

5.3 修改数据目录

数据存储目录用来存储SMARTBIMPP的数据文件,可以设置其他目录用于存储SMARTBIMPP的数据文件,如果指定其他目录,服务启动时可能会提示目录权限不足,需要为指定的目录添加权限:

chown -R clickhouse.clickhouse <新数据目录>     

根据实际情况(找一个磁盘空间比较大的存储路径),修改的配置文件/etc/clickhouse-server/config.xml,修改之后的内容如下:

5.4 开启远程访问权限

修改的配置文件/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地址。

5.5 修改SMARTBIMPP内存设置

21.6版本的clickhouse,修改内存使用配置文件在/etc/clickhouse-server/user.xml

修改配置文件/etc/clickhouse-server/users.xml,单位是Byte,默认值是10G。根据实际情况配置内存值:

<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_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)设置密码

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

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


评论

  1. 乐立权 发表:

    查询语句(SQL)超过了缓存库配置的最大数的提示,请参考5.6 其他配置修改。