Launch the Service
参考资料;
首先检查CPU是否支持ClickHouse(感觉没必要cuiyaonan2000@163.com)
ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。
检查当前CPU是否支持SSE 4.2的命令:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm
包。
- sudo yum install -y yum-utils
- sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
- sudo yum install -y clickhouse-server clickhouse-client
-
如上的安装需要联网,同时也可以手动下载去安装:https://packages.clickhouse.com/rpm/stable/
无论是在线安装还是手动下载我们需要安装如下的2个服务:
clickhouse-server
clickhouse-client
安装完毕后就可以启动了
- sudo /etc/init.d/clickhouse-server start
- clickhouse-client # or "clickhouse-client --password" if you set up a password.
安装的clickhouse-server 的相关配置文件信息路径在如下的位置;
如上2个配置文件(clickhouser-server start 默认加载本地的./config.xml 也可以使用启动参数--config-file指定配置文件):
连接clickhouser-server的方式有多种这里使用自带的clickhouse-client
使用如下命令:
- #默认连接本地服务 也可以使用--host 指定ip的服务cuiyaonan2000@163.com
- clickhouse-client
看到笑脸 输入select 1
ClickHouse集群是一个同质集群。 设置步骤:
- 在群集的所有机器上安装ClickHouse服务端
- 在配置文件中设置集群配置
- 在每个实例上创建本地表
- 创建一个分布式表
分布式表实际上是一种
view
,映射到ClickHouse集群的本地表。 从分布式表中执行SELECT查询会使用集群所有分片的资源。 您可以为多个集群指定configs,并创建多个分布式表,为不同的集群提供视图
如官网所说,感觉太不智能了^_^,
除了如上的步骤,在本地每个clickhouse-server中创建本地表后,就需要编辑配置文件了,配置文件才是起到决定性的作用cuiyaonan2000@163.com
在安装成功的config.xml中有详细的 分片数以及副本数的多种配置的用例如下图所示,按需修改就可以了cuiyaonan2000@163.com
- <remote_servers>
-
-
- <test_shard_localhost>
-
- <shard>
-
- <replica>
- <host>localhosthost>
- <port>9000port>
- replica>
- shard>
- test_shard_localhost>
-
-
-
-
- <test_cluster_one_shard_three_replicas_localhost>
- <shard>
- <internal_replication>falseinternal_replication>
- <replica>
- <host>127.0.0.1host>
- <port>9000port>
- replica>
- <replica>
- <host>127.0.0.2host>
- <port>9000port>
- replica>
- <replica>
- <host>127.0.0.3host>
- <port>9000port>
- replica>
- shard>
- test_cluster_one_shard_three_replicas_localhost>
-
-
-
-
- <test_cluster_two_shards_localhost>
- <shard>
- <replica>
- <host>localhosthost>
- <port>9000port>
- replica>
- shard>
- <shard>
- <replica>
- <host>localhosthost>
- <port>9000port>
- replica>
- shard>
- test_cluster_two_shards_localhost>
-
-
- remote_servers>
其中一些属性的说明:
internal_replication(true表示是复制表,false表示非复制表)
复制表有个特性就是,会自动同步. 那同一个分片的多个部分,且不是复制表就需要设置成false来进行同步数据.且这种方式不具有原子性,复制表具有原子性.
因为有副本,理所当然的就会有管理副本同步信息的工具.因此引入了zookeeper(同理也在config.xml中)
- <zookeeper>
- <node>
- <host>zoo01.yandex.ruhost>
- <port>2181port>
- node>
- <node>
- <host>zoo02.yandex.ruhost>
- <port>2181port>
- node>
- <node>
- <host>zoo03.yandex.ruhost>
- <port>2181port>
- node>
- zookeeper>
如下的
路径配置,将数据保存到大容量磁盘挂载的路径)
如果要让远程连接,则把如下的内容从 放开,否则无法远程连接
<listen_host>::listen_host>
这里主要是用来设置账号权限,以及远程连接的相关配置信息.具体参考官网
请用心理解user.xml才能理解里面的配置信息,全文如下所示
- <clickhouse>
-
-
-
- <profiles>
-
- <default>
- default>
-
-
- <readonly>
- <readonly>1readonly>
- readonly>
- profiles>
-
-
- <users>
-
- <default>
-
- <password>password>
-
-
- <networks>
- <ip>::/0ip>
- networks>
-
-
- <profile>defaultprofile>
-
-
- <quota>defaultquota>
-
-
-
- default>
- users>
-
-
- <quotas>
-
- <default>
-
- <interval>
-
- <duration>3600duration>
-
-
- <queries>0queries>
- <errors>0errors>
- <result_rows>0result_rows>
- <read_rows>0read_rows>
- <execution_time>0execution_time>
- interval>
- default>
- quotas>
- clickhouse>