精华 ClickHouse版本升级
方案
- 我们内部的ClickHouse采用域名轮训的方式,整体架构如下:
- 升级思路:
- 一台一台从DNS里摘除,期间分布式表无法读取,整体写入被其他未停机节点接收
stop ClickHouse进程
- 略
yum remove ClickHouse安装包
yum remove -y clickhouse-server
yum remove -y clickhouse-client
yum remove -y clickhouse-compressor
yum remove -y clickhouse-server-common
下载新的包
-
根据官方发布文档,找到最新稳定版本
-
在https://packagecloud.io/app/Altinity/clickhouse/search?q=1.1.54362&filter=all&dist=搜索对应的版本,下载CentOS7、X64的rpm包
-
只需要注意如下包,test和debug的无需
clickhouse-client-1.1.54362-1.el7.x86_64.rpm
clickhouse-server-1.1.54362-1.el7.x86_64.rpm
clickhouse-server-common-1.1.54362-1.el7.x86_64.rpm
重启
- 略
问题
error: Failed dependencies:
libcrypto.so.10(OPENSSL_1.0.2)(64bit) is needed by clickhouse-server-1.1.54362-1.el7.x86_64
yum -y install openssl
写入问题
- JDBC采用内部轮训写(ip1, ip2, ip3),可以不做修改即可自动切换
- Python ClickHouse Driver存在异常,DNS修改后,仍旧会连接到老的IP,==暂时无解==
DNS刷新问题
现象
- 时间统计图突然出现一个大坑,缺失很大一部分数据
- 原因:
- 实际数据没丢,只是集群看上去是3个,实际上是1个,只读到了1/3的数据
解决方案
- 不能重启
- 替换域名为IP,动态加载 OR
- 还是用域名,所有节点执行:
SYSTEM DROP DNS CACHE
常见问题
- 请务必分清楚数据目录和ClickHouse-server,搞清楚你的数据目录和server目录安装的位置,不要再问数据目录会不会丢
- Docker能不能用?当然能,效果更好
git clone v1.1.54343-stable后源码编译不过。应该如何解决啊 下面是最后断掉的部分打印 contrib/poco/PDF/* dpkg-buildpackage: source only upload: Debian-native package W: /root/.pbuilderrc does not exist using bionic-amd64 ubuntu bionic amd64 root http://archive.ubuntu.com/ubuntu/ I: using fakeroot in build. I: Current time: Tue Jul 31 15:36:32 CST 2018 I: pbuilder-time-stamp: 1533022592 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bionic-amd64-base.tgz] E: failed to find /var/cache/pbuilder/bionic-amd64-base.tgz, have you done <pbuilder create> to create your base tarball yet?