ClickHouse在Linux上安装和配置
基于脚本的安装
1.1.1 确保curl已安装在系统上
sudo yum install -y curl
让我们下载并运行packagecloud.io提供的安装shell脚本
curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash
检查是否有可用于安装的ClickHouse软件包
sudo yum list 'clickhouse*'
ClickHouse包应该列为可用,如下所示:
Available Packages
clickhouse-client.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-common-static.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-compressor.x86_64 1.1.54336-3.el7 Altinity_clickhouse
clickhouse-debuginfo.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-mysql.noarch 0.0.20180319-1 Altinity_clickhouse
clickhouse-server.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-server-common.x86_64 18.1.0-1.el7 Altinity_clickhouse
clickhouse-test.x86_64 18.1.0-1.el7 Altinity_clickhouse
有多个软件包可用(新版本和旧工具),其中一些已经弃用,因此无需安装所有可用的RPM。
现在让我们安装ClickHouse主要部件 - 服务器和客户端应用程序。
sudo yum install -y clickhouse-server clickhouse-client
并验证它是否已列为已安装
sudo yum list installed 'clickhouse*'
ClickHouse包应该列为已安装,如下所示:
Installed Packages
clickhouse-client.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-common-static.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-server.x86_64 18.1.0-1.el7 @Altinity_clickhouse
clickhouse-server-common.x86_64 18.1.0-1.el7 @Altinity_clickhouse
1.2 通过下载rpm包进行安装
1.2.1 下载rpm安装包
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/6/clickhouse-server-common-19.3.6-1.el6.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/6/clickhouse-server-19.3.6-1.el6.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/6/clickhouse-common-static-19.3.6-1.el6.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/6/clickhouse-client-19.3.6-1.el6.x86_64.rpm/download.rpm
1.2.2 使用yum命令分别对上面下载的rpm包进行安装
sudo yum install clickhouse-*
2 配置
修改配置文件
sudo vim /etc/clickhouse-server/config.xml
2.1 修改log路径
<log>/data/clickhouse/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/data/clickhouse/log/clickhouse-server/clickhouse-server.err.log</errorlog>
2.2 修改数据路径
<!-- Path to data directory, with trailing slash. -->
<path>/data/clickhouse/</path>
<!-- Path to temporary data for processing hard queries. -->
<tmp_path>/data/clickhouse/tmp/</tmp_path>
<!-- Directory with user provided files that are accessible by 'file' table function. -->
<user_files_path>/data/clickhouse/user_files/</user_files_path>
3 启动
3.1 运行服务
sudo service clickhouse-server start
可以在/var/log/clickhouse-server/目录中查看日志。
如果服务没有启动,请检查配置文件 /etc/clickhouse-server/config.xml。
你也可以在控制台中直接启动服务:
clickhouse-server --config-file=/etc/clickhouse-server/config.xml
3.1 客户端连接服务
clickhouse-client
默认情况下它使用‘default’用户无密码的与localhost:9000服务建立连接。 客户端也可以用于连接远程服务,例如:
clickhouse-client --host=example.com
clickhouse 开启运程访问,遇到的问题
1、场景
安装完clickhouse后,想使用可视化数据库工具连接clickhouse.
DBeaver连接ClickHouse需要开放远程访问权限,按照网上说明,需要修改配置文件
2、执行操作
vim /etc/clickhouse-server/config.xml
把注释掉的<listen_host>::</listen_host>取消注释,然后重启服务:
systemctl restart clickhouse-server
3、现象
修改前与修改后监听8123端口,发现修改后,监听不到8123
3.1、以下为修改前:
lsof -i :8123
注意:如果没有8123端口 说明 CK 没有启动成功 根据下面操作看日志 一般都是端口占用问题
3.2、以下为修改后
lsof -i :8123
4、查找问题
clickhouse-server日志目录 为:
/var/log/clickhouse-server,目录中有多个日志文件,查看错误日志。
发现9000端口已被占用
查找9000端口使用者
netstat -ntlp
本机原装有zabbix,其中php-fpm使用了9000端口。
5、解决问题
修改clickhouse的9000端口为 9008
vim /etc/clickhouse-server/config.xml
重启服务
systemctl restart clickhouse-server
lsof -i :8123
问题解决。