0

2 ノードのカサンドラ リングがあります。サーバーの1つで、いくつかの一括書き込み操作を実行しています-ファイルリストのフォルダーをスキャンし、リストをローカルのCassandraに書き込みます。そこには約500,000のファイルがあります。1 つのミューテーションごとに 250 の値を入れています。

問題: ロード中にmphaeHUnavailableExceptionが発生します。さらに、他のノードで奇妙なことに気付きました。負荷が大幅に増加します。

書き込み操作前:

me@10.1.18.55:~$ nodetool -h localhost ring
Address         DC          Rack        Status State   Load            Owns                Token
                                                                              85070591730234615865843651857942052864
10.1.18.51      datacenter1 rack1       Up     Normal  221.3 KB        50.00%              0
10.1.18.55      datacenter1 rack1       Up     Normal  185.65 KB       50.00%              85070591730234615865843651857942052864

書き込み操作後

me@10.1.18.55:~$ nodetool -h localhost ring
Note: Ownership information does not include topology, please specify a keyspace. 
Address         DC          Rack        Status State   Load            Owns                Token                                       
                                                                                           85070591730234615865843651857942052864      
10.1.18.51      datacenter1 rack1       Up     Normal  124.44 MB       50.00%              0                                           
10.1.18.55      datacenter1 rack1       Up     Normal  303.39 KB       50.00%              85070591730234615865843651857942052864      

それはどういうわけか私の負荷をクラッシュさせますか?

Cassandra バージョン 1.1.0、整合性タイプ クォーラム。

ミューテーターの実装ビットは次のとおりです。

    mutator.addInsertion("items", columnFamily, HFactory.createColumn(
        i.getAndIncrement(), xml, LongSerializer.get(),
        StringSerializer.get()));

1 つの大きな「アイテム」行に書き込まれるデータの継ぎ目...

4

2 に答える 2

1

物事を One Big Row としてモデリングしている場合は、そうしないでください。行はパーティショニングとレプリケーションの単位であるため、適切な負荷分散を得るには、リング内のノードよりも多くの行が必要です。

UnavailableException はおそらく、クラスターに過負荷をかけていることを意味します。書き込みを抑制できます。「nodetool tpstats」を使用して、どれだけ遅れているかを確認できます。または、この種の状況に対処するように設計された、Dalius がリンクしたバルク ローダーに切り替えることもできます。

于 2012-06-26T17:30:27.177 に答える
0

行パーティションのサイズが 100Mb を超えないようにしてください。cfstats を使用して同じことを確認できます。

列ファミリーの場合、以下の統計が重要であり、値は 100Mb 未満である必要があります。制限を超えると、圧縮のオーバーヘッドが発生し、ノードがオフラインになります。

圧縮されたパーティションの最大バイト数: [値] 圧縮されたパーティションの平均バイト数: [値]

于 2014-12-21T16:31:50.490 に答える