代码之家  ›  专栏  ›  技术社区  ›  peter

无法达到一致性级别LOCAL_ONE info={required_replicas 1 alive_replicas:0,一致性:LOCAL_ONE}

  •  2
  • peter  · 技术社区  · 9 年前

    我的集群大小是6台机器。我的数据量很小,只有30000。但我经常进行读、写、删除和更新操作,虽然数据量很低,但可能会很昂贵。我不知道为什么会出现这个错误消息,因为数据量非常少。任何答案都非常感谢。

    当我的Cassandra集群繁忙时,我经常收到以下错误消息:

    WARNING code=1000 [Unavailable exception] message="Cannot achieve consistency level LOCAL_ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'LOCAL_ONE'}
    

    这是我读到的卡桑德拉蟒蛇代码:

    cluster = Cluster(['localhost']); session = cluster.connect('keyspaace')
    kafka = KafkaClient('localhost'); producer = SimpleProducer(kafka)
    channels = session.execute("select id from channels;")
    channel_ids = [channel.id for channel in channels]
    sleep_time = 10*60 / (len(channel_ids)+0.0)
    for channel in channel_ids:
    url = 'http://toutiao.com/m%s/?%s' % (channel, urllib.urlencode({'_': datetime.utcnow().replace(tzinfo=pytz.UTC).isoformat()}))
    producer.send_messages('toutiao.incoming_urls', json.dumps({'appid': 'articles', 'crawlid': 'channel-%s' % (channel), 'spiderid': 'toutiao', 'url': url, 'useragent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36', 'attrs': {'id': channel, '_': datetime.utcnow().replace(tzinfo=pytz.UTC).isoformat()}}))
    print url
    #         log.info(url)
    time.sleep(sleep_time)
    

    我附加了一些额外的信息,如键区、节点醇状态等。如果你能帮我解决这个问题,那就太好了。

    (1) 编辑 cassandra群集节点醇状态:

    Datacenter: Analytics
    =====================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
    UN  192.168.183.30   34.22 GB   1       76.7%             29ab1909-087c-447b-afaa-0e7db664f06d  rack1
    UN  192.168.183.109  22.57 GB   1       54.1%             c4bde944-6b94-44dd-9d09-c3934c3568c6  rack1
    UN  192.168.183.106  27.81 GB   1       65.9%             7c95ca0c-9727-4e5b-9736-368493bc87ab  rack1
    UN  192.168.183.121  24.61 GB   1       60.0%             85537680-70fc-494d-8e1f-48da35e9c33b  rack1
    UN  192.168.183.20   20.76 GB   1       43.3%             4572c3f5-a946-453d-89bc-5815361fced9  rack1
    Datacenter: Solr
    ================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
    UN  192.168.182.142  25.77 GB   1       100.0%            34d5797f-7b84-4e16-8f4d-80aa574408d2  rack1
    

    (2) 通道模式

    CREATE TABLE toutiao.channels (
        id text PRIMARY KEY,
        avatar text,
        category text,
        created_at timestamp,
        last_crawled timestamp,
        last_modified timestamp,
        name text,
        scheduled_for timestamp,
        source text,
        status text,
        url text
    ) WITH bloom_filter_fp_chance = 0.01
        AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
        AND comment = ''
        AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
        AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
        AND dclocal_read_repair_chance = 0.1
        AND default_time_to_live = 0
        AND gc_grace_seconds = 864000
        AND max_index_interval = 2048
        AND memtable_flush_period_in_ms = 0
        AND min_index_interval = 128
        AND read_repair_chance = 0.0
        AND speculative_retry = '99.0PERCENTILE';
    

    (3) 编辑 密钥空间

    CREATE KEYSPACE mykeyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'Analytics': '3', 'Solr': '1'}  AND durable_writes = true;
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   Citrullin    9 年前

    您的复制配置错误。您的数据中心分析的复制系数为6,但此数据中心不存在。将其更改为Ana并添加solr集群。或者您可以在您的告密配置中更改它。不要使用6的复制因子。改用3或4。您的Ana集群中只有5个节点。复制系数过高会极大地降低群集的速度。通常,如果与您的告密或复制配置不一致,就会出现此错误。