文章目录
前言
最近听室友说他们公司用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,会有一个短暂的初始化过程,然后出入用户名和密码,如下图,就安装成功了。
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基本操作一 用户权限管理
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。