ClickHouse安装文档
1.时间同步、ssh免密通信、域名映射、jdk(高可用版本需要安装zookeeper)、取消 SELINUX、关闭防火墙
2.CentOS7 打开文件数限制:
在 /etc/security/limits.conf 这个文件的末尾加入一下内容:
sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
在 /etc/security/limits.d/90-nproc.conf 这个文件的末尾加入一下内容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
重启服务器之后生效,用 ulimit -n 或者 ulimit -a 查看设置结果
ulimit -n
ulimit -a
3.单机模式安装
3.1准备操作
需要验证当前服务器的 CPU 是否支持 SSE 4.2 指令集,因为向量化执行需要用到这项特性:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
3.2yum安装
yum install yum-utils -y
rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo yum install clickhouse-server clickhouse-client -y
3.3离线安装(官网选择安装包https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/)
rpm -ivh clickhouse-server-20.5.4.40-2.noarch.rpm
rpm -ivh clickhouse-common-static-20.5.4.40-2.x86_64.rpm
rpm -ivh clickhouse-client-20.5.4.40-2.noarch.rpm
3.4修改用户名密码
clickhouse的密码有2种形式,一种是明文,一种是写sha256sum的Hash值
官方不建议直接写明文密码,可以用以下命令生成密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD";
echo -n "$PASSWORD" | sha256sum | tr -d '-'
这样可以得到两行数据,第一行是密码明文,第二行是密码密文
vim users.xml,找到 users --> default --> 标签下的password修改成password_sha256_hex,并把密文填进去
<password_sha256_hex>密码密文</password_sha256_hex>
添加密码后,命令行启动的方式也要加上密码
sudo clickhouse-client -h ip地址 -d default -m -u default --password 密码明文
3.5验证安装是否成功
sudo systemctl start clickhouse-server
sudo systemctl status clickhouse-server
ps -aux | grep clickhouse
netstat -nltp | grep clickhouse
sudo clickhouse-client -h ip地址 -d default -m -u default --password 密码明文
3.6安装成功的核心目录
(1)/etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml 等。
(2)/var/lib/clickhouse:默认数据存储目录,通常会修改默认路径配置,将数据保存到大容量磁盘挂 载路径
(3)/var/log/clickhouse-server:默认日志保存目录,通常会修改路径配置将日志保存到大容量磁盘 挂载的路径
4.集群模式安装
192.168.1.252 | cdh1 |
---|---|
192.168.1.253 | cdh2 |
192.168.1.254 | cdh3 |
4.1 在三台机器上重复执行#3操作,且验证是否安装成功
4.2 三台机器修改配置文件/etc/clickhouse-server/config.xml
vim /etc/clickhouse-server/config.xml
#先修改 tcp_port 为 6000, 因为这个端口和 HDFS 的冲突了
<tcp_port>6000</tcp_port>
#listen_host 表示能监听的主机,:: 表示任意主机都可以访问
<listen_host>::</listen_host>
4.3 添加集群配置(在三台机器的etc目录下新建metrika.xml文件)
Tips:注释非常重要,涉及到的其他文件的配置要去查看是否应用,不然查不到
#在三台机器的etc目录下新建metrika.xml文件
<yandex>
<!-- /etc/clickhouse-server/config.xml 中配置的remote_servers的incl属性值,<remote_servers incl="clickhouse_remote_servers"> -->
<clickhouse_remote_servers>
<!-- 3分片2备份 -->
<perftest_3shards_2replicas>
<!-- 数据分片1 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<!-- 和下边的<mecros>对应 -->
<host>cdh1</host>
<!-- 和 /etc/clickhouse-server/config.xml 中的 <tcp_port>6000</tcp_port>对应 -->
<port>6000</port>
<user>default</user>
<!-- 和 /etc/clickhouse-server/config.xml 中的 <<password>对应 -->
<password>clickhouse@123</password>
</replica>
</shard>
<!-- 数据分片2 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>cdh2</host>
<port>6000</port>
<user>default</user>
<password>clickhouse@123</password>
</replica>
</shard>
<!-- 数据分片3 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>cdh3</host>
<port>6000</port>
<user>default</user>
<password>clickhouse@123</password>
</replica>
</shard>
</perftest_3shards_2replicas>
</clickhouse_remote_servers>
<!--zookeeper相关配置-->
<!-- /etc/clickhouse-server/config.xml 中配置的zookeeper的incl属性值,<zookeeper incl="zookeeper-servers" optional="true" /> -->
<zookeeper-servers>
<node index="1">
<host>cdh1</host>
<port>2181</port>
</node>
<node index="2">
<host>cdh2</host>
<port>2181</port>
</node>
<node index="3">
<host>cdh3</host>
<port>2181</port>
</node>
</zookeeper-servers>
<!-- replica代表每个节点在集群中的id不能够重复 -->
<macros>
<replica>cdh1</replica>
</macros>
<!-- ::/0代表所有网络都可以访问 -->
<networks>
<ip>::/0</ip>
</networks>
<clickhouse_compression>
<case>
<min_part_size>10000000000</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</clickhouse_compression>
</yandex>
4.4 重启所有节点的clinkhouse服务
sudo systemctl restart clickhouse-server
sudo systemctl status clickhouse-server
4.5 查看集群是否配置成功
sudo clickhouse-client --port 6000
select * from system.clusters