What node does Cassandra store data on?

余生颓废 提交于 2019-12-19 20:43:42

问题


Is there a command or any way at all to know what data is stored on what nodes of Cassandra?

Im pretty new to Cassandra and haven't had much luck googling this question.

Thanks!


回答1:


You can get Cassandra to tell you which node(s) a particular key is on with nodetool getendpoints.

$ nodetool getendpoints mykeyspace tbl '8546200'
192.168.73.188
192.168.73.190

I don't know if that's what you're looking for or not. AFAIK there isn't a way to flat-out query the responsible nodes for all rows in a table or keyspace. But as Blake pointed out, your application doesn't really need to worry about that.

If you really wanted to find out, you could query your table using the token function on your partition key. Here's an example using Blake's schema:

SELECT token(partition_key),partition_key FROM tbl;

That would list the hashed tokens with your partition keys. Then you could run a nodetool ring to list out the token ranges for each node, and see which nodes are responsible for that range. Note that if you are using vNodes your output will be pretty big (256 lines for each, by default).




回答2:


Cassandra uses consistent hashing on the row's Partition key to determine where data is stored. Tokens are assigned to nodes and the consistent hash of the Partition key determines which node(s) will store the row.

Partition key is the first part of the PRIMARY KEY in your table definition or in nested parentheses

CREATE TABLE tbl (
partition_key INT,
clus_key TEXT,
...,
PRIMARY KEY((partition_key), clus_key);

Some reading here on the ring and consistent hashing. You're probably using vNodes so I'd read a bit here too.

At query time, you don't have to worry about which node has what. Your C* driver will select a coordinator node from the list provided that will find the rows based on your query.

If you want to see details about what a query is doing in CQLSH, try turning tracing on:

> TRACING ON;
> SELECT * FROM table; 

> Tracing session: 1f6b4440-050f-11e5-ba41-672ef88f159d
> ....
> <Details about the query>
> ....


来源:https://stackoverflow.com/questions/30514237/what-node-does-cassandra-store-data-on

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!