1 准备
1.1 机器
- 192.168.90.41 16G 4C
- 192.168.90.42 16G 4C
1.2 检查cpu指令集
官方预构建的二进制文件通常针对x86_64进行编译,并利用
SSE 4.2
指令集。
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
要在不支持SSE 4.2
或AArch64
,PowerPC64LE
架构的处理器上运行ClickHouse,您应该通过适当的配置调整从源代码构建ClickHouse
1.3 关闭防火墙
sudo systemctl status firewalld.service #查看防火墙状态
sudo systemctl stop firewalld.service #关闭防火墙
sudo systemctl disable firewalld.service #永久关闭防火墙
1.4 设置时钟同步
## 安装
sudo yum install -y ntp
## 启动定时任务
crontab -e
## 输入界面键入
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
1.5 安装JDK
下载 jdk-8u281-linux-x64.tar.gz
vim ~/.bash_profile
export JAVA_HOME=/opt/jdk_1.8/jdk1.8.0_281
export PATH=:$JAVA_HOME/bin:$PATH
source ~/.bash_profile
1.6 安装zookeeper
不说了。。。
2 rpm包安装
2.1 添加依赖和储库
// 依赖
sudo yum install -y unixODBC libicudata
sudo yum install -y libxml2-devel expat-devel libicu-devel
// 储库
sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
2.2 安装
安装后默认会创建一个clickhoue用户
sudo yum install clickhouse-server clickhouse-client
cd /etc/clickhouse-server
ll
config.d config.xml users.d users.xml
2.3 修改配置文件
- zk配置
在服务器的/etc/clickhouse-server/config.d目录下创建一个名为metrika.xml的配置文件
<?xml version="1.0"?>
<yandex>
<!—ZooKeeper配置,名称自定义,一般就用这个名字就好 -->
<zookeeper-servers>
<node index="1">
<!—节点配置,可以配置多个地址-->
<host>127.0.0.1</host>
<port>2181</port>
</node>
</zookeeper-servers>
</yandex>
接着,在全局配置config.xml中使用<include_from>标签导入刚才定义的配置:
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
并引用ZooKeeper配置的定义 ,incl与metrika.xml配置文件内的节点名称要彼此对应
<zookeeper incl="zookeeper-servers" optional="false" />
- 配置日志和数据路径到较大的空间的目录
sudo mkdir -p /clickhouse/data sudo mkdir -p /clickhouse/logsudo chown -R clickhouse:clickhouse /clickhousesudo vim /etc/clickhouse-server/config.xml
<path>/clickhouse/data</path><tmp_path>/clickhouse/data/tmp/</tmp_path><log>/clickhouse/log/clickhouse-server.log</log><errorlog>/clickhouse/log/clickhouse-server.err.log</errorlog>
- 配置集群
<!--1个分片、1个副本 -->
<yandex>
<!-- 之前的zk配置 --> <!-- 自定义集群名称 --> <clickhouse_remote_servers>
<cluster1>
<!-- 分片 -->
<shard>
<replica>
<!-- 副本 -->
<host>ck1</host>
<port>9000</port>
</replica>
<replica>
<host>ck2</host>
<port>9000</port>
</replica>
</shard>
</cluster1>
</clickhouse_remote_servers>
</yandex>
接着,在全局配置config.xml中使用<include_from>标签导入刚才定义的配置:
<remote_servers incl="clickhouse_remote_servers" ></remote_servers>
- 启动
#服务端
sudo systemctl start clickhouse-serversudo
systemctl status clickhouse-server
sudo systemctl stop clickhouse-server
#若失败查看日志
sudo journalctl -f
#客户端
CREATE TABLE test_1 ON CLUSTER cluster1(
id String,price Float64,create_time DateTime
) ENGINE=ReplicatedMergeTree('/clickhouse/tables/01/test_1','ck1') PARTITION BY toYYYYMM(create_time)ORDER BY id