1、停止服务
systemctl stop clickhouse-server.service

2、添加配置文件
2.1、修改配置文件 
vim /etc/clickhouse-server/config.xml

<yandex>
<remote_servers>
     <perftest_3shards_1replicas>
        <shard>
            <weight>1</weight>
            <internal_replication>true</internal_replication>
            <replica>
                <host>192.168.200.160</host>
                <port>9000</port>
                <user>default</user>
                <password>BOWrM6eD</password>
            </replica>
        </shard>
        <shard>
            <weight>2</weight>
            <internal_replication>true</internal_replication>
            <replica>
                <host>192.168.200.158</host>
                <port>9000</port>
                <user>default</user>
                <password>BOWrM6eD</password>
            </replica>
        </shard>
        <shard>
            <internal_replication>true</internal_replication>
            <replica>
                <host>192.168.200.159</host>
                <port>9000</port>
                <user>default</user>
                <password>BOWrM6eD</password>
            </replica>
        </shard>
     </perftest_3shards_1replicas>
  </remote_servers>
   <zookeeper>
        <node>
            <host>192.168.8.211</host>
            <port>2180</port>
        </node>
        <node>
            <host>192.168.8.211</host>
            <port>2181</port>
        </node>
        <node>
            <host>192.168.8.211</host>
            <port>2182</port>
        </node>
    </zookeeper>
    <macros>
        <layer>01</layer>
        <shard>01</shard>
        <replica>example01-01-1</replica>
    </macros>
    <!-- 监听网络 -->
    <networks>
       <ip>::/0</ip>
    </networks>

    <!-- 数据压缩算法  -->
    <compression>
        <case>
          <min_part_size>10000000000</min_part_size>
          <min_part_size_ratio>0.01</min_part_size_ratio>
          <method>lz4</method>
        </case>
    </compression>
</yandex>

3、拷贝配置到其他2个服务上
scp /etc/clickhouse-server/config.xml root@192.168.200.158:/etc/clickhouse-server/
scp /etc/clickhouse-server/config.xml root@192.168.200.159:/etc/clickhouse-server/
3.1、修改配置 /etc/clickhouse-server/config.xml,在没有机器上修改一下   <shard>01</shard>
修改为 01、02、03;replica修改为 example01-01-1、example01-02-1、example01-03-1
    <macros>
        <layer>01</layer>
        <shard>01</shard>
        <replica>example01-01-1</replica>
    </macros>
4、重新启动服务
systemctl restart clickhouse-server.service
systemctl stop clickhouse-server.service
systemctl start clickhouse-server.service
systemctl status clickhouse-server.service
4.1、如果启动失败,执行以下命令,会打印错误

clickhouse-server --config-file=/etc/clickhouse-server/config.xml
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml

5、相关文件
chown -R clickhouse:clickhouse /var/log/clickhouse-server/
cat /var/log/clickhouse-server/clickhouse-server.err.log
cat /var/log/clickhouse-server/clickhouse-server.log

数据目录
/var/lib/clickhouse/data
元数据文件
/var/lib/clickhouse/metadata/

6、创建分布式表
6.1、链接服务
clickhouse-client -h 127.0.0.1 -d default -m -u default --password BOWrM6eD

6.2、创建数据库
CREATE DATABASE dm ENGINE = Ordinary;
6.3、分别在各个机器上创建本地表
CREATE TABLE dm.jh_car_num on CLUSTER perftest_3shards_1replicas
(
    `id` Int64 COMMENT '主键',
    `PlateNo` String COMMENT '车牌号',
    `PlateColor` String COMMENT '号牌颜色',
    `SpottingName` String COMMENT '路口名称',
    `PassingTime` DateTime COMMENT '过车时间',
    `createTime` DateTime COMMENT '创建时间',
    `SpottingNo` String COMMENT '路口编号',
    `AssetsNo` String COMMENT '设备编号',
    `AssetsName` String COMMENT '设备名称',
    `Flag` String COMMENT '华为:H,海信:K'
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/jh_car_num', '{replica}')
PRIMARY KEY id
ORDER BY (id, createTime, PassingTime);

6.3、创建分布式表
CREATE TABLE dm.jh_car_num_all 
(
    `id` Int64 COMMENT '主键',
    `PlateNo` String COMMENT '车牌号',
    `PlateColor` String COMMENT '号牌颜色',
    `SpottingName` String COMMENT '路口名称',
    `PassingTime` DateTime COMMENT '过车时间',
    `createTime` DateTime COMMENT '创建时间',
    `SpottingNo` String COMMENT '路口编号',
    `AssetsNo` String COMMENT '设备编号',
    `AssetsName` String COMMENT '设备名称',
    `Flag` String COMMENT '华为:H,海信:K'
)
ENGINE = Distributed('perftest_3shards_1replicas', 'dm', 'jh_car_num', rand());

相关查询语句
select * from dm.jh_car_num;
select * from dm.jh_car_num_all;
select count(*) from dm.jh_car_num_all;

清楚表所有数据
drop table dm.jh_car_num;
drop table dm.jh_car_num_all;

插入测试数据
 INSERT INTO dm.jh_car_num(id, PlateNo, PlateColor, SpottingName, PassingTime, createTime, SpottingNo, AssetsNo, AssetsName, Flag) VALUES(1364095318625386436, '豫A0650B', '白', '丰产路', toDateTime('2021-02-23 14:10:37.000'), toDateTime('2021-02-23 14:10:37.000'), '', '设备编号9346', '设备名称9346', 'H');

最后修改于 2021-03-09 10:22:17
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇