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

clickhouse驱动包 maven pom_java

把注释掉的<listen_host>::</listen_host>取消注释,然后重启服务:

systemctl restart clickhouse-server

3、现象
修改前与修改后监听8123端口,发现修改后,监听不到8123

3.1、以下为修改前:

lsof -i :8123

注意:如果没有8123端口 说明 CK 没有启动成功 根据下面操作看日志 一般都是端口占用问题

clickhouse驱动包 maven pom_vim_02

3.2、以下为修改后

lsof -i :8123

clickhouse驱动包 maven pom_xml_03

4、查找问题

clickhouse-server日志目录 为:

/var/log/clickhouse-server,目录中有多个日志文件,查看错误日志。

clickhouse驱动包 maven pom_vim_04

发现9000端口已被占用

clickhouse驱动包 maven pom_xml_05

查找9000端口使用者

netstat -ntlp

clickhouse驱动包 maven pom_xml_06

本机原装有zabbix,其中php-fpm使用了9000端口。

5、解决问题
修改clickhouse的9000端口为 9008

vim  /etc/clickhouse-server/config.xml

clickhouse驱动包 maven pom_java_07

重启服务

systemctl restart clickhouse-server 

lsof -i :8123

clickhouse驱动包 maven pom_开发语言_08

问题解决。