0

AWS で 3 つの EC2 インスタンス ノードの cassandra クラスターを使用しています。

各ノードは EBS ボリュームをパス (/usr/lib/cassandra/) にマウントするため、cassandra のデータは EBS ボリュームに格納されます。

すべてのノードには、自身のプライベート IP を指す DNS があります。また、すべての cassandra 構成ファイルは、プライベート IP の代わりに DNS を使用します。

私の質問は、ノードが終了したときに、別の cassandra を起動し、新しく起動したインスタンスに EBS をマウントして、データが失われないようにすることです。ただし、cassandra サービスを開始すると、cassandra サービスは失敗します。ログは次のとおりです。

他のノードの IP を使用する理由がわかりません。

 INFO 12:47:36,364 Writing Memtable-schema_keyspaces@1358300025(251/2510 serialized/live bytes, 8 ops)
 INFO 12:47:36,367 Enqueuing flush of Memtable-schema_columns@1982787565(91991/919910 serialized/live bytes, 2375 ops)
 INFO 12:47:36,367 Enqueuing flush of Memtable-schema_columnfamilies@59370809(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 Memtable-schema_columns@1982787565(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 Memtable-schema_columnfamilies@59370809(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
4

2 に答える 2

0

私は間違っているかもしれませんが、あなたの cassandra.yaml で、シード変数を調べたいと思うかもしれません。おそらく古い IP を間違って参照しています。これを回避する別の方法は、AWS のフローティング IP の一部を使用することです。そうすれば、新しいマシンをスピンアップした場合に、フローティング IP をそのマシンに向けることができ、構成で IP を変更する必要がなくなります。

于 2013-10-26T23:05:59.267 に答える
0

スニッチ プロパティ ファイルで不明なノードのデフォルトを設定しているかどうかを確認します。

default =<Any of your DC name>:RAC1

変更を再開した後、これが役立つことを願っています。

于 2015-12-13T11:58:37.233 に答える