我有一个节点集群,我分为两个地址127.0.0.1和127.0.0.2。如果我尝试将数据插入127.0.0.1,请使用Cassandra Client。数据成功添加127.0.0.1并且我也可以查看但是如果我尝试从127.0.0.2连接到视图,我看不到任何更新。没有数据。我想我上次无法解释它。这就是我在同一节点上将两个cassandra复制到不同文件夹中的名称Cassandra 1和Cassandra 2。相应地更新Cassandra.yaml。
1)
cluster_name: 'Test Cluster'
initial_token:
data_file_directories: - /Cassandra/1/var/lib/cassandra/data
commitlog_directory: /Cassandra/1/var/lib/cassandra/commitlog
saved_caches_directory: /Cassandra/1/var/lib/cassandra/saved_caches
- seeds: "127.0.0.1,127.0.0.2"
listen_address: 127.0.0.1
rpc_address: 127.0.0.1
2)
cluster_name: 'Test Cluster'
initial_token:
data_file_directories: - /Cassandra/2/var/lib/cassandra/data
commitlog_directory: /Cassandra/2/var/lib/cassandra/commitlog
saved_caches_directory: /Cassandra/2/var/lib/cassandra/saved_caches
- seeds: "127.0.0.1,127.0.0.2"
listen_address: 127.0.0.2
rpc_address: 127.0.0.2
其他设置是默认设置,我没有修改任何内容。然后我使用:
创建一个键空间和列族CREATE KEYSPACE demo with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = [{replication_factor:2}];
我没有指定任何分配器,所以我想是随机的。
use demo;
create column family order with comparator=UTF8Type and key_validation_class=UTF8Type and default_validation_class=UTF8Type and column_metadata=[{column_name: member, validation_class: UTF8Type},{column_name: user, validation_class: UTF8Type, index_type: KEYS},{column_name: instrument, validation_class: UTF8Type},{column_name: price, validation_class: DoubleType}, {column_name: quantity, validation_class: Int32Type},{column_name:datetime, validation_class: DateType}];
现在,如果我尝试连接到127.0.0.1并插入数据,我相信应该为127.0.0.1和127.0.0.2插入数据,但事实并非如此。
Set orders[KEY][user] = 'ABC' list orders;
有什么不对吗?我该怎么做才能让它变得可行。
如果你有任何问题,请给我一个详细的例子。我认为在创建键空间,列族和数据插入时我做错了。如果您有两个节点插入的示例也会很棒。
答案 0 :(得分:1)
在尝试为本机传输提供不同的端口号后,我遇到了类似的问题。它必须是同一个端口(默认为9042),否则节点不会找到对方。 IP地址必须不同,以防止节点之间的端口冲突。
使用./nodetool status
检查您是否确实创建了群集,而不仅仅是两个独立的实例。
答案 1 :(得分:0)
您是否同时使用IP作为种子,将其设置为单个IP,无论哪个先启动。
什么是“nodetool --host [127.0.0.1 | 127.0.0.2]响铃”,说。你能在卡斯特看到两个ip吗?