成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES Hang的應(yīng)急處理過程

IT那活兒 / 3694人閱讀
ES Hang的應(yīng)急處理過程

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!


  
某月某日06:00分:收到應(yīng)用電話反饋ES出現(xiàn)故障只能查詢不能寫入,我側(cè)第一時(shí)間登錄環(huán)境,經(jīng)過核查發(fā)現(xiàn)存在節(jié)點(diǎn)連接超時(shí)和節(jié)點(diǎn)丟失現(xiàn)象,集群無法正常訪問。


故障緊急處理方案

07:45分:因影響到割接進(jìn)度,決定先恢復(fù)業(yè)務(wù),后續(xù)再分析故障原因,暫定兩個(gè)方案:

  • 方案一:重啟ES,重啟需要重新分配分片,數(shù)據(jù)量太大,ES恢復(fù)時(shí)間會(huì)比較長(zhǎng)。
  • 方案二:將應(yīng)用暫時(shí)遷到新搭的ES集群,只需要應(yīng)用修改url就可使用。

08:58分:因需要緊急恢復(fù)業(yè)務(wù)采用方案二,在新集群創(chuàng)建相關(guān)的用戶并賦予權(quán)限,應(yīng)用創(chuàng)建索引并修改url將數(shù)據(jù)寫入到新集群,數(shù)據(jù)寫入速率在老集群的兩倍左右,業(yè)務(wù)恢復(fù)正常。

原集群恢復(fù)處理過程

1. 故障原因分析
經(jīng)過數(shù)小時(shí)的分析,找到故障原因,系統(tǒng)守護(hù)進(jìn)程異常導(dǎo)致主機(jī)hang死,進(jìn)而導(dǎo)致es節(jié)點(diǎn)丟失影響集群正常使用。
2. 關(guān)閉分片移動(dòng)(none為關(guān)閉,all為開啟)
curl -u admin:admin-XPUT 
http://xxxxxxxxxx:9200/_cluster/settings -H Content-Type: application/json -d
{"transient":{"cluster.routing.allocation.enable":"none"}}
3. 將內(nèi)存中的數(shù)據(jù)寫入磁盤,避免數(shù)據(jù)丟失
curl -u admin: admin -XPOST http://xxxxxxxx:9200/_flush/synced
4. 重啟各節(jié)點(diǎn)ES服務(wù)
ps -ef |grep elasticsearch
Kill -9 pid
./bin/elasticsearch -d
5. 開啟分片移動(dòng)

curl -u admin:admin-XPUT
http://xxxxxxxxxx:9200/_cluster/settings -H Content-Type: application/json -d
{"transient":{"cluster.routing.allocation.enable":"all"}}

數(shù)據(jù)遷回

因故障緊急恢復(fù)才用的是方案二,應(yīng)用在新集群上產(chǎn)生的部分?jǐn)?shù)據(jù),應(yīng)用遷回后需要將這部分?jǐn)?shù)據(jù)遷移導(dǎo)老集群,本次數(shù)據(jù)遷移使用的工具為elastic-dump。

1. 安裝elastic-dump工具

1.1 elastic-dump使用前置條件,需要安裝node.js
1)下載node.js 安裝包
官方下載地址:https://nodejs.org/dist/
2)解壓node.js 安裝包
tar -zxvf node-v10.16.3-linux-x64.tar.gz
3)配置環(huán)境變量
sudo vi /etc/profile
添加以下參數(shù):
NODE_HOME=/app/node-v10.16.3-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_HOME=$NODE_HOME/lib/node_modules
使環(huán)境變量生效:
source /etc/profile
4)查看版本號(hào)
node -v
npm -v
如能正常顯示版本,npm至此就安裝完成。
1.2 下載elastic-dump

1)官方下載地址

https://github.com/elasticsearch-dump/elasticsearch-dump?utm_source=dbweekly&utm_medium=email

2)解壓elastic-dump安裝包
unzip elasticdump.zip
3)安裝elastic-dump工具
npm install elasticdump
2. elastic-dump工具部分參數(shù)介紹
OPTIONS常用選項(xiàng)參數(shù)有:
  • --output

    目的地位置。

  • --input

    源位置。

  • --limit

    用于限定每一批量操作時(shí)進(jìn)行遷移的文檔對(duì)象數(shù)目,默認(rèn)值是100,也就是每一次從SOURCE到DESTINATION文檔對(duì)象數(shù)量。

  • --quiet

    只輸出錯(cuò)誤信息,該參數(shù)的默認(rèn)值是false,如果該參數(shù)設(shè)置為true??刂婆_(tái)中關(guān)于數(shù)據(jù)遷移的進(jìn)度信息不可見。

  • --type

    數(shù)據(jù)遷移類型,可選值有analyzer, data, mapping三種。在ITOA由于統(tǒng)一版本的軟件平臺(tái)analyzer是相同的,所以進(jìn)行索引遷移時(shí),只需要遷移data, mapping兩種類型的數(shù)據(jù)。該參數(shù)的默認(rèn)選項(xiàng)是data。

  • --ignore-errors

    該參數(shù)用于控制數(shù)據(jù)遷移過程遇到錯(cuò)誤數(shù)據(jù)的處理策略。默認(rèn)情況下為false,表示遇到錯(cuò)誤數(shù)據(jù)時(shí),停止數(shù)據(jù)遷移。

  • --fileSize
    單個(gè)導(dǎo)出文件大小設(shè)置,支持文件拆分。此值必須是**字節(jié)**模塊支持的字符串。
    以下縮寫必須用于表示單位大?。?/span>
    b代表字節(jié);
    kb代表千字節(jié);
    mb代表兆字節(jié);
    gb代表千兆字節(jié).
  • --help
    陳列該工具使用時(shí)的幫助信息。
3. 使用elastic-dump工具導(dǎo)出數(shù)據(jù)(設(shè)置每個(gè)json文件為50g,一次導(dǎo)出10000行數(shù)據(jù),只輸出錯(cuò)誤日志.)
nohup elastic-dump/node_modules/elasticdump/bin/elasticdump 
--input=http://user:password@IP:port/index_name --
output=/app/xxxxxx.json --fileSize=50gb --limit=10000 --quiet=true&
4. 導(dǎo)入數(shù)據(jù)(一次導(dǎo)入5000行數(shù)據(jù),只輸出錯(cuò)誤日志.)
nohup elastic-dump/node_modules/elasticdump/bin/elasticdump 
--input=/app/xxxxxxxx.json.split-0 --
output=http://user:password@IP:port/index_name --limit=5000 --quiet=true&
5. 數(shù)據(jù)遷移總結(jié)
本次遷移的索引在ES中查詢?cè)撍饕笮」灿?jì)2T,除去副本為1T,耗時(shí)64小時(shí)左右,實(shí)際導(dǎo)出文件44個(gè)共計(jì)2296G,ES默認(rèn)是LZ4壓縮算法,壓縮比在2左右。

本文作者:劉 能(上海新炬王翦團(tuán)隊(duì))

本文來源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129231.html

相關(guān)文章

  • ES6-Promise

    摘要:方法沒有設(shè)置返回值。解決思路是,當(dāng)遇到任務(wù)的返回值是一個(gè)或者,并且有自己的方法的時(shí)候,就將它當(dāng)做是一個(gè)對(duì)象處理,等這個(gè)對(duì)象中的方法處理到的時(shí)候,把作為參數(shù)輸出傳遞給后續(xù)的任務(wù)。 前段時(shí)間看到關(guān)于microTask的文章,《Tasks, microTasks, queues and schedules》,感覺有必要澄清一下。本篇里用setTimeout來實(shí)現(xiàn)的Promise,和瀏覽器原生...

    dackel 評(píng)論0 收藏0
  • 重新鞏固JS(三)——JavaScript語句

    摘要:重新鞏固系列,都是比較基礎(chǔ)的東西,可以進(jìn)行查漏補(bǔ)缺,很快看完,這是第三篇。其中,部分可以省略條件語句語句例子為,小于但大于,故輸出語句當(dāng)表達(dá)式的值等于值時(shí),執(zhí)行語句,遇到語句則跳出語句,若都沒匹配到值,則執(zhí)行中的語句。重新鞏固JS系列,都是比較基礎(chǔ)的東西,可以進(jìn)行查漏補(bǔ)缺,很快看完,這是第三篇。 其他JS重新鞏固系列: 重新鞏固JS(一)——JavaScript基本類型 重新鞏固JS(二)...

    tunny 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<