1. 环境检测
# grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
# 如果打印出"SSE 4.2 supported"说明服务器支持SSE指令集,则可以使用RPM包或者yum安装
# 否则需要通过源码编译特定的版本进行安装
2. 方式一:使用RPM包离线安装
装备4个RPM包:
clickhouse-client-19.17.10.1-1.el7.x86_64.rpm
clickhouse-common-static-19.17.10.1-1.el7.x86_64.rpm
clickhouse-server-19.17.10.1-1.el7.x86_64.rpm
clickhouse-server-common-19.17.10.1-1.el7.x86_64.rpm
下载地址:https://packagecloud.io/altinity/clickhouse
依次执行:
rpm -ivh clickhouse-common-static-19.17.10.1-1.el7.x86_64.rpm
rpm -ivh clickhouse-common-static-19.17.10.1-1.el7.x86_64.rpm
rpm -ivh clickhouse-server-19.17.10.1-1.el7.x86_64.rpm
rpm -ivh clickhouse-client-19.17.10.1-1.el7.x86_64.rpm
如果有报错:
libicudata.so.50()(64bit) is needed by clickhouse-server-19.17.10.1-1.el7.x86_64
libicui18n.so.50()(64bit) is needed by clickhouse-server-19.17.10.1-1.el7.x86_64
libicuuc.so.50()(64bit) is needed by clickhouse-server-19.17.10.1-1.el7.x86_64
安装libicu即可解决:
yum install libicu.x86_64 -y
3. 方式二:yum在线安装
sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
sudo yum install clickhouse-server clickhouse-client
4. 配置文件
核心目录:
/etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等。
/var/lib/clickhouse:默认的数据存储目录
/var/log/clickhouse-server:默认保存日志的目录
核心配置文件:
- /etc/security/limits.d/clickhouse.conf:文件句柄数量的配置,配置也可以通过config.xml的max_open_files修改
- /etc/cron.d/clickhouse-server:cron定时任务配置,用于恢复因异常原因中断的ClickHouse服务进程,每10s就会使用condstart尝试启动一次ClickHouse服务,如果服务正常运行,就跳过
可执行文件:
- /usr/bin/clickhouse:主程序的可执行文件
- /usr/bin/clickhouse-client:一个指向ClickHouse可执行文件的软链接,供客户端连接使用
- /usr/bin/clickhouse-server:一个指向ClickHouse可执行文件的软链接,供服务端启动使用
- /usr/bin/clickhouse-compressor:内置提供的压缩工具,可用于数据的正压反解
如何修改默认的数据文件目录和默认日志目录?
# /etc/clickhouse-server/config.xml
<!-- Path to data directory, with trailing slash. -->
<path>/var/lib/clickhouse/</path>
<!-- Path to temporary data for processing hard queries. -->
<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>
<!-- Directory with user provided files that are accessible by 'file' table function. -->
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
<logger>
<level>trace</level>
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<size>1000M</size>
<count>10</count>
</logger>
5. 服务启停
- 基于默认配置启动,默认读取/etc/clickhouse-server/config.xml配置文件
sudo systemctl start clickhouse-server
sudo systemctl stop clickhouse-server
- 基于指定配置文件启动,需要手动切换到clickhouse用户启动
# 切换到clickhouse用户
su clickhouse
# 如果报错:This account is currently not available,需要先激活clickhouse用户
usermod -s /bin/bash clickhouse
# 手动指定一个配置文件并启动clickhouse服务
clickhouse-server --config-file=/etc/clickhouse-server/config-ch5.xml
6. 客户端连接
# clickhouse-client
ClickHouse client version 19.17.10.1.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 19.17.10 revision 54428.
:) show databases;
SHOW DATABASES
┌─name────┐
│ DB_TEST │
│ default │
│ system │
└─────────┘
7. clickhouse-client 常用选项
选项全称 | 选项简写 | 作用 |
---|---|---|
--help | 打印帮助信息 | |
--host | -h | 服务端的地址,默认值为localhost 如果修改了config.xml内的listen_host,则需要依靠此参数指定服务端地址 |
--port | 服务端的TCP端口,默认值为9000 如果要修改config.xml内的tcp_port,则需要使用此参数指定 |
|
--user | -u | 登录的用户名,默认值为default 如果使用非default的其他用户名登录,则需要使用此参数指定 |
--password | 登录的密码,默认值为空 如果在用户定义中未设置密码,则不需要填写(例如默认的default用户) |
|
--database | -d | 登录的数据库,默认值为default |
--query | -q | 只能在非交互式查询时使用,用于指定SQL语句 |
--multiquery | -n | 在非交互式执行时,允许一次运行多条SQL语句,多条语句之间以分号间隔 |
--time | -t | 在非交互式执行时,会打印每条SQL的执行时间 |
--multiline | -m | 设置这个选项后,在进入交互式查询界面后,可以允许一条SQL换行写入 否则换行的SQL是不能被正确解析的 |