2016-06-11 16 views
1

Meine Clustergröße ist 6 Maschinen. Meine Datenmenge ist nur sehr klein wie 30.000. Aber ich habe häufig Operationen gelesen, geschrieben, gelöscht und aktualisiert, die teuer sein können, obwohl die Datenmenge gering ist. Ich verstehe nicht, warum diese Fehlermeldung auftritt, da die Datenmenge sehr niedrig ist. Alle Antworten werden sehr geschätzt.Konsistenzlevel kann nicht erreicht werden LOCAL_ONE info = {required_replicas 1 alive_replicas: 0, Konsistenz: LOCAL_ONE}

Als mein Cassandra Cluster beschäftigt ich diese Fehlermeldung oft erhalten: meine Lese von cassandra Python-Code

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

Dies ist:

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) 

ich einige zusätzliche Informationen angebracht wie Schlüsselraum, nodetool Status usw. Wäre toll, wenn Sie mir helfen könnten, dies zu lösen.

(1) EDIT cassandra Cluster nodetool Status:

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) Kanäle Schema

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) EDIT Schlüsselraum

CREATE KEYSPACE mykeyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'Analytics': '3', 'Solr': '1'} AND durable_writes = true; 
+1

Welchen Snitch benutzen Sie? –

+0

Ich benutze endpoint_snitch: com.datastax.bdp.snitch.DseSimpleSnitch. Irgendeine Idee was ist los? Ich verstehe es wirklich nicht. Danke – peter

+0

@PhilippBlum Ich hatte Fehler in mykeyspace sowie nodetool Status, die ich bearbeitet habe. Wäre toll, wenn du nochmal schauen könntest, danke. – peter

Antwort

2

Sie haben eine falsche Replikationskonvertierung Figuration. Sie haben einen Replikationsfaktor von 6 in Ihrem Datencenter Analytics, aber dieses Datencenter ist nicht vorhanden. Ändern Sie es zu Ana und fügen Sie Ihren solr-Cluster hinzu. Oder Sie können es in Ihrer Snitch-Konfiguration ändern. Verwenden Sie keinen Replikationsfaktor 6. Verwenden Sie stattdessen 3 oder 4. Sie haben nur 5 Knoten in Ihrem Ana-Cluster. Ein zu hoher Replikationsfaktor kann Ihren Cluster extrem verlangsamen. Im Allgemeinen tritt dieser Fehler auf, wenn etwas mit Ihrer Snitch- oder Replikationskonfiguration nicht übereinstimmt.