首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建副本表代码: 253,异常:复制/clickhouse/ table /[.]已经存在( 21.8.10.19版本的Docker

问无法创建副本表代码: 253,异常:复制/clickhouse/ table /[.]已经存在( 21.8.10.19版本的Docker
EN

Stack Overflow用户
提问于 2021-12-09 11:05:03
回答 1查看 886关注 0票数 0

我正在尝试使用docker设置一个带有1个碎片和2个副本的ClickHouse集群。为了测试目的,我在一个容器中只有一个动物园管理员,两个ClickHouse容器。创建非复制表是可能的,但不可能使用复制表。

当我创建一个复制表时

代码语言:javascript
复制
CREATE TABLE company_db.g ON CLUSTER company_cluster
(
    `payload` String
)
ENGINE = ReplicatedMergeTree
ORDER BY payload

ClickHouse返回

代码语言:javascript
复制
┌─host────────┬─port─┬─status─┬─error───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─num_hosts_remaining─┬─num_hosts_active─┐
│ clickhouse0 │ 9000 │    253 │ Code: 253, e.displayText() = DB::Exception: Replica /clickhouse/tables/0/company_db/g/replicas/clickhouse1 already exists (version 21.8.10.19 (official build)) │                   1 │                1 │
└─────────────┴──────┴────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────┴──────────────────┘
┌─host────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
│ clickhouse1 │ 9000 │      0 │       │                   0 │                0 │
└─────────────┴──────┴────────┴───────┴─────────────────────┴──────────────────┘
↓ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.)  0%
2 rows in set. Elapsed: 0.170 sec. 

Received exception from server (version 21.8.10):
Code: 253. DB::Exception: Received from localhost:9000. DB::Exception: There was an error on [clickhouse0:9000]: Code: 253, e.displayText() = DB::Exception: Replica /clickhouse/tables/0/company_db/g/replicas/clickhouse1 already exists (version 21.8.10.19 (official build)).

docker-compose.yaml

代码语言:javascript
复制
version: '3.5'

services:

  zookeeper0:
    image: zookeeper
    container_name: zookeeper0
    hostname: zookeeper0
    ports:
      - 2181
    networks:
      clickhouse-network:

  clickhouse0:
    image: yandex/clickhouse-server
    container_name: clickhouse0
    hostname: clickhouse0
    build:
      context: .
      dockerfile: clickhouse.dockerfile
      args:
        shard: 0
        replica: 0
    ports: &ch_ports
      - 8123
      - 9000
      - 9009
      - 9100
    networks:
      clickhouse-network:

    volumes:
      - ${PWD}/clickhouse0:/var/lib/clickhouse
    depends_on:  &ch_dependancies
      - zookeeper0

  clickhouse1:
    image: yandex/clickhouse-server
    container_name: clickhouse1
    hostname: clickhouse1
    build:
      context: .
      dockerfile: clickhouse.dockerfile
      args:
        shard: 0
        replica: 1
    ports: 
      *ch_ports
    networks:
      clickhouse-network:
    volumes:
      - ${PWD}/clickhouse1:/var/lib/clickhouse
    depends_on:
      *ch_dependancies

networks:
  clickhouse-network:

spefic_onfig.xml

代码语言:javascript
复制
<yandex>
     <!-- Listen wildcard address to allow accepting connections from other containers and host network. -->
    <listen_host>::</listen_host>
    <listen_host>0.0.0.0</listen_host>
    <listen_try>1</listen_try>

    <interserver_http_port>9009</interserver_http_port>

    <zookeeper>
        <node index="1">
            <host>zookeeper0</host>
            <port>2181</port>
        </node>

    </zookeeper>

    <remote_servers>
        <company_cluster>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>clickhouse0</host>
                    <port>9000</port>
                </replica>
                <replica>
                    <host>clickhouse1</host>
                    <port>9000</port>
                </replica>
            </shard>
        </company_cluster>
    </remote_servers>

    <default_replica_path>/clickhouse/tables/{shard}/{database}/{table}</default_replica_path>
    <default_replica_name>{replica}</default_replica_name>

    <interserver_http_host>clickhouse${REPLICA}</interserver_http_host>
    
     <macros>
        <shard>${SHARD}</shard>
        <replica>clickhouse${REPLICA}</replica>
    </macros>

</yandex>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 13:38:35

我相信这是由网络问题引起的。

我修正了我的docker-compose.yml

在使用build.

  • Replaced

时,

  • 从clickhouse服务中删除了image。

代码语言:javascript
复制
    networks:
      clickhouse-network:

通过

代码语言:javascript
复制
    networks:
      - clickhouse-network

然后我跑了

代码语言:javascript
复制
docker-compose down && docker volume prune -f && docker-compose up -d
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70288791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档