Her düğümde düğüm aracı onarımı yapmak zorunda mısınız?


12

nodetool repairBir kümedeki her düğümde çalıştırmanız mı gerekiyor, yoksa yalnızca bir düğümde çalıştırmanız mı gerekiyor ve oradan Cassandra geri kalanıyla ilgilenecek mi?

Yanıtlar:


9

Belgelere bakarken, bunun için bir referans bulmakta zorlanıyorum, ancak kısa cevap "evet" nodetool repair, kümenizdeki her düğümde çalıştırmanız gerekiyor . Bulabildiğim en yakın nokta, düğümlerin onarımı ile ilgili olarak, bir kerede kümenizdeki birden fazla düğümde onarım çalıştırmamanız gerektiğini gösteren belgelerdir .

Ayrıca çalıştırabilirsiniz onarım ile -prcari düğüm sorumlu olduğunu ilk belirteç aralığa onarım işlemini sınırlayan bayrağı. Bu, kalan düğümlerde çalıştırıldığında işin çoğaltılmasını azaltır.


Yani -prher düğümde koşarsam, bu tüm tuş alanını kaplayacak mı?
2rs2ts

1
@ 2rs2ts Evet, -prher düğümde çalıştırırsanız tüm anahtar boşluklarını kaplayacaktır.
Aaron

1
Tamam ... Öyleyse, bunu her düğümde çalıştırmanız gerektiğini varsayıyorum, ancak -prbayrakla zaman kazanabilirsiniz .
2rs2ts

1
Diğer cevaba bazı kaynaklar ekledim. Bu kaynak oldukça açıktır: "Rutin onarım sıklığı için zor gereksinim gc_grace_seconds değeridir. Bu süre içinde her düğümde en az bir kez bir onarım işlemi gerçekleştirin ." Tamir Düğümleri
Carl G

5

Nasıl davrandığı yapılandırmanıza, Cassandra'nın hangi sürümünü kullandığınıza ve onarım komutunu nasıl çalıştırdığınıza bağlıdır.

nodetool repairBir kümede yalnızca tek bir düğümde çalıştırırsanız , düğümün sorumlu olduğu tüm verileri (belirteç aralıkları) ve bu verilerden sorumlu diğer düğümleri onarır.

Örneğin, nodetool repairkomutu belirli bir kümedeki tek bir düğümde çalıştırırsanız :

  • Çoğaltma faktörü üç olan üç düğümlü bir küme çalıştırıyorsanız, tüm düğümler tüm verilere sahip olacak ve bu nedenle tüm düğümler için onarımlar gerçekleştirilecektir.
  • Çoğaltma faktörü 2 olan altı düğümlü bir küme çalıştırıyorsanız, veriler yalnızca altı düğümden ikisinde onarılır. Onarımın kalan dört düğümden ikisinde daha başlatılması gerekir.

Bununla birlikte, -hostsve -dcbayraklarını kullanarak onarım yapmak için hangi ana bilgisayarların ve veri merkezlerinin tanımlanması mümkündür . Ayrıca kullandığınız takdirde -prçalıştırmak zorunda kalacak (sadece düğüm sorumludur ilk belirteç aralığı bulacaktır) bayrağı nodetool repair -prüzerinde tüm kümedeki düğümler.

Akılda tutulması gereken bir diğer bayrak -incCassandra 2.1'de yer alan bayraktır. Bu seçenek yalnızca yeni verileri onaracaktır (önceden onarılmamış veriler). Buna güvenirken, özellikle verileri sık sık siliyorsanız dikkatli olun. ( daha fazlası )

Akılda tutulması gereken başka bir şey, Cassandra'da onarımların varsayılan şekilde yapılmasının değişebileceğidir. Cassandra 2.1'den itibaren çalışırken sadece nodetool repairvarsayılan olarak tam sıralı onarım gerçekleştirir. Sürümünüzün ne yaptığına bakmak isteyeceksiniz.

Konu hakkında daha fazla bilgi için:

https://www.datastax.com/dev/blog/repair-in-cassandra


2
burada tek iyi cevap
ruruskyi

2

Hayır, her bir düğümde koşmanıza gerek yoktur. belgelerdenodetool repair açıkça belirtilen düğümler kümesi üzerinde çalışır .

Onarımı çalıştırmak istediğiniz düğümleri veya verilerin bir bölümünü sınırlayabilirsiniz. Örneğin, -prdüğümün sorumlu olduğu bölüm aralığı için seçenek sunabilirsiniz , ancak bunun tüm kümede çalıştırılması gerekir. Ancak seçerseniz -local, düğümün yerel veri merkezindeki düğümler onarılır.


4
nodetool repairTek bir düğümde çalıştırmak , tüm yapılandırmalardaki tüm düğümlerdeki tüm çoğaltılmış verileri onarmak için yeterli değildir. nodetool repairTek bir düğümde çalıştırmak , yalnızca o düğümde çoğaltılmış verileri onarır. ( -prSeçeneğin eklenmesi, onarımı bu düğümün ilk çoğaltma olduğu verilerle sınırlar.) Ancak kümenizde bu düğümde çoğaltılmamış veriler varsa nodetool repair, ek düğümlerde çalıştırmanız gerekir .
Carl G

2
"-Pr seçeneği belirtilmezse, Cassandra düğümün sorumluluğu altındaki tüm çoğaltma aralıklarını onarır." nodetool onarım dokümanları (Yani bu düğümün çoğaltmaktan sorumlu olmadığı verileri onarmaz.) "Rutin onarım sıklığı için zor gereksinim gc_grace_seconds değeridir. Bu süre içinde her düğümde en az bir kez bir onarım işlemi gerçekleştirin ." Tamir Düğümleri
Carl G
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.