Cassandra運(yùn)維工具-Reaper安裝與使用

Reaper是什么

Reaper是專門用于執(zhí)行Cassandra數(shù)據(jù)修復(fù)操作的可視化工具。

當(dāng)然,除了核心功能外,也提供了其他一些功能,例如,快照管理,集群基本信息、狀態(tài)等。

Cassandra為什么需要修復(fù)

如果集群中某一個(gè)節(jié)點(diǎn)A關(guān)閉或無(wú)法訪問(wèn),該節(jié)點(diǎn)不能被寫入。當(dāng)節(jié)點(diǎn)A恢復(fù)后,其他節(jié)點(diǎn)會(huì)通知A錯(cuò)過(guò)了哪些數(shù)據(jù),并修復(fù)。但這并不能保證100%通知到。這些不一致日積月累可能會(huì)導(dǎo)致數(shù)據(jù)丟失。

要解決這個(gè)問(wèn)題,就需要經(jīng)常修復(fù)節(jié)點(diǎn)數(shù)據(jù)。

修復(fù)大體分兩類:增量修復(fù),全量修復(fù)。默認(rèn)使用nodetool repair是增量修復(fù),如需全量修復(fù),使用nodetool repair --full。

按照官方給出的最佳實(shí)踐建議,1到3天進(jìn)行一次增量修復(fù),1到3周進(jìn)行一次全量修復(fù)。當(dāng)然,這要看具體的數(shù)據(jù)情況。

為什么要用Reaper

使用nodetool repair修復(fù)幾次,就會(huì)知道實(shí)在是痛苦,尤其是集群節(jié)點(diǎn)多了之后,所有節(jié)點(diǎn)都要去手動(dòng)維護(hù)不說(shuō),修復(fù)的進(jìn)度還看不到,數(shù)據(jù)量大了之后,修復(fù)一個(gè)節(jié)點(diǎn)動(dòng)輒十幾個(gè)小時(shí),只能不斷的去刷日志。

所以,就需要一個(gè)管理修復(fù)任務(wù)的可視化的工具。

Reaper安裝

Reaper核心是一個(gè)jar包,可以直接運(yùn)行jar包,也可以安裝為L(zhǎng)inux系統(tǒng)服務(wù)。這里介紹安裝為系統(tǒng)服務(wù),其他的安裝方式可參考 Reaper官網(wǎng)。

  1. 下載安裝包:
https://bintray.com/thelastpickle/reaper-rpm/cassandra-reaper/1.4.4

請(qǐng)自行fq下載。如有困難,考慮源碼編譯jar包安裝的方式。

  1. 安裝rpm
rpm -ivh reaper-*.*.*.x86_64.rpm
  1. 啟動(dòng)服務(wù)
service cassandra-reaper start 
  1. 停止服務(wù)
service cassandra-reaper stop

如果啟動(dòng)失敗,提示 java not found,原因是沒(méi)有安裝jdk環(huán)境,或者環(huán)境變量配置有問(wèn)題。

查看啟動(dòng)腳本可以知道,執(zhí)行的是sudo -u "$user" $dir/$cmd >> "$stdout_log" 2>> "$stderr_log" &,$user 是 reaper,所以要確保 sudo -u reaper java -version 能正常輸出。

一般使用安裝包方式安裝的jdk沒(méi)問(wèn)題,綠色安裝的jdk可能有問(wèn)題,在/usr/bin下建個(gè)java的軟連接即可:

ln -s /jdk_home/bin/java /usr/bin/java

5.登錄

http://ip:8080/webui/
image.png

默認(rèn)用戶名/密碼: admin/admin。

Reaper配置

  1. 修改用戶名密碼
which cassandra-reaper

找到服務(wù)啟動(dòng)腳本:/usr/local/bin/cassandra-reaper

cat /usr/local/bin/cassandra-reaper

查看腳本內(nèi)容,找到j(luò)ar包位置:

...
CLASS_PATH="/usr/share/cassandra-reaper/*:/usr/local/share/cassandra-reaper/*"
...

找到j(luò)ar包在/usr/share/cassandra-reaper/目錄下。下面進(jìn)行修改:

cd /usr/share/cassandra-reaper/
vim cassandra-reaper-1.4.4.jar
/shiro.ini

找到users設(shè)置:

# default authentication is the following hardcoded admin user
[users]
admin = admin
  1. 修改Reaper數(shù)據(jù)存儲(chǔ)方案
    Reaper有自己的元信息需要存儲(chǔ),默認(rèn)存儲(chǔ)方式是內(nèi)存,重啟服務(wù)后之前的設(shè)置就都丟失了,所以改成持久化存儲(chǔ)方案。

一共支持4種:

  • memory
  • H2
  • Postgres
  • Cassandra

我們選用Cassandra。

修改配置文件:

vim /etc/cassandra-reaper/cassandra-reaper.yaml

找到

storageType: memory

改為:

storageType: cassandra
cassandra:
  clusterName: "集群名"
  contactPoints: ["節(jié)點(diǎn)1", "節(jié)點(diǎn)2", ...]
  keyspace: reaper_db
  queryOptions:
    consistencyLevel: LOCAL_QUORUM
    serialConsistencyLevel: SERIAL

然后,需要在Cassandra中創(chuàng)建名為reaper_db的key space

CREATE KEYSPACE reaper_db WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': '3'}
  1. 修改datacenterAvailability
vim /etc/cassandra-reaper/cassandra-reaper.yaml

datacenterAvailability值改為L(zhǎng)OCAL:

datacenterAvailability: LOCAL

此配置項(xiàng)根據(jù)具體使用場(chǎng)景設(shè)置。因?yàn)橹挥幸粋€(gè)DC,所以設(shè)置為L(zhǎng)OCAL。具體說(shuō)明請(qǐng)參考Reaper的使用文檔。

  1. 修改Cassandra配置,允許遠(yuǎn)程JMX管理

Reaper依賴于JMX來(lái)管理節(jié)點(diǎn),需要Cassandra所有節(jié)點(diǎn)開(kāi)啟JMX遠(yuǎn)程操控權(quán)限。
默認(rèn)Cassandra的JMX是只能本地模式,也就在A節(jié)點(diǎn)通過(guò)nodetool -h hostname操控只能其他節(jié)點(diǎn)是不行的。

修改JMX配置

cd cassandra_home
vim conf/cassandra-env.sh

修改JMX相關(guān)的配置

...
LOCAL_JMX=no
...
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"

這里禁用掉JMX的用戶授權(quán)功能。

  1. 重啟Cassandra集群;重啟Cassandra Repair服務(wù)即可。

Repair使用

  1. 添加集群


    Clusters頁(yè)面

在Clusters頁(yè)面輸入集群中任意一個(gè)seed節(jié)點(diǎn),點(diǎn)擊“add cluster”按鈕即可。
添加完成后,可以看到集群的基礎(chǔ)信息。點(diǎn)擊某個(gè)節(jié)點(diǎn),可以查看該節(jié)點(diǎn)的詳細(xì)信息。

  1. 修復(fù)數(shù)據(jù)


    Repairs頁(yè)面

在Repairs頁(yè)面可以創(chuàng)建一個(gè)修復(fù)任務(wù),選擇集群、Keyspace,Owner和Cause隨意填寫。
如果需要更多設(shè)置,可以展開(kāi)Advanced Settings進(jìn)行設(shè)置。可以設(shè)置修復(fù)的節(jié)點(diǎn)、表名、數(shù)據(jù)中心、修復(fù)方式(增量或全量)等。設(shè)置完成后點(diǎn)擊Repair按鈕即可。
創(chuàng)建成功后的修復(fù)任務(wù)會(huì)出現(xiàn)在下邊的Running列表里,點(diǎn)擊對(duì)應(yīng)的任務(wù)的Acitve按鈕即可開(kāi)始執(zhí)行。
Running列表里可以看到修復(fù)的進(jìn)度。

  1. 定時(shí)修復(fù)


    Schedules頁(yè)面

在Schedules頁(yè)面可以創(chuàng)建定時(shí)任務(wù),自動(dòng)觸發(fā)修復(fù)任務(wù),設(shè)置的方式與Repair頁(yè)面類似。

  1. 快照管理


    Snapshots頁(yè)面

這個(gè)頁(yè)面可以很方便管理集群的快照。

參考:

Cassandra repair 命令使用文檔(含最佳實(shí)踐)
Cassandra Reaper 使用文檔
JMX 文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Apache Cassandra 是一個(gè)開(kāi)源的、分布式、去中心化、彈性可擴(kuò)展、高可用性、容錯(cuò)、一致性可調(diào)、面向行的...
    梁睿坤閱讀 14,255評(píng)論 2 25
  • 要加“m”說(shuō)明是MB,否則就是KB了. -Xms:初始值 -Xmx:最大值 -Xmn:最小值 java -Xms8...
    dadong0505閱讀 5,059評(píng)論 0 53
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,272評(píng)論 0 5
  • 原文鏈接:https://docs.spring.io/spring-boot/docs/1.4.x/refere...
    pseudo_niaonao閱讀 4,881評(píng)論 0 9
  • 1.Presto是什么 Presto通過(guò)使用分布式查詢,可以快速高效的完成海量數(shù)據(jù)的查詢。如果你需要處理TB或者P...
    張家鋒閱讀 16,756評(píng)論 2 5

友情鏈接更多精彩內(nèi)容