前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ClickHouse安装部署

ClickHouse安装部署

作者头像
xiangzhihong
发布2022-06-01 10:12:58
1.7K0
发布2022-06-01 10:12:58
举报
文章被收录于专栏:向治洪向治洪

最近由于业务需要,所以研究了一下ClickHouse,也踩了一些坑,在此记录一下。ClickHouse中文文档比较齐全,入门之前建议先看下官方文档,可以减少踩坑和降低学习成本,ClickHouse中文文档地址:https://clickhouse.com/docs/zh/getting-started/tutorial/

1,本地安装部署

由于我的电脑是mac m1的,所以采用的是下载源码自己构建的方式在本地运行ClickHouse的,参考的是如下的文章:MacOS M1芯片安装ClickHouse 。 这篇文章有如下几个点要注意一下,首先是第4步拉取源码,这一步我一开始没复制他的代码,我直接使用的git clone拉的,没有加–recursive参数,结果报了一个错误。

在这里插入图片描述
在这里插入图片描述

源码下载下来之后,接下来就是在 Mac OS X 中编译 ClickHouse,步骤参考官方文档:在 Mac OS X 中编译 ClickHouse

2,Centos安装部署

官网提供了很详细的安装部署文档,支持deb、rpm、tgz、docker等安装部署方式,参考文档:安装部署

不过,此处需要说明下,由于我司开发环境有网络环境隔离,下载rpm包的方式走不通,同样因为网络隔离的原因,官方的tgz包无法通过curl下载,我选择的是手动下载tgz包,然后通过别的方式将下载的tgz包上传到服务器。下载的地址:

代码语言:javascript
复制
https://packages.clickhouse.com/tgz/
https://github.com/ClickHouse/ClickHouse/releases

下载完成之后,按照官方文档上的说明使用curl进行下载安装。

代码语言:javascript
复制
tar -xzvf "clickhouse-common-static-22.1.3.7.tgz"
sudo "clickhouse-common-static-22.1.3.7、install/doinst.sh"

tar -xzvf "clickhouse-common-static-dbg-22.1.3.7.tgz"
sudo "clickhouse-common-static-dbg-22.1.3.7/install/doinst.sh"

tar -xzvf "clickhouse-server-22.1.3.7.tgz"
sudo "clickhouse-server-22.1.3.7/install/doinst.sh"

tar -xzvf "clickhouse-client-22.1.3.7.tgz"
sudo "clickhouse-client-22.1.3.7/install/doinst.sh"

3,启动Server

启动的命令如下:

代码语言:javascript
复制
sudo /etc/init.d/clickhouse-server start

如果使用root用户启动,会发现启动不了,具体的启动日志如下:

代码语言:javascript
复制
2022.03.29 17:39:13.912767 [ 6012 ] {} <Information> Application: Will watch for the process with pid 6013
2022.03.29 17:39:13.912900 [ 6013 ] {} <Information> Application: Forked a child process to watch
2022.03.29 17:39:13.913400 [ 6013 ] {} <Information> SentryWriter: Sending crash reports is disabled
2022.03.29 17:39:13.913547 [ 6013 ] {} <Trace> Pipe: Pipe capacity is 1.00 MiB
2022.03.29 17:39:14.193544 [ 6014 ] {} <Trace> BaseDaemon: Received signal -2
2022.03.29 17:39:14.193603 [ 6014 ] {} <Information> BaseDaemon: Stop SignalListener thread
2022.03.29 17:39:14.206283 [ 6012 ] {} <Information> Application: Child process exited normally with code 233.
2022.03.29 17:39:44.409085 [ 6067 ] {} <Information> Application: Will watch for the process with pid 6068
2022.03.29 17:39:44.409167 [ 6068 ] {} <Information> Application: Forked a child process to watch
2022.03.29 17:39:44.409619 [ 6068 ] {} <Information> SentryWriter: Sending crash reports is disabled
2022.03.29 17:39:44.409768 [ 6068 ] {} <Trace> Pipe: Pipe capacity is 1.00 MiB
2022.03.29 17:39:44.664700 [ 6069 ] {} <Trace> BaseDaemon: Received signal -2
2022.03.29 17:39:44.664762 [ 6069 ] {} <Information> BaseDaemon: Stop SignalListener thread
2022.03.29 17:39:44.677423 [ 6067 ] {} <Information> Application: Child process exited normally with code 233

然后,检查ClickHouse相关的用户目录,会发现用户和组都是clickhouse。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发现/var/lib/clickhouse目录下的文件权限为root,如果以普通用户起的话,可以将/var/lib/clickhouse下的文件全部更改为clickhouse。

代码语言:javascript
复制
chown -R clickhouse:clickhouse /var/lib/clickhouse/
在这里插入图片描述
在这里插入图片描述

在启动的时候,如果因为用户权限问题导致启动不了,可以检查下启动时的用户以及clickhouse相关的文件夹的用户和组。

代码语言:javascript
复制
/var/lib/clickhouse/
/var/log/clickhouse-server/
/etc/clickhouse-server
#和server无关,和客户端有关
/etc/clickhouser-client

然后用clickhouse用户来启动Server。

代码语言:javascript
复制
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml

上面说的是以普通用户的方式启动,更粗暴一点的方式是将和clickhouse相关的全部设置成root。

代码语言:javascript
复制
chown -R root:root /var/lib/clickhouse /var/log/clickhouse-server /etc/clickhouse-server /etc/clickhouse-client

nohup clickhouse-server --config-file=/etc/clickhouse-server/config.xml 

4,密码管理

clickhouse安装的时候会让你输入默认密码,默认密码在/etc/clickhouse-server/users.d/default-password.xml 里,如果忘记了或者想换一个密码,可以删掉default-password.xml,在/etc/clickhouse-server/users.xml中设置一个新的密码。

在这里插入图片描述
在这里插入图片描述

clickhouse用户的密码在users.xml,比如你想将default用户的密码设置成123456,可以找到default用户的配置,修改password的配置为123456即可。

如果需要将密码加密,clickhouse也支持sha256的方式,修改password_sha256_hex的配置,如下:

代码语言:javascript
复制
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>

修改完密码之后,重启clickhouse server进程,密码就生效了。

5,版本升级

由于我使用的是tgz包的方式安装的,升级的方式是下载对应版本的包,然后重新执行下安装命令,比如要从22.1.3.7升级到22.3.2.2。

代码语言:javascript
复制
tar -xzvf "clickhouse-common-static-22.3.2.2.tgz"
sudo "clickhouse-common-static-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-common-static-dbg-22.3.2.2.tgz"
sudo "clickhouse-common-static-dbg-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-server-22.3.2.2.tgz"
sudo "clickhouse-server-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-client-22.3.2.2.tgz"
sudo "clickhouse-client-22.3.2.2/install/doinst.sh"
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,本地安装部署
  • 2,Centos安装部署
  • 3,启动Server
  • 4,密码管理
  • 5,版本升级
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档