您好,登錄后才能下訂單哦!
本文檔只是體系文檔中的一部分,前面文檔信息詳見:
https://blog.51cto.com/michaelkang/2419518
用于節(jié)點(diǎn)擴(kuò)容,測試方法:清理(172.20.101.165)節(jié)點(diǎn)上所有數(shù)據(jù),模擬新節(jié)點(diǎn)加入;
1:使用相同版本的Cassandra
2:注意,種子節(jié)點(diǎn)不能引導(dǎo)。確保新節(jié)點(diǎn)沒有在-seeds列表中列出,不要使所有節(jié)點(diǎn)種子節(jié)點(diǎn)。
3:copy加入DC現(xiàn)有節(jié)點(diǎn)配置文件到新節(jié)點(diǎn),然后進(jìn)行配置修改,文件如下:
在cassandra.yaml文件和 cassandra-topology.properties或 cassandra-rackdc.properties
4:注意cassandra.yaml文件中設(shè)置以下屬性 :
auto_bootstrap:
如果此選項(xiàng)已設(shè)置為false,則必須將其設(shè)置為true。該選項(xiàng)未在默認(rèn)的cassandra.yaml配置文件中列出,默認(rèn)為true。
CLUSTER_NAME:
新節(jié)點(diǎn)正在加入的群集的名稱。
listen_address/broadcast_address:
使用其他Cassandra節(jié)點(diǎn)用來連接到新節(jié)點(diǎn)的IP地址。
endpoint_snitch:
告密者Cassandra用來定位節(jié)點(diǎn)和路由請求。
num_tokens:
要分配給節(jié)點(diǎn)的vnode數(shù)量。使用與數(shù)據(jù)中心中其他節(jié)點(diǎn)上設(shè)置的相同數(shù)量的令牌。令牌范圍按比例分配,如果硬件能力不同,則為容量更高,性能更好的系統(tǒng)分配更多的令牌范圍。
allocate_tokens_for_local_replication_factor:
指定數(shù)據(jù)中心密鑰空間的復(fù)制因子(RF)。
5:加節(jié)點(diǎn)期間注意監(jiān)控流量、進(jìn)程,確保任務(wù)沒有死掉;
1:安裝服務(wù);
2:同步配置文件,修改配置;
3:修改修改cassandra.ymal文件的streaming_socket_timeout_in_ms值。默認(rèn)值是3600000,即1小時(shí),改成172800000(48小時(shí)),保證時(shí)間足夠傳輸完所有數(shù)據(jù)。
--同步過程會(huì)對集群帶來很大的負(fù)載,所以盡可能關(guān)閉或限制一些功能,避免對線上業(yè)務(wù)造成影響。非必選項(xiàng),執(zhí)行命令4-5--
所有節(jié)點(diǎn)都關(guān)閉,包括新節(jié)點(diǎn)(新節(jié)點(diǎn)啟動(dòng)后關(guān)閉))
4:關(guān)閉所有節(jié)點(diǎn)的壓縮:nodetool disableautocompaction
5:停止正在執(zhí)行的壓縮:nodetool stop COMPACTION
6:限制所有節(jié)點(diǎn)數(shù)據(jù)遷移流量:nodetool setstreamthroughput 32/64/更大
--限制為32mbps/64mbps/更大, 假設(shè)你的集群有10個(gè)機(jī)器,那么你的新節(jié)點(diǎn)的流量大約是32*10mbps。你可以根據(jù)數(shù)據(jù)遷移的進(jìn)度,網(wǎng)絡(luò)壓力、節(jié)點(diǎn)壓力、磁盤壓力、完成的節(jié)點(diǎn)個(gè)數(shù),調(diào)整這個(gè)值。
7:修改數(shù)據(jù)目錄權(quán)限,如果調(diào)整了集群相關(guān)目錄文件夾配置,首先要修改權(quán)限:chown -R cassandra.cassandra /var/lib/cassandra
8:啟動(dòng)引導(dǎo)程序節(jié)點(diǎn)(新加入節(jié)點(diǎn)執(zhí)行): /etc/init.d/cassandra start
9.使用nodetool status來驗(yàn)證節(jié)點(diǎn)是否已完全引導(dǎo),并且所有其他節(jié)點(diǎn)都處于運(yùn)行狀態(tài)(UN)而不處于任何其他狀態(tài)。
10:現(xiàn)在重新開啟所有節(jié)點(diǎn)自動(dòng)壓縮:nodetool enableautocompaction
11:關(guān)閉所有節(jié)點(diǎn)數(shù)據(jù)遷移流量:nodetool setstreamthroughput 0
12:手動(dòng)清理每一臺(tái)老節(jié)點(diǎn)磁盤空間:nodetool cleanup
在新節(jié)點(diǎn)成功加入之后,對每個(gè)先前存在的節(jié)點(diǎn)運(yùn)行nodetool cleanup,花費(fèi)時(shí)間較長,推薦后臺(tái)運(yùn)行nodetool cleanup。如果你不這樣做,舊的數(shù)據(jù)仍然會(huì)在老節(jié)點(diǎn)上,占用磁盤空間。
cleanup是單線程操作,整體上影響不大,不需要關(guān)閉壓縮。
cleanup是單機(jī)行為,也不需要限制節(jié)點(diǎn)stream傳輸。
避開業(yè)務(wù)高峰時(shí)間,逐個(gè)節(jié)點(diǎn)執(zhí)行。
[root@kubm-01 ~]# cqlsh 172.20.101.157 -u cassandra -p cassandra
cassandra@cqlsh> SELECT * from kevin_test.t_users;
user_id | emails | first_name | last_name
---------+---------------------------------+------------+-----------
6 | {'k6-6@gmail.com', 'k6@pt.com'} | kevin6 | kang
7 | {'k7-7@gmail.com', 'k7@pt.com'} | kevin7 | kang
9 | {'k9-9@gmail.com', 'k9@pt.com'} | kevin9 | kang
4 | {'k4-4@gmail.com', 'k4@pt.com'} | kevin4 | kang
3 | {'k3-3@gmail.com', 'k3@pt.com'} | kevin3 | kang
5 | {'k5-5@gmail.com', 'k5@pt.com'} | kevin5 | kang
0 | {'k0-0@gmail.com', 'k0@pt.com'} | kevin0 | kang
8 | {'k8-8@gmail.com', 'k8@pt.com'} | kevin8 | kang
2 | {'k2-2@gmail.com', 'k2@pt.com'} | kevin2 | kang
1 | {'k1-1@gmail.com', 'k1@pt.com'} | kevin1 | kang
https://blog.csdn.net/yuanjian0814/article/details/78768889
https://www.jianshu.com/p/1dcca8f19894
http://cassandra.apache.org/doc/latest/tools/nodetool/nodetool.html?highlight=setstreamthroughput
https://zhaoyanblog.com/archives/684.html
https://blog.csdn.net/yuanjian0814/article/details/78777735
https://blog.csdn.net/iteye_19004/article/details/82648737
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。