2012-04-20 203 views
1

那么我有一个节点集群,我分为两个地址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。Cassandra集群单节点

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 

其他人设置是默认设置,我没有修改任何东西。然后我创建一个keyspace和column family使用:

CREATE KEYSPACE demo with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = [{replication_factor:2}]; 

我还没有指定任何分配器,所以defauly是随机我猜。

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; 

有什么不对吗?我该怎么做才能使其可行。

请给我一个详细的例子,如果你有任何。我想我在创建keyspace,Column系列和数据插入时做了一些错误。如果你有一个两节点插入的例子,那也是很棒的。

回答

0

您是否使用两个IP作为种子,将其设置为单个IP,以先启动为准。

什么是“nodetool --host [127.0.0.1 | 127.0.0.2] ring”,说。你是否能够在custer中看到两个ip。

+0

是的,我使用两个IP作为种子。我已将INFO级别更改为DEBUG,以确保两者都可以通信,但我一次只能看到一个IP。两个IP都没有通信。 – Jone 2012-04-23 06:45:50

+0

是的,我使用两个IP作为种子,如果我设置为单个IP作为种子,那么当我运行第二台服务器时会出现异常。 – Jone 2012-04-23 07:00:55

1

我尝试为本地传输提供不同的端口号后出现类似的问题。它必须是相同的端口(默认为9042),否则节点不会找到对方。 IP地址必须不同以防止节点之间的端口冲突。

使用./nodetool status来检查您是否确实创建了一个集群,而不是简单的两个隔离的实例。

相关问题