Elastic數據遷移方法注意事項

      網友投稿 1376 2022-05-28

      需求

      ES集群Cluster_A里的數據(某個索引或某幾個索引),需要遷移到另外一個ES集群Cluster_B中。

      環境

      Linux:Centos7 / Centos6.5/ Centos6.4

      Elastic:5.2.0

      總結的方法

      查詢并導出數據

      拷貝ES物理目錄/文件

      ES快照數據備份和恢復

      遷移方法

      分別進行以上方法的詳細介紹:

      查詢并導出數據

      通過ES提供的查詢API,寫各種程序,把數據導出csv,或者把數據查詢出來,直接入庫到新的ES集群中。

      #coding=utf-8 ?import?osimport?sysimport?pyes ? ? index_list?=?[ ????["index_A",?"type_A"], ????["index_B",?"type_B"], ????["index_C",?"type_C"], ] ? ? ES_URL?=?"http://192.168.1.1:9200/"NEW_ES_URL?=?"http://192.168.2.1:8200/" ?def?main(): ????for?_index,?_type?in?index_list: ????????conn?=?pyes.es.ES(ES_URL) ????????search?=?pyes.query.MatchAllQuery().search(bulk_read=10000) ????????hits?=?conn.search(search,?_index,?_type,?scan=True,?scroll="30m",?model=lambda?_,hit:?hit) ????????? ????????conn2?=?pyes.es.ES(NEW_ES_URL) ????????count?=?0? ????????for?hit?in?hits: ????????????conn2.index(hit['_source'],?_index,?_type,?hit['_id'],?bulk=True) ????????????count?+=?1 ????????????if?count?%?10000?==?0:????????????????print?count ????????????????conn2.flush() ????????conn2.flush() ????????conn2?=?None ? ????????conn?=?None ? ?if?__name__?==?'__main__': ????main()

      需要安裝python的pyes模塊,注意pyes的版本,此處的版本為:pyes.0.20.1

      用了查詢ES的scroll方式,也有一種直接通過ES的DSL查詢語句用分頁from和size查詢,但是ES的分頁查詢到了千萬級別之后,from就會慢的出奇,甚至報錯,不信的同學去嘗試吧,等著功虧一簣….

      客戶現場的數據級別是物理存儲大概在5T(一個副本),條數大概1百億。現場使用該方法親測之后,未解決ES遷移的問題。pyes在約到后面查詢越慢,最后ES報錯…..

      百萬、千萬級別條數的數據,可以嘗試該方法。

      拷貝ES物理目錄/文件

      ES的文件存在磁盤中,把物理文件一模一樣拷貝一份到新的集群環境中,達到數據遷移的效果。

      1.?找到ES的存儲目錄,一般可以到elasticsearch.yml中找到path.data的配置? 2.?集群下一般會有多個節點,所以ES的存儲目錄也就有多個? ? 3.?一般ES的存儲目錄下,會存儲一個集群名字一樣的文件夾,需要拷貝的就是這個文件夾.? ? 4.?環境如下: 舊集群: 集群名字:Cluster_A 分片數:6機器A:一個節點?192.168.1.1node0??數據存儲目錄:/opt/data1,/opt/data2 機器B:三個節點?192.168.1.2node1??數據存儲目錄:/opt/data1,/opt/data2 node2??數據存儲目錄:/opt/data3,/opt/data4 node3??數據存儲目錄:/opt/data5,/opt/data6 ? 新的集群: 集群名字:Cluster_A 分片數:6機器A:一個節點?192.168.2.1node0??數據存儲目錄:/opt/data1,/opt/data2 機器B:三個節點?192.168.2.2node1??數據存儲目錄:/opt/data1,/opt/data2 node2??數據存儲目錄:/opt/data3,/opt/data4 node3??數據存儲目錄:/opt/data5,/opt/data6? ? 5.?遷移代碼如下: 新集群機器A:192.168.2.1如下操作 scp?–r?root@192.168.1.1:/opt/data1/Cluster_A?/opt/data1/ scp?–r?root@192.168.1.1:/opt/data2/Cluster_A?/opt/data2/ ? 新集群機器B:192.168.2.2如下操作 scp?–r?root@192.168.1.2:/opt/data1/Cluster_A?/opt/data1/ scp?–r?root@192.168.1.2:/opt/data2/Cluster_A?/opt/data2/ scp?–r?root@192.168.1.2:/opt/data3/Cluster_A?/opt/data3/ scp?–r?root@192.168.1.2:/opt/data4/Cluster_A?/opt/data4/ scp?–r?root@192.168.1.2:/opt/data5/Cluster_A?/opt/data5/ scp?–r?root@192.168.1.2:/opt/data6/Cluster_A?/opt/data6/

      ES快照數據備份和恢復

      使用ES官網提供的快照備份方法,將舊集群ES的索引進行備份,拷貝備份出來的所有文件,在新的集群中進行恢復。

      官網寫的非常簡單:先創建倉庫(repository),再往倉庫里添加一個快照(snapshot),查看備份狀態,That’s all。但是實踐需要麻煩很多了。

      索引很大,需要有足夠的空間存儲備份出來的數據,掛載磁盤和設置path.repo來解決該問題。

      在簡歷倉庫的時候,會報錯,找不到快照目錄/opt/backup_es

      Elastic數據遷移方法及注意事項

      需要在elasticsearch.yml中設置path.repo: /opt/backup_es

      掛載的磁盤需要賦權限,讓ES的用戶能讀寫。Sshfs的時候加上 -oallow_other;Mount的時候需要對目錄進行賦權限chown

      Mount nfs的時候需要注意配置:vi /etc/exports

      /opt/data07192.168.1.1(rw,no_root_squash)/opt/data07192.168.1.2(rw,no_root_squash)

      新集群中如果有索引和備份出來的索引有沖突(索引已存在),恢復不成功。

      解決:可以將舊的索引重命名,然后導入新集群中。導入成功后,將兩個索引建立一個別名。

      恢復期間,整個集群會變成紅色(集群不可用),最好半夜的時候進行。

      數據遷移 Elasticsearch 遷移

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Java崗大廠面試百日沖刺 - 日積月累,每日三題【Day28】—— 數據庫5
      下一篇:五款企業運維監控工具簡單介紹-行云管家
      相關文章
      亚洲一卡2卡4卡5卡6卡残暴在线| 久久99亚洲网美利坚合众国| 亚洲Av高清一区二区三区| 亚洲卡一卡2卡三卡4卡无卡三 | 亚洲国产午夜精品理论片| 亚洲色欲www综合网| 中文字幕亚洲色图| 中文字幕在线观看亚洲| 亚洲自偷自拍另类图片二区| 亚洲精品视频专区| 亚洲成在人线电影天堂色| 91亚洲性爱在线视频| 亚洲影视一区二区| 亚洲av乱码一区二区三区香蕉 | 亚洲自偷自拍另类图片二区| 精品无码一区二区三区亚洲桃色| 亚洲伊人久久大香线蕉苏妲己| 亚洲一区二区三区首页| 亚洲美女大bbbbbbbbb| 亚洲免费黄色网址| 亚洲综合在线一区二区三区| 亚洲乱色熟女一区二区三区蜜臀| 亚洲AV无码精品国产成人| 久久久亚洲精华液精华液精华液 | 久久亚洲精品11p| 亚洲成?v人片天堂网无码| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲噜噜噜噜噜影院在线播放 | 亚洲人成网站18禁止久久影院| 亚洲一级免费毛片| 亚洲日韩精品国产3区 | 亚洲成年人在线观看| 亚洲精品视频专区| 在线观看亚洲AV每日更新无码| 亚洲爆乳精品无码一区二区| 亚洲国产电影av在线网址| 国产乱辈通伦影片在线播放亚洲 | 亚洲不卡无码av中文字幕| 亚洲色偷偷偷鲁综合| 亚洲人成网www| 亚洲AV无码国产精品色|