Clickhouse集群搭建

clickhouse官网,也会有集群搭建的内容

搭建前的准备

配置好防火墙以及搭建好zookeeper,这里就不做搭建,可自行查找攻略
首先取消打开文件数限制,然后重启不然不生效

[root@node02 ~]#  vim /etc/security/limits.conf
* soft nofile 65536 
* hard nofile 65536 
* soft nproc 131072 
* hard nproc 131072

安装依赖,rpm离线安装需要此依赖

[root@node02 ~]#  yum install -y libtool
[root@node02 ~]#  yum install -y *unixODBC*

备注 : 我这里用的root用户,生产环境可不是root用户哦


yum安装

# yum 安装 server 以及 client
 yum install -y clickhouse-server clickhouse-client
# 查看是否安装完成
 yum list installed 'clickhouse*'
[root@node02 ~]#  yum list installed 'clickhouse*'
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * epel: d2lzkl7pfhq30w.cloudfront.net
 * extras: mirrors.cn99.com
 * updates: mirrors.163.com
已安装的软件包
clickhouse-client.x86_64                       20.8.3.18-1.el7                @Altinity_clickhouse
clickhouse-common-static.x86_64                20.8.3.18-1.el7                @Altinity_clickhouse
clickhouse-server.x86_64                       20.8.3.18-1.el7                @Altinity_clickhouse
clickhouse-server-common.x86_64                20.8.3.18-1.el7                @Altinity_clickhous
# 通过 clickhouse service 来启动,停止,clickhouse
service clickhouse-server start | stop | status | restart | ...
[root@node02 ~]# service clickhouse-server start
Start clickhouse-server service: Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
DONE
# 进入client
clickhouse-client
[root@node02 ~]# clickhouse-client 
ClickHouse client version 20.8.3.18.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.8.3 revision 54438.

到这里yum模式的就安装完成了,当然只是一个单节点,后面会说集群的搭建

集群搭建

集群搭建和单节点是差不多的,就是编写配置文件就可,首先在其他节点上安装好clickhouse,然后执行下面的步骤

# 1. 修改config.xml配置文件
vim /etc/clickhouse-server/config.xml
[root@node02 ~]# vim /etc/clickhouse-server/config.xml
# 进入编辑后  /<listen_host> 回车,找到这个位置,这个配置是用于,允许IP4和IP6源主机远程访问
     <listen_host>::</listen_host>
    <!-- Same for hosts with disabled ipv6: -->
    <!-- <listen_host>0.0.0.0</listen_host> -->
# 将注释的内容给打开即可, 注意每台节点都要更改
# 然后进入到/etc目录下创建metrika.xml文件即可
[root@node02 etc]# vim metrika.xml

vim metrika.xml内容,我这里是四台节点,配置文件是这样的,以后的文章中会记录clickhouse的一些调优内容

<yandex>
# 集群配置
<clickhouse_remote_servers>
    <perftest_4shards_1replicas>
        <shard>
             <internal_replication>true</internal_replication>
            <replica>
                <host>node01</host>
                <port>9000</port>
            </replica>
        </shard>
        <shard>
            <replica>
                <internal_replication>true</internal_replication>
                <host>node02</host>
                <port>9000</port>
            </replica>
        </shard>
        <shard>
            <internal_replication>true</internal_replication>
            <replica>
                <host>node03</host>
                <port>9000</port>
            </replica>
        </shard>
        <shard>
             <internal_replication>true</internal_replication>
            <replica>
                <host>node04</host>
                <port>9000</port>
            </replica>
        </shard>
    </perftest_4shards_1replicas>   
</clickhouse_remote_servers>
# zk配置
<zookeeper-servers>
  <node index="1">
    <host>node01</host>
    <port>2181</port>
  </node>
  <node index="2">
    <host>node02</host>
    <port>2181</port>
  </node>
  <node index="3">
    <host>node03</host>
    <port>2181</port>
  </node> 
  <node index="4">
    <host>node04</host>
    <port>2181</port>
  </node>
</zookeeper-servers>
# 这个位置需要根据不同的节点来更改
<macros>
    <replica>node02</replica>
</macros>
<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>

然后将metrika.xml文件分发到其他的节点,然后停止之前启动clickhouse,然后每台节点启动服务,对没看错,不需要在做什么事情了,他会自动读取这个文件,启动就行了

# 每台节点启动完成了查看是否启动
[root@node02 etc]# ps -aux | grep clickhouse-server
clickho+ 244604  0.4  1.1 1971184 368656 ?      Ssl  18:57   0:09 clickhouse-server --daemon --pid-file=/var/run/clickhouse-server/clickhouse-server.pid --config-file=/etc/clickhouse-server/config.xml
root     248725  0.0  0.0 112824   980 pts/0    S+   19:36   0:00 grep --color=auto clickhouse-server
# 如过启动失败可以去查看log ,log位置
[root@node02 clickhouse-server]# pwd
/var/log/clickhouse-server
[root@node02 clickhouse-server]# ll
总用量 864
-rw-r-----. 1 clickhouse clickhouse 154597 11月 25 18:17 clickhouse-server.err.log
-rw-r-----. 1 clickhouse clickhouse 720270 11月 25 19:37 clickhouse-server.log
-rw-r-----. 1 clickhouse clickhouse   5395 11月 25 18:57 stderr.log
-rw-r-----. 1 clickhouse clickhouse      0 11月 25 18:14 stdout.log
# 启动完成后我们进入client ,说明成功了
[root@node02 clickhouse-server]# clickhouse-client 
ClickHouse client version 20.8.3.18.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.8.3 revision 54438.
node02 :) 
# 查看集群信息,可以看到以下信息 
# perftest_4shards_1replicas这个是我们在metrika.xml配置文件中配置的
node02 :) select * from system.clusters;

SELECT *
FROM system.clusters

┌─cluster───────────────────────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─estimated_recovery_time─┐
│ perftest_4shards_1replicas        │         1 │            1 │           1 │ node01    │ 192.168.2.217 │ 9000 │        0 │ default │                  │            0 │                       0 │
│ perftest_4shards_1replicas        │         2 │            1 │           1 │ node02    │ 192.168.2.202 │ 9000 │        1 │ default │                  │            0 │                       0 │
│ perftest_4shards_1replicas        │         3 │            1 │           1 │ node03    │ 192.168.2.203 │ 9000 │        0 │ default │                  │            0 │                       0 │
│ perftest_4shards_1replicas        │         4 │            1 │           1 │ node04    │ 192.168.2.218 │ 9000 │        0 │ default │                  │            0 │                       0 │
│ test_cluster_two_shards           │         1 │            1 │           1 │ 127.0.0.1 │ 127.0.0.1     │ 9000 │        1 │ default │                  │            0 │                       0 │
│ test_cluster_two_shards           │         2 │            1 │           1 │ 127.0.0.2 │ 127.0.0.2     │ 9000 │        0 │ default │                  │            0 │                       0 │
│ test_cluster_two_shards_localhost │         1 │            1 │           1 │ localhost │ 127.0.0.1     │ 9000 │        1 │ default │                  │            0 │                       0 │
│ test_cluster_two_shards_localhost │         2 │            1 │           1 │ localhost │ 127.0.0.1     │ 9000 │        1 │ default │                  │            0 │                       0 │
│ test_shard_localhost              │         1 │            1 │           1 │ localhost │ 127.0.0.1     │ 9000 │        1 │ default │                  │            0 │                       0 │
│ test_shard_localhost_secure       │         1 │            1 │           1 │ localhost │ 127.0.0.1     │ 9440 │        0 │ default │                  │            0 │                       0 │
│ test_unavailable_shard            │         1 │            1 │           1 │ localhost │ 127.0.0.1     │ 9000 │        1 │ default │                  │            0 │                       0 │
│ test_unavailable_shard            │         2 │            1 │           1 │ localhost │ 127.0.0.1     │    1 │        0 │ default │                  │            0 │                       0 │
└───────────────────────────────────┴───────────┴──────────────┴─────────────┴───────────┴───────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────────────┘

到这里我们的clickhouse集群就搭建成功了,后面还会做一些优化,现在的这个只适用于测试

rpm方式安装可以参考这篇文章https://blog.csdn.net/gulugulu_gulu/article/details/105769647

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容