CentOS8 安装 ClickHouse 集群 您所在的位置:网站首页 centos离线安装clickhouse CentOS8 安装 ClickHouse 集群

CentOS8 安装 ClickHouse 集群

2024-01-29 22:18| 来源: 网络整理| 查看: 265

一、ClickHouse介绍

1.什么是 ClickHouse ClickHouse 是俄罗斯的 Yandex 于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Managemment Sytem),简称CK,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。 ClickHouse 是一个完全的列式数据库管理系统。ClickHouse 的全称是 Click Stream,Data WareHous,简称 ClickHouse。允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重启服务器,支持线性扩展,简单方便,高可靠性,容错。它的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持 shard 分片+replication 副本这种解决方案。它还提供了一些 SQL 直接接口,有比较丰富的原生 client。

2.什么是 OLAP 联机分析处理 OLAP 是一种软件技术,它使分析人员能够迅速、一致、交互的从各个方面观察信息,以达到深入理解数据的目的。它具有 FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。其中F是快速性(Fast),指系统能在数秒内对用户的多数分析要求做出反应;A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户所希望的方式给出报告;M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;I是信息性(Information),指能及时获得信息,并且管理大容量信息。

二、ClickHouse 的优缺点

ClickHouse 的优点:

为了高效的使用CPU,数据不仅仅按列存储,同时还按向量进行处理。数据压缩空间大,减少IO,处理单查询高吞吐量每台服务器每秒最多数十亿行。索引非B树结构,不需要满足最左原则,只要过滤条件在索引列中包含即可,即使在使用的数据不在索引中,由于各种并行处理机制 ClickHouse 全表扫描的速度也很快。写入速度非常快,50-200M/S,对于大量的数据更新非常使用。

ClickHouse 的缺点:

不支持事务,不支持真正的删除/更新。不支持高并发,官方建议 qps 为100,可以通过修改配置文件增加连接数,但是要在服务器足够好的情况下。不支持二级索引。有限的 SQL 支持,join 实现与众不同。不支持窗口功能。元数据管理需要人工干预维护。SQL 满足日常使用80%以上的语法,join 写法比较特殊,最新版已支持类似 SQL 的 join,但性能不好。 三、ClickHouse 引擎

ClickHouse 的建库语句:

CREATE DATABASE IF NOT EXISTS db_name [ENGINE = engine]

数据库引擎主要分为5种:

Ordinary:默认引擎,使用时无需在建库时刻意声明,在此数据库下的表可以使用任意的类型的表引擎。Dictionary:字典引擎,此类数据库会自动为所有数据字典创建它们的数据表(加载配置文件中配置的字段表信息和数据)Memory:内存引擎,用户存放临时数据,数据只会在内存中,不会涉及任何磁盘操作,当服务重启后数据会清空。MySQL:MySQL引擎,会自动拉取远端 MySQL 中的数据,并在该库下创建 MySQL表引擎的数据表。Lazy:日志引擎,在该数据库下只能创建 log 系列引擎的表。 四、单节点安装 ClickHouse

1.准备环境 ClickHouse 是通过向量化执行引擎来加速查询,向量化执行可以简单的看作一项消除程序中循环的优化,为了实现向量化需要利用 CPU 的 SIMD(Single Instruction Multiple Data)指令,通过单条指令可以实现操作多条数据。在现代计算机中是通过数据并行来提高性能,其原理就是在 CPU 寄存器层面实现数据的并行操作。ClickHouse 目前通过 SSE 4.2指令集实现向量化执行的。因此首先需要保证系统是支持 SSE 4.2指令集,可以执行如下命令检查是否支持 SSE 4.2,如果返回 SSE 4.2 supported 表示支持,则可以继续下面的安装。同时终端必须使用 UTF-8 编码。

grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

同时最好再调整一下CentOS系统对打开文件数的限制,在/etc/security/limits.conf文件的末尾加入以下内容。

* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072

修改完之后,重新连接SSH工具,再次登录执行命令查看,输出的值是上面设置的则表示已生效。

ulimit -n

2.yum方式安装 使用如下命令安装,如果需要安装最新版,则把 stable 替换为 testing。

yum -y install yum-utils rpm --import https://repo.yandex.ru/clickhouse/CLICKHOUSE-KEY.GPG yum-config-manager --add-repo https://repo.yandex.ru/clickhouse/rpm/stable/x86_64 yum -y install clickhouse-server clickhouse-client

3.目录结构

/etc/clickhouse-server:服务端的配置文件目录,包括全局配置 config.xml 和用户配置 users.xml/var/lib/clickhouse/:默认的数据存储目录,如果是生产环境可以将其修改到空间较大的磁盘挂载路径。可以用过修改 /etc/clickhouse-server/config.xml 配置文件中< path > 、< tmp_path > 和 < user_files_path> 标签值来设置。/var/log/clickhouse-server/:默认的日志保存目录。同样可以通过修改 /etc/clickhouse-server/config.xml 配置文件中的 < log > 和 < errorlog >标签值来设置。/etc/cron.d/clickhouse-server:clickhouse server 的一个定时配置,用于恢复因异常中断的 ClickHouse 服务进程。~/.clickhouse-client-history:client 执行的 sql 历史记录。

4.服务的启动和停止

# 启动 # 可以在/varlog/clickhouse-server/目录中查看日志 systemctl start clickhouse-server # 或者基于指定的配置文件启动服务,使用此命令时注意权限。 clickhouse-server --config-file=/etc/clickhouse-server/my_config.xml # 查看状态 systemctl status clickhouse-server #重启 systemctl restart clickhouse-server #关闭 systemctl stop clickhouse-server

5.进入命令行模式验证

# --database / -d 登录的数据库 # --help 查看帮助信息 # --host / -h 服务端地址,默认是localhost,如果修改config.xml中的listen_host值后可以使用此参数指定访问的ip # --multiline / -m 支持SQL多行语句,而不是回车就执行 # --multiquery / -n 允许一次执行多条SQL语句 # --password 登录的密码,默认为空 # --port 服务端的TCP端口,默认为9000 # --query / -q 指定SQL语句 # --time / -t 打印每条SQL的执行时间 # --user / -u 登录的用户名,默认为default # --version / -V 查看版本信息 # 进入数据库命令行 clickhouse-client # 执行一个简单的SQL,可以正常解析并执行。 localhost :) SELECT 1; SELECT 1 Query id: 9c15664b-9182-4bf9-81df-0d3c7284f1e9 ┌─1─┐ │ 1 │ └───┘ 1 rows in set. Elapsed: 0.031 sec. # 退出 localhost :) q; Bye. 五、搭建 ClickHouse 集群

1.安装前准备 系统:CentOS 8.2 IP:10.0.0.60 主机名:ch1 IP:10.0.0.61 主机名:ch2 IP:10.0.0.62 主机名:ch3 准备三台服务器,在三台服务器中安装部署 ClickHouse,关闭防火墙和SELINUX或者开放端口。集群的方式需要依赖 ZooKeeper 服务,因此先要保证 ZooKeeper 服务正常启动,剩余的安装方式和单节点差不多,只不过需要添加一个集群形式的配置文件。 1.1下载zookeeper:

官网地址:https://zookeeper.apache.org/releases.html

1.2创建zookeeper存放目录并上传解压

tar zxf apache-zookeeper-3.7.0-bin.tar.gz mv apache-zookeeper-3.7.0-bin.tar.gz /opt/zookeeper mkdir -p /opt/zookeeper/data

1.3修改zookeeper配置信息

cd /opt/zookeeper/conf cp zoo_sample.cfg zoo.cfg # 修改dataDair路径,根据自己主机IP,增加或更换server.1 2 3的IP。 vim zoo.cfg dataDir=/opt/zookeeper/data server.1=10.0.0.60:2888:3888 server.2=10.0.0.61:2888:3888 server.3=10.0.0.62:2888:3888

1.4在每台主机配置节点ID

# 10.0.0.60执行 echo 1 >/root/zookeeper/data/myid # 10.0.0.61执行 echo 2 >/root/zookeeper/data/myid # 10.0.0.62执行 echo 3 >/root/zookeeper/data/myid

1.5启动zookeeper

# 启动 cd ../bin/ ./zkServer.sh start # 查看状态 ./zkServer.sh status # 停止 ./zkServer.sh stop # 重启 ./zkServer.sh restart # 验证 ps -ef|grep zookeeper # 或者成功后可以随便选择一台节点尝试连接另一节点验证 ./zkCli.sh -server 10.0.0.61:2181 # 成功后显示 [zk: 192.168.30.101(CONNECTING) 0]

在这里插入图片描述 注:启动zookeeper需要有jdk环境。

2.开放ClickHouse服务的IP和端口 因为集群之间需要互相访问其他节点服务,需要开放clickhouse服务的IP和端口,在三台主机配置/etc/clickhouse-server/config.xml文件, 取消< listen_host >标签注释。 在这里插入图片描述 3.配置zookeeper字段

10.0.0.60 2181 10.0.0.61 2181 10.0.0.62 2181

4.配置remote_server字段 删除原本的test内容,添加:

1 true 10.0.0.60 9000 10.0.0.61 9000 1 true 10.0.0.61 9100 10.0.0.62 9000 1 true 10.0.0.62 9100 10.0.0.60 9100

5.重启clickhouse,查看集群是否创建成功

systemctl restart clickhouse.server clickhouse-client SELECT * FROM system.clusters

https://www.jb51.net/article/275316.htm



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有