CentOS6.10上离线安装ClickHouse19.9.5.36并修改默认数据存储目录

news2024/11/25 0:39:35

背景

在一台装有 CentOS6.10 操作系统的主机上安装 ClickHouse (其实本来计划是先安装 Docker ,然后在 Docker 中快速启动 ClickHouse 的,但是由于 CentOS6Docker 支持不好,就直接在系统上装 ClickHouse 吧);但是在操作系统上按照 ClickHouse 官方的命令: curl https://clickhouse.com/ | sh 安装后,启动报错:

./clickhouse: /lib64/libc.so.6: version `GLIBC_2.14’ not found (required by ./clickhouse)

网上一查:出现"libc.so.6: version GLIBC_2.14 not found"问题,是由于 glibc 版本过低,需要升级 glibc 。由于CentOS系统RPM源目前 glibc 最高版本是2.12,所以只能采用源码升级,一顿操作后,查看系统glibc支持的版本 strings /lib64/libc.so.6 |grep GLIBC ,有了GLIBC_2.14;折腾了半天,可是依然无法成功启动 ClickHouse

最后选择离线安装低版本 ClickHouse19.9.5.36 ;此外,系统还挂载了一个600G的数据盘,就修改 ClickHouse 的默认数据存储目录,将数据和日志放到数据盘中;配置了远程访问与密码,通过命令行客户端建立连接,最后建库建表。

2023-06-10-ClickHouse.jpg

系统环境

[root@iiot ~]# uname -a
Linux iiot 2.6.32-754.15.3.el6.x86_64 #1 SMP Tue Jun 18 16:25:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@iiot ~]# cat /etc/redhat-release 
CentOS release 6.10 (Final)
[root@iiot ~]# cat /proc/version 
Linux version 2.6.32-754.15.3.el6.x86_64 (mockbuild@x86-01.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) ) #1 SMP Tue Jun 18 16:25:32 UTC 2019

下载安装

  • 下载

https://packagecloud.io/app/altinity/clickhouse/search?q=&filter=all&dist=el%2F6

  • 安装
rpm -ivh clickhouse-server-common-19.9.5.36-1.el6.x86_64.rpm
rpm -ivh clickhouse-server-19.9.5.36-1.el6.x86_64.rpm  --force --nodeps
rpm -ivh clickhouse-client-19.9.5.36-1.el6.x86_64.rpm  --force --nodeps
rpm -ivh clickhouse-common-static-19.9.5.36-1.el6.x86_64.rpm   --force --nodeps
  • 启动
# 啊呜,启动报错
[root@iiot mpp]# service clickhouse-server start
Start clickhouse-server service: /usr/bin/clickhouse-extract-from-config: error while loading shared libraries: libicui18n.so.42: cannot open shared object file: No such file or directory
Cannot obtain value of path from config file: /etc/clickhouse-server/config.xml

下载 libiculibicu-devel 并按照,解决上述报错: error while loading shared libraries: libicui18n.so.42

wget http://mirrors.aliyun.com/centos-vault/6.10/os/x86_64/Packages/libicu-4.2.1-14.el6.x86_64.rpm
wget http://mirrors.aliyun.com/centos-vault/6.10/os/x86_64/Packages/libicu-devel-4.2.1-14.el6.x86_64.rpm

rpm -ivh libicu-4.2.1-14.el6.x86_64.rpm
rpm -ivh libicu-devel-4.2.1-14.el6.x86_64.rpm
# 启动成功
[root@iiot mpp]# service clickhouse-server start
Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
DONE

# 查看状态,竟然停止了。。
[root@iiot mpp]# service clickhouse-server status
clickhouse-server: process unexpectedly terminated

# 到日志目录看下啥原因
[root@iiot clickhouse-server]# cd /var/log/clickhouse-server/
[root@iiot clickhouse-server]# ll
总用量 8
-rw-r----- 1 clickhouse clickhouse    0 67 11:22 clickhouse-server.err.log
-rw-r----- 1 clickhouse clickhouse 3190 67 11:35 clickhouse-server.log
-rw-r----- 1 clickhouse clickhouse 1969 67 11:34 stderr.log
-rw-r----- 1 clickhouse clickhouse    0 67 11:22 stdout.log

# 原来是服务器时区问题
[root@iiot clickhouse-server]# tailf clickhouse-server.log
Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Exception: Could not determine local time zone: custom time zone file used. (version 19.9.5.36)

# 解决ClickHouse时区报错问题
[root@iiot ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 重启ClickHouse后,连接8123端口,成功~
[root@iiot ~]# curl localhost:8123
Ok.

[root@iiot ~]# service clickhouse-server status
clickhouse-server service is running

# 停止ClickHouse服务
[root@iiot ~]# service clickhouse-server stop
Stop clickhouse-server service: 
DONE

修改默认的数据和日志目录

ClickHouse 默认数据目录: /var/lib/clickhouse/
ClickHouse 默认日志目录: /var/log/clickhouse-server/

挂载了一个600G的数据盘(在 /mnt 下),将 ClickHouse 的数据和日志放到数据盘中。

[root@iiot ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  3.8G   34G  11% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
/dev/vdb1       591G   16G  546G   3% /mnt
# 修改clickhouse的默认数据目录和日志目录
[root@iiot ~]# cd /mnt/mpp
[root@iiot mpp]# mkdir -p clickhouse/data
[root@iiot mpp]# mkdir -p clickhouse/log
[root@iiot mpp]# mv /var/lib/clickhouse/ /mnt/mpp/clickhouse/data/
[root@iiot mpp]# cd /var/lib/
[root@iiot lib]# ln -s /mnt/mpp/clickhouse/data/clickhouse/ .
[root@iiot lib]# 
[root@iiot lib]# mv /var/log/clickhouse-server/ /mnt/mpp/clickhouse/log/
[root@iiot lib]# cd /var/log/
[root@iiot log]# ln -s /mnt/mpp/clickhouse/log/clickhouse-server/ .
[root@iiot log]# 
[root@iiot log]# chown -Rc clickhouse:clickhouse /mnt/mpp/clickhouse/data/clickhouse/
[root@iiot log]# chown -Rc clickhouse:clickhouse /mnt/mpp/clickhouse/log/clickhouse-server/

重启 ClickHouse 服务,启动成功。

开启远程访问并配置密码

  • 开启远程访问
# 放开注释,当然记得开放安全组,默认端口8123
[root@iiot clickhouse-server]# vi /etc/clickhouse-server/config.xml
70     <listen_host>::</listen_host
  • 配置密码

安全意识一定要上来,既然开启了远程访问,安全配套要跟上(实际生产不建议开放数据库端口)。

# 这里使用明文密码,还可以通过sha256对密码进行加密配置
[root@iiot clickhouse-server]# vi /etc/clickhouse-server/users.xml
<!-- If user name was not specified, 'default' user is used. -->
47             <password>CK666%</password>

# 重启服务
[root@iiot clickhouse-server]# service clickhouse-server restart
Stop clickhouse-server service: DONE
Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
DONE

建库建表

ClickHouse 支持类 SQL 语句的操作,所以如果熟悉关系型数据库,可以很快上手(不过,与 MySQL 不同, ClickHouse 中的更新和删除语句不太一样,这在后续通过SpringBoot和MyBatisPlus集成 ClickHouse 后会遇到,并在下一篇文章中解决)。

-- 通过命令行客户端工具无密码连接(没配置密码可以这样连)
[root@iiot ~]# clickhouse-client

-- 通过命令行客户端工具带密码连接(-m参数含义:允许执行多行sql)
[root@iiot ~]# clickhouse-client --password -m

-- 建库
CREATE DATABASE IF NOT EXISTS helloworld;

-- 建表
CREATE TABLE helloworld.my_first_table
(
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
)
ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp);
Code: 36. DB::Exception: Received from localhost:9000, ::1. DB::Exception: You must provide an ORDER BY expression in the table definition. If you don't want this table to be sorted, use ORDER BY tuple(). 

与高版本不同,在 ClickHouse19 中建表语句还要求有 ORDER BY 。。

CREATE TABLE helloworld.my_first_table
(
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
)
ENGINE = MergeTree()
ORDER BY (user_id)
PRIMARY KEY (user_id, timestamp);
Code: 36. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Primary key must be a prefix of the sorting key, but its length: 2 is greater than the sorting key length: 1. 

CREATE TABLE helloworld.my_first_table
(
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
)
ENGINE = MergeTree()
ORDER BY (user_id, timestamp)
PRIMARY KEY (user_id, timestamp);

终于OK了。 ClickHouse 服务成功启动后,后续就可以把我们关系型数据库中的大量数据迁移至 ClickHouse ,体验下这款以著称的联机分析( OLAP )的列式数据库管理系统。

Note: 高版本的 ClickHouse 有个 PlayGround 端点: http://IP:8123/play ,可以直接通过 Web 的方式与 OLAP 数据库进行交互查询;本次用的 ClickHouse19.9.5.36 并没有。

Reference

  • https://www.codenong.com/cs109197835/

If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jvm 命令和工具, jvm 堆 内存泄露 fullgc

目录 堆太大? 堆内存分析工具 MAT JProfiler ZProfiler - 线上的mat - 已进化为Grace EagleEye-MProf - 命令行 jhat jvisual 问题 w使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_hprof太大_CoderBruis的博客-CSDN博客 很简单,把jvm参数调整下,设置小…

vue3---模板引用 nextTick

目录 模板引用--ref 访问模板引用 v-for 中的模板引用 函数模板引用 组件上的 ref 简单理解Vue中的nextTick 示例 二、应用场景 三、nextTick源码浅析 实战 --- vue3实现编辑与查看功能 模板引用--ref 虽然 Vue 的声明性渲染模型为你抽象了大部分对 DOM 的直接操作&…

TOF激光雷达告别“技术路线之争”

交流群 | 进“传感器群/滑板底盘群/汽车基础软件群/域控制器群”请扫描文末二维码&#xff0c;添加九章小助手&#xff0c;务必备注交流群名称 真实姓名 公司 职位&#xff08;不备注无法通过好友验证&#xff09; 编辑 | 苏清涛 两三年前&#xff0c;在提起激光雷达时&…

067:cesium flyto一个具体的实体位置

第067个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置飞行定位功能,飞行到一个实体的区域。viewer.flyTo 函数接受实体、EntityCollection、DataSource、Cesium3DTilset 等。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果…

8.Nginx Rewrite

文章目录 Nginx Rewrite常用Nginx的正则表达式locationlocation大致可以分为三类location常用的匹配规则location优先级location示例说明实际网站使用中&#xff0c;至少有三个匹配规则定义 Rewriterewrite跳转实现rewrite执行顺序如下rewrite示例基于域名的跳转基于客户端IP访…

Git常用命令及基础操作

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Git ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一键三连&#x1f609;有写的不好的地方也欢迎指正&#x…

Linux内核安全技术——磁盘加密技术概述和eCryptfs详解

一、概述 加密是最常见的数据安全保护技术&#xff0c;在数据生命周期各阶段均有应用。从应用场景和技术实现上&#xff0c;按加密对象、用户是否感知、加密算法等维度&#xff0c;有多种分类及对应方案&#xff0c;并在主流操作系统如Windows、Linux、Android中有广泛应用。 本…

【数据湖架构】Azure 数据湖分析(Azure Data Lake Analytics )概述

在本文中&#xff0c;我们将探索 Azure 数据湖分析并使用 U-SQL 查询数据。 Azure 数据湖分析 (ADLA) 简介 Microsoft Azure 平台支持 Hadoop、HDInsight、数据湖等大数据。通常&#xff0c;传统数据仓库存储来自各种数据源的数据&#xff0c;将数据转换为单一格式并进行分析以…

Ae 入门系列之十三:运动跟踪与稳定

运动跟踪&#xff0c;通过跟踪对象的运动&#xff0c;然后将跟踪数据应用到另一个对象&#xff0c;从而可创建图层或效果在其中跟随运动的合成。 稳定运动&#xff0c;同样须先跟踪&#xff0c;之后将跟踪数据反向运用到图层自身&#xff0c;从而达到稳定画面的效果。 跟踪与稳…

web应用常见7大安全漏洞,浅析产生的原因!

今天整理了关于web前端的干货知识&#xff0c;web应用常见的有哪些安全漏洞呢&#xff0c;这些漏洞产生的原因又是什么呢&#xff1f;这些问题你想过吗&#xff1f; 1.SQL 注入 SQL 注入就是通过给 web 应用接口传入一些特殊字符&#xff0c;达到欺骗服务器执行恶意的 SQL 命…

基数排序详解(Radix sort)

本文已收录于专栏 《算法合集》 目录 一、简单释义1、算法概念2、算法目的3、算法思想4、算法由来 二、核心思想三、图形展示1、宏观展示2、微观展示 四、算法实现1、实现思路2、代码实现3、运行结果 五、算法描述1、问题描述2、算法过程3、算法总结 六、算法分析1、时间复杂度…

创新指南|如何优化创新ROI? 亟需从双模创新衡量着手

不确定性和风险是创新投资的常态&#xff0c;这让企业领导者和创新团队面临着一个共同的挑战&#xff1a;如何衡量创新ROI&#xff1f;本文将探讨如何在高风险创新中实现回报&#xff0c;需要采用探索和开发的双模机制。在这个快速变化的市场中&#xff0c;企业创新为了实现可持…

rk3568 SD卡启动

rk3568 SD卡启动 SD卡启动系统&#xff0c;它可以让rk3568在没有硬盘或其他存储设备的情况下启动和运行操作系统。这使得rk3568变得与树梅派一样灵活切换系统&#xff0c;与此同时进行故障排查和修复&#xff0c;而不需要拆卸设备或者使用专业的烧录工具。SD卡启动还可以方便地…

Git 安装并初始化 + 官网下载速度太慢的问题

目录 1. 快速下载 2. 初始化 1. 快速下载 当你兴致勃勃地去官网下载 git 的时候&#xff0c;突然发现&#xff0c;嗯&#xff1f;&#xff1f;下载完成还需 9 个小时&#xff1f; 快速下载地址&#xff0c;请点这里&#xff01; 打开之后是这个样子&#xff1a; 我们可以自…

Rocketmq 一文带你搞懂rocketmq基础

1.集群架构 从上图可以看出来一共有4个部分&#xff0c;分别为Producer,Consumer,NameServer,Broker 1.1 NameServer集群 虽然说NameServer是一个集群&#xff0c;但是每一个NameServer是独立的&#xff0c;不会相互同步数据&#xff0c;因为每个节点都会保存完整的数据&#…

音质好的骨传导蓝牙耳机有哪些,十大公认音质好的骨传导耳机

​骨传导耳机是将声音转化为不同频率的机械振动&#xff0c;通过人的颅骨、骨迷路、内耳淋巴液、螺旋器、听觉中枢来传递声波。由于不需要像入耳式或入耳式耳机一样堵住耳朵来避免听力受损&#xff0c;也不会因为在听音乐的时候塞住耳朵而影响到旁边人的交流&#xff0c;所以骨…

LeetCode_Day5 | 有效的字母异位词、两个数组的交集、快乐数!

LeetCode_哈希表 242.有效的字母异位词1.题目描述2.题解 349.两个数组的交集1.题目描述2.题解 202.快乐数1.题目描述2.题解思路(官方题解啊&#xff01;看了好几遍真难) 算法代码实现复杂度分析 242.有效的字母异位词 1.题目描述 给定两个字符串 s 和 t &#xff0c;编写一个…

滑块验证码------啥?你居然还在手动滑动,你不来试试自动滑动吗

测试网站 测试网站:https://www.geetest.com/demo/slide-float.html 我的giteer:秦老大大 (qin-laoda) - Gitee.com里面有我写的代码 作者备注:由于我个人原因,文章写得感觉太长,后面我会把一个知识分成多部文章,这样可以简单明了的看到了 验证码的思路有两种:一种是通过se…

港科夜闻|香港科大取得重大科研突破,首度利用人工智能为阿尔兹海默症作早期风险预测...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大取得重大科研突破&#xff0c;首度利用人工智能为阿尔兹海默症作早期风险预测。香港科大校长叶玉如教授及香港科大陈雷教授带领的研究团队&#xff0c;最近开发了一套人工智能模型&#xff0c;利用遗传信息&…

WTM框架运行报错0308010C:digital envelope routines::unsupported

WTM框架运行报错0308010C:digital envelope routines::unsupported 错误描述报错原因解决方式 错误描述 我所使用WTM搭建的程序是选择的.net5.0Vue前后端分离的方式&#xff0c;项目结构选择的是“各层分离的多个项目”&#xff1b;本人并非初次使用WTM平台框架搭建项目&#…