您好,登錄后才能下訂單哦!
本文檔只是體系文檔中的一部分,前面文檔信息詳見:
https://blog.51cto.com/michaelkang/2419518
用于節點擴容,測試方法:清理(172.20.101.165)節點上所有數據,模擬新節點加入;
1:使用相同版本的Cassandra
2:注意,種子節點不能引導。確保新節點沒有在-seeds列表中列出,不要使所有節點種子節點。
3:copy加入DC現有節點配置文件到新節點,然后進行配置修改,文件如下:
在cassandra.yaml文件和 cassandra-topology.properties或 cassandra-rackdc.properties
4:注意cassandra.yaml文件中設置以下屬性 :
auto_bootstrap:
如果此選項已設置為false,則必須將其設置為true。該選項未在默認的cassandra.yaml配置文件中列出,默認為true。
CLUSTER_NAME:
新節點正在加入的群集的名稱。
listen_address/broadcast_address:
使用其他Cassandra節點用來連接到新節點的IP地址。
endpoint_snitch:
告密者Cassandra用來定位節點和路由請求。
num_tokens:
要分配給節點的vnode數量。使用與數據中心中其他節點上設置的相同數量的令牌。令牌范圍按比例分配,如果硬件能力不同,則為容量更高,性能更好的系統分配更多的令牌范圍。
allocate_tokens_for_local_replication_factor:
指定數據中心密鑰空間的復制因子(RF)。
5:加節點期間注意監控流量、進程,確保任務沒有死掉;
1:安裝服務;
2:同步配置文件,修改配置;
3:修改修改cassandra.ymal文件的streaming_socket_timeout_in_ms值。默認值是3600000,即1小時,改成172800000(48小時),保證時間足夠傳輸完所有數據。
--同步過程會對集群帶來很大的負載,所以盡可能關閉或限制一些功能,避免對線上業務造成影響。非必選項,執行命令4-5--
所有節點都關閉,包括新節點(新節點啟動后關閉))
4:關閉所有節點的壓縮:nodetool disableautocompaction
5:停止正在執行的壓縮:nodetool stop COMPACTION
6:限制所有節點數據遷移流量:nodetool setstreamthroughput 32/64/更大
--限制為32mbps/64mbps/更大, 假設你的集群有10個機器,那么你的新節點的流量大約是32*10mbps。你可以根據數據遷移的進度,網絡壓力、節點壓力、磁盤壓力、完成的節點個數,調整這個值。
7:修改數據目錄權限,如果調整了集群相關目錄文件夾配置,首先要修改權限:chown -R cassandra.cassandra /var/lib/cassandra
8:啟動引導程序節點(新加入節點執行): /etc/init.d/cassandra start
9.使用nodetool status來驗證節點是否已完全引導,并且所有其他節點都處于運行狀態(UN)而不處于任何其他狀態。
10:現在重新開啟所有節點自動壓縮:nodetool enableautocompaction
11:關閉所有節點數據遷移流量:nodetool setstreamthroughput 0
12:手動清理每一臺老節點磁盤空間:nodetool cleanup
在新節點成功加入之后,對每個先前存在的節點運行nodetool cleanup,花費時間較長,推薦后臺運行nodetool cleanup。如果你不這樣做,舊的數據仍然會在老節點上,占用磁盤空間。
cleanup是單線程操作,整體上影響不大,不需要關閉壓縮。
cleanup是單機行為,也不需要限制節點stream傳輸。
避開業務高峰時間,逐個節點執行。
[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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。