2
votes

My cluster size is 6 machines. My data amount is very small only like 30.000. But I frequently have read,write,delete and update operations which might be costly although the data amount is low. I don't get why this error message occurs since data amount is very low. Any answers are really appreciated.

When my Cassandra cluster is busy I often get this error message:

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

This is my read from cassandra python code:

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)

I attached some additional information such as keyspace, nodetool status etc. Would be great if you could help me solve this.

(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)channels 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 keyspace

CREATE KEYSPACE mykeyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'Analytics': '3', 'Solr': '1'}  AND durable_writes = true;
1
Which Snitch are you using? - Citrullin
I use endpoint_snitch: com.datastax.bdp.snitch.DseSimpleSnitch. Any idea what's going on? I really don't get it. Thanks - peter
@PhilippBlum I had errors in mykeyspace as well as nodetool status which I edited. Would be great if you could have another look thanks. - peter
Still Same erfror? - Citrullin
Perfect :) Than you can mark my answer ;) - Citrullin

1 Answers

2
votes

You have a wrong replication configuration. You have a replication factor of 6 on your datacenter Analytics but this datacenter doesn't exist. Change it to Ana and add your solr cluster. Or you can change it in your snitch configuration. And don't use a replication factor of 6. Use 3 or maybe 4 instead. You have only 5 nodes in your Ana Cluster. A too high replication factor can slow down your cluster extremely. Generally this error will come if something is inconsistent with your snitch or replication configuration.