前言

最近听室友说他们公司用clickhouse这个数据库,正好赶上加班任务不多,顺便研究了一下,首先是数据库的安装,在网上找了很多教程,虽然整体上十分的详细,但是普遍都很顺利,就感觉很奇怪,安装过程中竟然没有踩过坑。此博客记录本人的安装全过程,附带一些踩的坑和解决办法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Clickhouse数据库简介

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。

常见的列式数据库有: Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+。

clickhouse是列式数据库当中最常用的一个,是真正的面向列的DBMS。网上有很多非常详细的博客文章可以学习。具体学习不是此博客的主要内容。

附上clickhouse官方文档:clickhouse官方文档

二、前期准备

1.安装Linux

首先,Clickhouse目前支持安装在Linux、Mac OS X等操作系统中,不支持直接安装在windows平台。所以需要大家了解Linux的相关知识和使用经验。

安装Linux可通过安装虚拟机,然后安装cent os或者ubuntu等Linux的发行版系统。但是安装比较麻烦,又要安装虚拟机,又要下载系统镜像。这里推荐一个方法,就是利用windows 10的内置Linux子系统。这个方法也是网上有同学分享的,确实很好用。具体安装方式如下:

1.开启windows的开发者模式

打开“设置“—>”更新和安全“—>”开发者选项“,选择”开发人员模式“。
开发者选项
此处会有安装开发者选项的工具包,稍等几分钟就可以了。

2.安装适用于Linux的windows子系统

打开控制面板,选择“程序”,点击“启用或关闭windows功能”,勾选“适用于Linux的Windows子系统”。此处会安装程序包,稍等几分钟就可以了,安装之后要重启系统
在这里插入图片描述

3.安装Ubuntu

打开微软商店,搜索Ubuntu,选择一个最近的系,点击获取即可自动安装。
Ubuntu

安装之后启动Ubuntu,会有一个短暂的初始化过程,然后出入用户名和密码,如下图,就安装成功了。
设置用户名密码

4.设置管理员权限

使用Linux系统经常需要用管理员权限操作。所以这里先设置好,以免后面麻烦。由于对Ubuntu不了解,所以这里踩了一个坑。

问题一:su: Authentication failure 的解决方案

原因是:ubuntu默认不允许使用root登录,因此初始root账户是不能使用的,需要在普通账户下利用sudo权限修改root密码。
在这里插入图片描述
解决方案很简单:设置一个root密码就行了。注意是sudo 而不是su。这样就解决了!

参考博客原文:su: Authentication failure 的解决方案

前期工作准备好,就可以进入Clickhouse的安装了。

三、安装Clickhouse

起初安装Clickhouse是参考这个博文进行操作的:UBUNTU下CLICKHOUSE的安装与访问,但是安装过程并非像博文中那么顺利,安装过程也并不是很详细,下面将结合博文和自己的实际操作,详细的进行一次安装部署。


1. 获取安装文件

这里是通过到官网手动下载安装包进行的安装的,通过拉取的方式可以自行尝试,这里就不重复操作了,并且安装的版本和上面博文中的一样。

官方地址:下载地址

下载三个安装程序包:

clickhouse-common-static_20.9.2.20_amd64
clickhouse-server_20.9.2.20_all
clickhouse-client_20.9.2.20_all

直接在下载列表中搜索就可以搜到。
在这里插入图片描述

2.执行安装

下载完后,将下载的三个文件可以复制到tmp文件里面,然后通过cd命令移动到这个文件夹下,ls命令查看文件是否存在Ubuntu系统中。因为这里面踩了个坑,执行命令时一直提示文件不存在,所以只好移动到其他地方了。
在这里插入图片描述
然后依次安装,执行命令:

sudo dpkg -i clickhouse-common-static_20.9.2.20_amd64.deb
sudo dpkg -i clickhouse-server_20.9.2.20_all.deb
sudo dpkg -i clickhouse-client_20.9.2.20_all.deb

安装程序包
如图所示就已经安装成功了。要注意的是,安装clickhouse-server的时候,提示了输入密码。我这里面输入的123456(很重要),如果不输入密码直接回车似乎是可以的。

在这里插入图片描述

并且在etc文件夹下看到了安装的clickhouse
在这里插入图片描述

3.启动Clickhouse服务

操作到这里可以说已经成功一半了,这里可以启动Clickhouse服务了。但是,在启动服务的时候会报错,解决思路就是修改配置文件内容。这里我们先直接启动服务,看都会报什么错误。(重点

启动服务有两种方式:

第一种,可以运行如下命令在后台启动服务:
sudo service clickhouse-server start

可以在/var/log/clickhouse-server/目录中查看日志。

如果服务没有启动,请检查配置文件 /etc/clickhouse-server/config.xml。

第二种,你也可以在控制台中直接启动服务:
clickhouse-server --config-file=/etc/clickhouse-server/config.xml

在这种情况下,日志将被打印到控制台中,这在开发过程中很方便。

如果配置文件在当前目录中,你可以不指定‘–config-file’参数。它默认使用‘./config.xml’。


我们先执行一下sudo service clickhouse-server start看会提示什么(有可能直接成功,这里讲一下遇到的坑)。

问题一:时区报错

修改失去
注意红线的地方是错误信息,意思就是这不能确定本机操作系统的时区,需要自己手动设置。

sudo vim /etc/clickhouse-server/config.xml

找到timezone,修改如下:

<timezone>Asia/Shanghai</timezone>

在这里插入图片描述
这个时区默认是这段代码默认是没有的,所以尽量提前加上。

问题二:启动报错

启动参数:sudo clickhouse-server --config-file=/etc/clickhouse-server/config.xml

2020.08.20 18:49:28.189321 [ 29338 ] {} <Error> Application: DB::Exception: Effective user of the process (root) does not match the owner of the data (clickhouse). Run under 'sudo -u clickhouse'

提示已经很清楚了,Run under ‘sudo -u clickhouse’.

修改后启动参数即可: sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml

问题三:连接服务器错误 Connection refused: connet

配置外网访问(远程访问)。

在config.xml中,将红框部分注释打开。
在这里插入图片描述

问题四:can’t include node clickhouse_remote_servers

启动的时候可能会提示类似不能引入clickhouse_remote_servers节点的错误,这个节点主要是配置集群的。可能是因为没有metrika.xml文件,导致引入节点报错。由于是单机版安装,这里可以暂时将下图的节点删掉(修改配置文件之前建议备份原文件)。注意:这里不能直接ctrl+/注释掉,因为节点里面有注释,会报错。
在这里插入图片描述

4. 启动/停止/重启服务

sudo service clickhouse-server start #启动
sudo service clickhouse-server stop #停止
sudo service clickhouse-server restart #重启服务,其实就是先stop,然后再start

5.连接Clickhouse服务器

执行命令:

clickhouse-client

注意:如果设置了密码,会有这样的提示
在这里插入图片描述
所以用如下完整的命令(现在是用的默认账户):

clickhouse-client --port 9000 --host 127.0.0.1 --password 123456 --multiline

测试连接
这样就成功了。

6.用数据库工具连接clickhouse

java开发的话,用idea内置的clickhouse工具就可以连接,操作也十分简单。

在这里插入图片描述
这里端口就是8123默认即可,连接clickhouse的http端口就是8123。
在这里插入图片描述
安装插件后就可以在idea中使用了。
在这里插入图片描述

总结

写到这就基本结束了,第一次安装踩了不少坑,也出现了很多奇奇怪怪的问题。第二次安装就十分顺利。这只是单机部署,但在实际工作、生产,重要的还是集群,以后还会继续研究集群的部署。


参考博文

下面是参考的一些博文,还有一个集群的部署方式,可以一同参考:
1.clickhouse集群安装
2.clickhouse系列之一: clickhouse简介与安装
3.clickhouse系列之二:clickhouse遇到的报错问题及解决方法
4.UBUNTU下CLICKHOUSE的安装与访问
5.clickhouse基本操作一 用户权限管理

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐