with the same id but is a different node instance

本文详细解析了在配置Elasticsearch集群过程中遇到的节点ID冲突问题。通过删除data目录下的nodes文件夹,成功解决了withthesameidbutisadifferentnodeinstance的错误,恢复正常集群通讯。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在配置es集群时,复制一份elasticsearch重命名node-2,elasticsearch.yml配置正确,但是怎么都联不通,错误信息 with the same id but is a different node instance,百度,原来每次启动es,会在data目录下生成nodes文件夹,和当前配置的节点冲突,删掉就ok了

#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll INF = 0x3f3f3f3f3f3f3f3f; // 修正1:扩大INF范围 #define rep(i,s,t) for(register ll i = s;i <= t;++i) #define per(i,t,s) for(register ll i = t;i >= s;--i) const ll N = 1e5 + 5; const ll M = 5e5 + 5; // 4*n满足1e5数据 ll n, m, q, a[N], b[N]; class segment_tree { private: struct node { ll l, r, maxn, minn; } t[M]; inline ll lson(ll p) { return p << 1; } inline ll rson(ll p) { return p << 1 | 1; } inline void push_up(ll p) { t[p].maxn = max(t[lson(p)].maxn, t[rson(p)].maxn); t[p].minn = min(t[lson(p)].minn, t[rson(p)].minn); } public: void build(ll p, ll l, ll r) { t[p].l = l; t[p].r = r; if(l == r) { t[p].maxn = t[p].minn = 0; // B树初始0 return; } ll mid = (l + r) >> 1; build(lson(p), l, mid); build(rson(p), mid+1, r); push_up(p); } void update(ll p, ll x, ll k) { if(t[p].l == t[p].r) { t[p].maxn = t[p].minn = k; return; } ll mid = (t[p].l + t[p].r) >> 1; if(x <= mid) update(lson(p), x, k); else update(rson(p), x, k); push_up(p); } ll query_max(ll p, ll l, ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].maxn; ll mid = (t[p].l + t[p].r) >> 1; ll ans = -INF; if(l <= mid) ans = max(ans, query_max(lson(p), l, r)); if(r > mid) ans = max(ans, query_max(rson(p), l, r)); return ans; } ll query_min(ll p, ll l, ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].minn; ll mid = (t[p].l + t[p].r) >> 1; ll ans = INF; if(l <= mid) ans = min(ans, query_min(lson(p), l, r)); if(r > mid) ans = min(ans, query_min(rson(p), l, r)); return ans; } }; class dual_segment_tree { private: struct node { ll l, r, maxn, minn; } t[M]; inline ll lson(ll p) { return p << 1; } inline ll rson(ll p) { return p << 1 | 1; } inline void push_up(ll p) { t[p].maxn = max(t[lson(p)].maxn, t[rson(p)].maxn); t[p].minn = min(t[lson(p)].minn, t[rson(p)].minn); } public: void build(ll p, ll l, ll r) { t[p].l = l; t[p].r = r; if(l == r) { // 修正2:叶子节点初始化为无效值 t[p].maxn = -INF; t[p].minn = INF; return; } ll mid = (l + r) >> 1; build(lson(p), l, mid); build(rson(p), mid+1, r); push_up(p); } void update(ll p, ll x, ll k, bool opt) { if(t[p].l == t[p].r) { if(opt) { // 设置为无效值 t[p].maxn = -INF; t[p].minn = INF; } else { // 正常更新 t[p].maxn = t[p].minn = k; } return; } ll mid = (t[p].l + t[p].r) >> 1; if(x <= mid) update(lson(p), x, k, opt); else update(rson(p), x, k, opt); push_up(p); } ll query_max(ll p, ll l, ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].maxn; ll mid = (t[p].l + t[p].r) >> 1; ll ans = -INF; if(l <= mid) ans = max(ans, query_max(lson(p), l, r)); if(r > mid) ans = max(ans, query_max(rson(p), l, r)); return ans; } ll query_min(ll p, ll l, ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].minn; ll mid = (t[p].l + t[p].r) >> 1; ll ans = INF; if(l <= mid) ans = min(ans, query_min(lson(p), l, r)); if(r > mid) ans = min(ans, query_min(rson(p), l, r)); return ans; } }; segment_tree t; dual_segment_tree pos, neg; inline ll read() { ll x = 0, y = 1; char c = getchar(); while(c < '0' || c > '9') { if(c == '-') y = -y; c = getchar(); } while(c >= '0' && c <= '9') { x = (x << 3) + (x << 1) + (c ^ '0'); c = getchar(); } return x * y; } inline void write(ll x) { if(x < 0) { putchar('-'); write(-x); return; } if(x > 9) write(x / 10); putchar(x % 10 + '0'); } int main() { n = read(); m = read(); q = read(); pos.build(1, 1, n); neg.build(1, 1, n); rep(i, 1, n) { a[i] = read(); if(a[i] >= 0) { pos.update(1, i, a[i], false); neg.update(1, i, a[i], true); // 负数树设为无效 } else { pos.update(1, i, a[i], true); // 非负树设为无效 neg.update(1, i, a[i], false); } } t.build(1, 1, m); rep(i, 1, m) { b[i] = read(); t.update(1, i, b[i]); } while(q--) { ll l1 = read(), r1 = read(), l2 = read(), r2 = read(); ll maxb = t.query_max(1, l2, r2); ll minb = t.query_min(1, l2, r2); ll max_pos = pos.query_max(1, l1, r1); ll min_pos = pos.query_min(1, l1, r1); ll max_neg = neg.query_max(1, l1, r1); ll min_neg = neg.query_min(1, l1, r1); ll ans = -INF; if(max_pos != -INF) ans = max(ans, max_pos * minb); if(min_pos != INF) ans = max(ans, min_pos * minb); if(max_neg != -INF) ans = max(ans, max_neg * maxb); if(min_neg != INF) ans = max(ans, min_neg * maxb); write(ans); putchar('\n'); } return 0; } #include <bits/stdc++.h> using namespace std; typedef long long ll; #define INF 0x3f3f3f3f3f3f3f3f #define rep(i,s,t) for(register ll i = s;i <= t;++i) #define per(i,t,s) for(register ll i = t;i >= s;--i) const ll N = 1e5 + 5; const ll M = 5e5 + 5; ll n; ll m; ll q; ll ans = -INF; ll a[N] = {}; ll b[N] = {}; class segment_tree { private: struct node { ll l; ll r; ll maxn; ll minn; }; node t[M]; inline ll lson(ll p) { return p << 1; } inline ll rson(ll p) { return p << 1 | 1; } inline void push_up(ll p) { t[p].maxn = max(t[lson(p)].maxn,t[rson(p)].maxn); t[p].minn = min(t[lson(p)].minn,t[rson(p)].minn); } public: inline void build(ll p,ll l,ll r) { t[p].l = l; t[p].r = r; if(l == r) { t[p].maxn = 0; t[p].minn = 0; return; } ll mid = l + r >> 1; build(lson(p),l,mid); build(rson(p),mid + 1,r); push_up(p); } inline void update(ll p,ll x,ll k) { if(t[p].l == t[p].r) { t[p].maxn = k; t[p].minn = k; return; } ll mid = t[p].l + t[p].r >> 1; if(x <= mid) update(lson(p),x,k); else update(rson(p),x,k); push_up(p); } inline ll query_max(ll p,ll l,ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].maxn; ll ans = -INF; ll mid = t[p].l + t[p].r >> 1; if(l <= mid) ans = max(ans,query_max(lson(p),l,r)); if(r > mid) ans = max(ans,query_max(rson(p),l,r)); return ans; } inline ll query_min(ll p,ll l,ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].minn; ll ans = INF; ll mid = t[p].l + t[p].r >> 1; if(l <= mid) ans = min(ans,query_min(lson(p),l,r)); if(r > mid) ans = min(ans,query_min(rson(p),l,r)); return ans; } }; class dual_segment_tree { private: struct node { ll l; ll r; ll maxn; ll minn; }; node t[M]; inline ll lson(ll p) { return p << 1; } inline ll rson(ll p) { return p << 1 | 1; } inline void push_up(ll p) { t[p].maxn = max(t[lson(p)].maxn,t[rson(p)].maxn); t[p].minn = min(t[lson(p)].minn,t[rson(p)].minn); } public: inline void build(ll p,ll l,ll r) { t[p].l = l; t[p].r = r; t[p].maxn = -INF; t[p].minn = INF; if(l == r) return; ll mid = l + r >> 1; build(lson(p),l,mid); build(rson(p),mid + 1,r); push_up(p); } inline void update(ll p,ll x,ll k,bool opt) { if(t[p].l == t[p].r) { if(opt) { t[p].maxn = -INF; t[p].minn = INF; } else { t[p].maxn = k; t[p].minn = k; } return; } ll mid = t[p].l + t[p].r >> 1; if(x <= mid) update(lson(p),x,k,opt); else update(rson(p),x,k,opt); push_up(p); } inline ll query_max(ll p,ll l,ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].maxn; ll ans = -INF; ll mid = t[p].l + t[p].r >> 1; if(l <= mid) ans = max(ans,query_max(lson(p),l,r)); if(r > mid) ans = max(ans,query_max(rson(p),l,r)); return ans; } inline ll query_min(ll p,ll l,ll r) { if(l <= t[p].l && t[p].r <= r) return t[p].minn; ll ans = INF; ll mid = t[p].l + t[p].r >> 1; if(l <= mid) ans = min(ans,query_min(lson(p),l,r)); if(r > mid) ans = min(ans,query_min(rson(p),l,r)); return ans; } }; segment_tree t; dual_segment_tree pos; dual_segment_tree neg; inline ll read() { ll x = 0; ll y = 1; char c = getchar(); while(c < '0' || c > '9') { if(c == '-') y = -y; c = getchar(); } while(c >= '0' && c <= '9') { x = (x << 3) + (x << 1) + (c ^ '0'); c = getchar(); } return x * y; } inline void write(ll x) { if(x < 0) { putchar('-'); write(-x); return; } if(x > 9) write(x / 10); putchar(x % 10 + '0'); } int main() { n = read(); m = read(); q = read(); pos.build(1,1,n); neg.build(1,1,n); rep(i,1,n) { a[i] = read(); if(a[i] >= 0) { pos.update(1,i,a[i],false); neg.update(1,i,a[i],true); } else { pos.update(1,i,a[i],true); neg.update(1,i,a[i],false); } } rep(i,1,m) { b[i] = read(); t.update(1,i,b[i]); } rep(o,1,q) { ans = -INF; ll l1 = 0; ll r1 = 0; ll l2 = 0; ll r2 = 0; l1 = read(); r1 = read(); l2 = read(); r2 = read(); ll max_t = t.query_max(1,l2,r2); ll min_t = t.query_min(1,l2,r2); ll max_pos = pos.query_max(1,l1,r1); ll min_pos = pos.query_min(1,l1,r1); ll max_neg = neg.query_max(1,l1,r1); ll min_neg = neg.query_min(1,l1,r1); if(max_pos != -INF) ans = max(ans,max_pos * min_t); if(min_pos != INF) ans = max(ans,min_pos * min_t); if(max_neg != -INF) ans = max(ans,max_neg * max_t); if(min_neg != INF) ans = max(ans,min_neg * max_t); write(ans); putchar('\n'); } return 0; } 第二段代码错在哪里
最新发布
08-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值