2013-10-25 23 views
0

我在AWS上使用3個EC2實例節點的cassandra集羣。在ec2上使用ebs更改私有IP時,Cassandra2.0.1無法重新啓動

每個節點都將一個EBS卷掛載到路徑(/ usr/lib/cassandra /)中,因此cassandra的數據存儲在EBS卷中。

所有節點都有一個dns指向自己的私有ip。所有的cassandra配置文件都使用DNS而不是私有IP。

我的問題是:當一個節點被終結時,我將另一個cassandra拉開,並將EBS掛載到新啓動的實例,這樣數據就不會丟失。但是當啓動cassandra服務時,cassandra服務將失敗。日誌如下:

我不知道爲什麼它會使用其他節點的IP?

INFO 12:47:36,364 Writing [email protected](251/2510 serialized/live bytes, 8 ops) 
INFO 12:47:36,367 Enqueuing flush of [email protected](91991/919910 serialized/live bytes, 2375 ops) 
INFO 12:47:36,367 Enqueuing flush of [email protected](38866/388660 serialized/live bytes, 1052 ops) 
INFO 12:47:36,385 Completed flushing /var/lib/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-jb-10-Data.db (214 bytes) for commitlog position ReplayPosition(segmentId=1382719654978, position=289) 
INFO 12:47:36,391 Writing [email protected](91991/919910 serialized/live bytes, 2375 ops) 
INFO 12:47:36,627 Completed flushing /var/lib/cassandra/data/system/schema_columns/system-schema_columns-jb-24-Data.db (19358 bytes) for commitlog position ReplayPosition(segmentId=1382719654978, position=289) 
INFO 12:47:36,628 Writing [email protected](38866/388660 serialized/live bytes, 1052 ops) 
INFO 12:47:36,660 Completed flushing /var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-jb-24-Data.db (8750 bytes) for commitlog position ReplayPosition(segmentId=1382719654978, position=289) 
INFO 12:47:36,661 Log replay complete, 64 replayed mutations 
INFO 12:47:36,746 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-jb-23-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-jb-22-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-jb-24-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-jb-21-Data.db')] 
INFO 12:47:37,584 Compacted 4 sstables to [/var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-jb-25,]. 34,990 bytes to 8,759 (~25% of original) in 809ms = 0.010325MB/s. 16 total rows, 4 unique. Row merge counts were {1:0, 2:0, 3:0, 4:4, } 
INFO 12:47:38,411 Cassandra version: 2.0.1 
INFO 12:47:38,412 Thrift API version: 19.37.0 
INFO 12:47:38,425 CQL supported versions: 2.0.0,3.1.1 (default: 3.1.1) 
INFO 12:47:38,485 Loading persisted ring state 
ERROR 12:47:38,537 Exception encountered during startup 
java.lang.RuntimeException: Unknown host /172.31.9.175 with no default configured 
     at org.apache.cassandra.locator.PropertyFileSnitch.getEndpointInfo(PropertyFileSnitch.java:90) 
     at org.apache.cassandra.locator.PropertyFileSnitch.getDatacenter(PropertyFileSnitch.java:113) 
     at org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(DynamicEndpointSnitch.java:127) 
     at org.apache.cassandra.locator.TokenMetadata$Topology.addEndpoint(TokenMetadata.java:1049) 
     at org.apache.cassandra.locator.TokenMetadata.updateNormalTokens(TokenMetadata.java:187) 
     at org.apache.cassandra.locator.TokenMetadata.updateNormalTokens(TokenMetadata.java:159) 
     at org.apache.cassandra.service.StorageService.initServer(StorageService.java:470) 
     at org.apache.cassandra.service.StorageService.initServer(StorageService.java:428) 
     at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:343) 
     at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:442) 
     at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:485) 
java.lang.RuntimeException: Unknown host /172.31.9.175 with no default configured 
     at org.apache.cassandra.locator.PropertyFileSnitch.getEndpointInfo(PropertyFileSnitch.java:90) 
     at org.apache.cassandra.locator.PropertyFileSnitch.getDatacenter(PropertyFileSnitch.java:113) 
     at org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(DynamicEndpointSnitch.java:127) 
     at org.apache.cassandra.locator.TokenMetadata$Topology.addEndpoint(TokenMetadata.java:1049) 
     at org.apache.cassandra.locator.TokenMetadata.updateNormalTokens(TokenMetadata.java:187) 
     at org.apache.cassandra.locator.TokenMetadata.updateNormalTokens(TokenMetadata.java:159) 
     at org.apache.cassandra.service.StorageService.initServer(StorageService.java:470) 
     at org.apache.cassandra.service.StorageService.initServer(StorageService.java:428) 
     at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:343) 
     at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:442) 
     at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:485) 
Exception encountered during startup: Unknown host /172.31.9.175 with no default configured 

回答

0

我可能是錯的,但在你的cassandra.yaml,你可能想看看種子變量,它可能被錯誤地引用了舊的IP。另一種解決方法是使用AWS中的一些浮動IP。這樣,如果啓動一臺新機器,您將浮動IP指向它,配置不必更改IP。

0

檢查您是否爲您的snitch屬性文件中的未知節點配置了默認值。

default =<Any of your DC name>:RAC1 

使更改重新啓動後,希望這會有所幫助。

相關問題