Cassandra 中的数据重新分区
Data Re-Partitioning in Cassandra
作为此 的跟进,我想到了 vNode。感谢 'Simon Fontana Oscarsson'
当我尝试使用 vNode 探索数据分区时,我有几个问题,
我尝试观察2个节点的分区分布(./nodetool ring
)
Two seed nodes (2 node)
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9207297847862311651
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9185516104965672922
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9135483708655236026
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -9106737079237505681
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9078521344187921602
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9051897156173923903
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9049800264451581717
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9039572936575206977
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -9019927187583981555
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -9006071175095726599
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -8995415525773810853
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -8949342263103866059
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8880432529087253108
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8859265089807316498
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8844286905987198633
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8832739468389117376
所以根据我在两个节点中的观察,节点 61 的值从 -9207297847862311651 到 -9185516104965672922 作为一个 运行ge 继续...
注意:分区 运行ge 从“-9039572936575206977”到“-9019927187583981554”目前由节点 61 处理。
现在我正在向集群添加一个节点(不是种子节点)并且我 运行 ./nodetool ring
,
Two seed nodes with one new node (3 node)
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9207297847862311651
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9185516104965672922
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9135483708655236026
172.30.56.60 rack1 Up Normal 102.77 KiB 63.57% -9106737079237505681
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9078521344187921602
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9051897156173923903
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9049800264451581717
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9039572936575206977
172.30.56.62 rack1 Up Normal 103.7 KiB 71.70% -9031848008695747480
172.30.56.62 rack1 Up Normal 103.7 KiB 71.70% -9028974600706382491
172.30.56.60 rack1 Up Normal 102.77 KiB 63.57% -9019927187583981555
现在我观察到相同的分区 运行ge 被分配给了新节点 Node 62,
i.e, 运行ge 从 -9039572936575206977 到 -9031848008695747480 由节点 61 处理,但 -9031848008695747480 到 -9019927187583981555 由节点 62(新节点])处理,[=
1)那么这是否意味着,在集群中添加一个新节点将分配现有分区运行ge?
2) 有没有办法使用像 nodetool 这样的实用程序来观察 Cassandra 中的复制分区?
3) 我有 3 个节点,RF 为 2,如何单独在节点 62 中查看数据可用?
1) 添加节点时,Cassandra 将首先为要接管的新节点选择合适的范围。然后它将创建 256 个新的令牌范围,这些范围只是现有范围的一部分。这意味着新节点从集群中的许多节点(而不是在不使用 vnode 时每个 RF 仅一个)获取令牌,这使得流式传输速度更快。
2 和 3) 这是否回答了您的问题?
作为此
当我尝试使用 vNode 探索数据分区时,我有几个问题,
我尝试观察2个节点的分区分布(./nodetool ring
)
Two seed nodes (2 node)
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9207297847862311651
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9185516104965672922
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9135483708655236026
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -9106737079237505681
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9078521344187921602
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9051897156173923903
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9049800264451581717
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -9039572936575206977
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -9019927187583981555
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -9006071175095726599
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -8995415525773810853
172.30.56.60 rack1 Up Normal 102.77 KiB 100.00% -8949342263103866059
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8880432529087253108
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8859265089807316498
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8844286905987198633
172.30.56.61 rack1 Up Normal 105.19 KiB 100.00% -8832739468389117376
所以根据我在两个节点中的观察,节点 61 的值从 -9207297847862311651 到 -9185516104965672922 作为一个 运行ge 继续...
注意:分区 运行ge 从“-9039572936575206977”到“-9019927187583981554”目前由节点 61 处理。
现在我正在向集群添加一个节点(不是种子节点)并且我 运行 ./nodetool ring
,
Two seed nodes with one new node (3 node)
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9207297847862311651
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9185516104965672922
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9135483708655236026
172.30.56.60 rack1 Up Normal 102.77 KiB 63.57% -9106737079237505681
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9078521344187921602
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9051897156173923903
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9049800264451581717
172.30.56.61 rack1 Up Normal 104.12 KiB 64.73% -9039572936575206977
172.30.56.62 rack1 Up Normal 103.7 KiB 71.70% -9031848008695747480
172.30.56.62 rack1 Up Normal 103.7 KiB 71.70% -9028974600706382491
172.30.56.60 rack1 Up Normal 102.77 KiB 63.57% -9019927187583981555
现在我观察到相同的分区 运行ge 被分配给了新节点 Node 62, i.e, 运行ge 从 -9039572936575206977 到 -9031848008695747480 由节点 61 处理,但 -9031848008695747480 到 -9019927187583981555 由节点 62(新节点])处理,[=
1)那么这是否意味着,在集群中添加一个新节点将分配现有分区运行ge?
2) 有没有办法使用像 nodetool 这样的实用程序来观察 Cassandra 中的复制分区?
3) 我有 3 个节点,RF 为 2,如何单独在节点 62 中查看数据可用?
1) 添加节点时,Cassandra 将首先为要接管的新节点选择合适的范围。然后它将创建 256 个新的令牌范围,这些范围只是现有范围的一部分。这意味着新节点从集群中的许多节点(而不是在不使用 vnode 时每个 RF 仅一个)获取令牌,这使得流式传输速度更快。
2 和 3) 这是否回答了您的问题?