在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

3種常用的Elasticsearch數據遷移方案

馬哥Linux運維 ? 來源:奇妙的Linux世界 ? 作者:奇妙的Linux世界 ? 2022-04-02 10:50 ? 次閱讀

如果準備將自建的 elasticsearch 遷移上云,或者的遷移到其他es集群內,可以根據自己的業務需要選擇合適的遷移方案。如果業務可以停服或者可以暫停寫操作,可以使用以下幾種方式進行數據遷移:

  • COS 快照,即Cloud Object Storage
  • logstash
  • elasticsearch-dump

各種遷移方式的對比如下:

遷移方式 適用場景
COS 快照 數據量大的場景(GB、TB、PB 級別)對遷移速度要求較高的場景
logstash 遷移全量增量數據,且對實時性要求不高的場景需要對遷移的數據通過 es query 進行簡單的過濾的場景需要對遷移的數據進行復雜的過濾或處理的場景版本跨度較大的數據遷移場景,如 5.x 版本遷移到 6.x 版本或 7.x 版本
elasticsearch-dump 數據量較小的場景

1COS 快照

基于 COS 快照的遷移方式是使用 ES 的snapshot api接口進行遷移,基本原理就是從源 ES 集群創建索引快照,然后在目標 ES 集群中進行恢復。通過 snapshot 方式進行數據遷移時,特別需要注意 ES 的版本問題:

目標 ES 集群的主版本號(如5.6.4中的5為主版本號)要大于等于源 ES 集群的主版本號。
1.x 版本的集群創建的快照不能在 5.x 版本中恢復。

在源 ES 集群中創建 repository

創建快照前必須先創建 repository 倉庫,一個 repository 倉庫可以包含多份快照文件,repository 主要有以下幾種類型。

  • fs:共享文件系統,將快照文件存放于文件系統中。
  • url:指定文件系統的 URL 路徑,支持協議:http、https、ftp、file、jar。
  • s3:AWS S3 對象存儲,快照存放于 S3 中,以插件形式支持,安裝該插件請參考repository-s3[1]
  • hdfs:快照存放于 hdfs 中,以插件形式支持,安裝該插件請參考repository-hdfs[2]
  • cos:快照存放于騰訊云COS對象存儲中,以插件形式支持,安裝該插件請參考cos-repository[3]

如果需要從自建 ES 集群遷移至騰訊云的 ES 集群,可以直接使用 COS 類型倉庫。但需要先在自建 ES 集群上安裝 cos-repository 插件(安裝插件后需要重啟集群才能使用),先把自建 ES 集群中的數據先備份到 COS,然后在騰訊云上的 ES 集群中恢復出來,以完成數據的遷移。

如果自建 ES 的集群不方便安裝 cos-repository 插件,但是已經安裝 repository-s3 或者 repository-hdfs 插件,則可以先把數據備份到 S3 或者 HDFS 中,然后把 S3 或者 HDFS 中備份好的文件上傳到騰訊云 COS 中,之后在騰訊云上的集群中進行恢復。

通過 COS 快照進行數據遷移時,需要先創建 COS 倉庫,您可以通過如下命令創建倉庫:

PUT _snapshot/my_cos_backup
{
    "type": "cos",
    "settings": {
        "app_id": "xxxxxxx",
        "access_key_id": "xxxxxx",
        "access_key_secret": "xxxxxxx",
        "bucket": "xxxxxx",
        "region": "ap-guangzhou",
        "compress": true,
        "chunk_size": "500mb",
        "base_path": "/"
    }
}
  • app_id:騰訊云賬號 APPID。
  • access_key_id:騰訊云 API 密鑰 SecretId。
  • access_key_secret:騰訊云 API 密鑰 SecretKey。
  • bucket:COS Bucket 名字,不帶 appId 后綴的 bucket 名
  • region:COS Bucket 地域,必須與 ES 集群同地域。
  • base_path:備份目錄。

在源 ES 集群中創建 snapshot

調用 snapshot api 創建快照以備份索引數據,創建快照時可以指定只對部分索引進行備份,也可以備份所有的索引,具體的 api 接口參數可以查閱 官方文檔。

備份所有索引

將源 ES 集群中的所有索引備份到my_cos_backup倉庫下,并命名為snapshot_1

PUT _snapshot/my_cos_backup/snapshot_1

這個命令會立刻返回,并在后臺異步執行直到結束。如果希望創建快照命令阻塞執行,可以添加wait_for_completion參數:

PUT _snapshot/my_cos_backup/snapshot_1?wait_for_completion=true

命令執行的時間與索引大小相關。

備份指定索引

您可以在創建快照的時候指定要備份的索引:

PUT _snapshot/my_cos_backup/snapshot_2
{
    "indices": "index_1,index_2"
}

參數 indices 的值為多個索引的時候,需要用,隔開且不能有空格。

查看快照狀態

通過以下命令檢查快照是否備份完成,返回結果中的state字段為SUCCESS則說明快照已經備份成功:

GET _snapshot/my_cos_backup/snapshot_1

在目標 ES 集群中創建 repository

在目標 ES 集群中創建倉庫和在源 ES 集群中創建倉庫完全相同。

從快照恢復

將快照中備份的所有索引都恢復到 ES 集群中:

POST _snapshot/my_cos_backup/snapshot_1/_restore

如果 snapshot_1 包括5個索引,則這5個索引都會被恢復到 ES 集群中。您還可以使用附加的選項對索引進行重命名。該選項允許您通過模式匹配索引名稱,并通過恢復進程提供一個新名稱。如果您想在不替換現有數據的前提下,恢復舊數據來驗證內容或進行其他操作,則可以使用該選項。從快照里恢復單個索引并提供一個替換的名稱:

POST /_snapshot/my_cos_backup/snapshot_1/_restore
{
    "indices": "index_1",
    "rename_pattern": "index_(.+)",
    "rename_replacement": "restored_index_$1"
}
  • indices:只恢復 index_1 索引,忽略快照中存在的其他索引。
  • rename_pattern:查找所提供的模式能匹配上的正在恢復的索引。
  • rename_replacement:將匹配的索引重命名成替代的模式。

查看索引恢復狀態

您可以通過調用_recoveryAPI,查看指定索引恢復的進度:

GET index_1/_recovery

另外可以通過調用以下 API,查看指定索引的狀態,返回結果中statusgreen,則說明索引已經完全恢復:

GET _cluster/health/index_1

2logstash

logstash 支持從一個 ES 集群中讀取數據然后寫入到另一個 ES 集群,因此可以使用 logstash 進行數據遷移,使用 logstash 進行遷移前,需要注意以下幾點:

  • 需要在和騰訊云上的 ES 集群相同的 VPC 下創建 CVM,部署 logstash,同時保證該 CVM 能夠訪問到源 ES 集群。
  • 用于部署 logstash 的 CVM 最好選擇比較高的配置,例如 CPU 為16核,內存為32GB。
  • logstash 應該和目標 ES 集群的主版本號相同,例如目標 ES 集群為6.8.2版本,則 logstash 也需要使用6.8版本。
  • 需要特別注意索引 type 的問題,因為 ES 的不同版本對索引 type 的約束不同,跨大版本遷移 ES 集群時可能出現因為索引的 type 而導致寫入目標集群失敗等的問題。具體可參考 logstash-output-elasticsearch 插件中對document_type參數的說明。

一個常用的使用 logstash 進行跨集群數據遷移的配置文件如下:

input {
    elasticsearch {
        hosts => "1.1.1.1:9200"
        index => "*"
        docinfo => true
        size => 5000
        scroll => "5m"
      }
}

output {
    elasticsearch {
        hosts => ["http://2.2.2.2:9200"]
        user => "elastic"
        password => "your_password"
        index => "%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
    }
}

上述配置文件將源 ES 集群的所有索引同步到目標集群中,同時也可以設置只同步指定的索引,利用 logstash 進行遷移的更多功能可查閱 logstash-input-elasticsearch 和logstash-output-elasticsearch[4]

3elasticsearch-dump

elasticsearch-dump 是一款開源的 ES 數據遷移工具,github 地址[5]

  1. 安裝 elasticsearch-dump

    elasticsearch-dump 使用 node.js 開發,可使用 npm 包管理工具直接安裝:

    npminstallelasticdump-g
    
  2. 主要參數說明

    --input:源地址,可為 ES 集群 URL、文件或 stdin,可指定索引,格式為:{protocol}://{host}:{port}/{index}
    --input-index:源ES集群中的索引
    --output:目標地址,可為 ES 集群地址 URL、文件或 stdout,可指定索引,格式為:{protocol}://{host}:{port}/{index}
    --output-index:目標ES集群的索引
    --type:遷移類型,默認為data,表明只遷移數據,可選settings,analyzer,data,mapping,alias
    
  3. 如果集群有安全認證,可以參照下面的方法使用 reindex 集群鑒權。在對應的 http 后面,添加 user:password@ 參考樣例elasticsearch-dump --input=http://192.168.1.2:9200/my_index --output=http://user:password@192.168.1.2:9200/my_index --type=data

  4. 遷移單個索引

    以下操作通過 elasticdump 命令將集群172.16.0.39中的 companydatabase 索引遷移至集群172.16.0.20。

    第一條命令先將索引的 settings 先遷移,如果直接遷移 mapping 或者 data 將失去原有集群中索引的配置信息如分片數量和副本數量等,當然也可以直接在目標集群中將索引創建完畢后再同步 mapping 與 data。

    elasticdump--input=http://172.16.0.39:9200/companydatabase--output=http://172.16.0.20:9200/companydatabase--type=settings
    elasticdump--input=http://172.16.0.39:9200/companydatabase--output=http://172.16.0.20:9200/companydatabase--type=mapping
    elasticdump--input=http://172.16.0.39:9200/companydatabase--output=http://172.16.0.20:9200/companydatabase--type=data
    
  5. 遷移所有索引

    以下操作通過 elasticdump 命令將集群172.16.0.39中的所有索引遷移至集群172.16.0.20。

    此操作并不能遷移索引的配置,例如分片數量和副本數量,必須對每個索引單獨進行配置的遷移,或者直接在目標集群中將索引創建完畢后再遷移數據。

    elasticdump--input=http://172.16.0.39:9200--output=http://172.16.0.20:9200
    

4總結

  1. elasticsearch-dump 和 logstash 做跨集群數據遷移時,都要求用于執行遷移任務的機器可以同時訪問到兩個集群,因為網絡無法連通的情況下就無法實現遷移。而使用 snapshot 的方式則沒有這個限制,因為 snapshot 方式是完全離線的。因此 elasticsearch-dump 和 logstash 遷移方式更適合于源 ES 集群和目標 ES 集群處于同一網絡的情況下進行遷移。而需要跨云廠商的遷移,可以選擇使用 snapshot 的方式進行遷移,例如從阿里云 ES 集群遷移至騰訊云 ES 集群,也可以通過打通網絡實現集群互通,但是成本較高。
  2. elasticsearch-dump 工具和 MySQL 數據庫用于做數據備份的工具 mysqldump 類似,都是邏輯備份,需要將數據一條一條導出后再執行導入,所以適合數據量小的場景下進行遷移。
  3. snapshot 的方式適合數據量大的場景下進行遷移。

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據遷移
    +關注

    關注

    0

    文章

    72

    瀏覽量

    6961
  • Elasticsearch
    +關注

    關注

    0

    文章

    29

    瀏覽量

    2844

原文標題:3 種常用的 Elasticsearch 數據遷移方案

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    在華為云上通過 Docker 容器部署 Elasticsearch 并進行性能評測

    ? 2.2 安裝 Docker ? 2.3 啟動 Docker ? 3. 使用Docker部署Elasticsearch ? 3.1 拉取Elasticsearch鏡像 ? 3.2 啟動
    的頭像 發表于 01-13 13:36 ?47次閱讀
    在華為云上通過 Docker 容器部署 <b class='flag-5'>Elasticsearch</b> 并進行性能評測

    AKI跨語言調用庫神助攻C/C++代碼遷移至HarmonyOS NEXT

    本帖最后由 HarmonyOS開發者社區 于 2025-1-3 15:41 編輯 隨著HarmonyOS NEXT的發布,越來越多的應用加速推進鴻蒙化。在這一過程中,如何高效遷移原有資產、簡化
    發表于 01-02 17:08

    構建高效搜索解決方案Elasticsearch &amp; Kibana 的完美結合

    前言 構建高效搜索解決方案,FlexusX 服務器與 Elasticsearch & Kibana 的完美結合,為企業帶來云端搜索新體驗。FlexusX 實例以其卓越性能與靈活擴展性,確保高并發搜索
    的頭像 發表于 12-27 13:48 ?102次閱讀
    構建高效搜索解決<b class='flag-5'>方案</b>,<b class='flag-5'>Elasticsearch</b> &amp; Kibana 的完美結合

    HarmonyOS Next 應用元服務開發-分布式數據對象遷移數據文件資產遷移

    使用分布式數據對象遷移數據,當需要遷移數據較大(100KB以上)或需要遷移文件時,可以使用分布式數據
    發表于 12-24 10:11

    HarmonyOS Next 應用元服務開發-分布式數據對象遷移數據權限與基礎數據

    使用分布式數據對象遷移數據,當需要遷移數據較大(100KB以上)或需要遷移文件時,可以使用分布式數據
    發表于 12-24 09:40

    MySQL數據遷移的流程介紹

    本文介紹了一次 MySQL 數據遷移的流程,通過方案選型、業務改造、雙寫遷移最終實現了億級數據遷移
    的頭像 發表于 11-25 09:20 ?198次閱讀
    MySQL<b class='flag-5'>數據</b><b class='flag-5'>遷移</b>的流程介紹

    Elasticsearch 再次開源

    Elasticsearch 和 Kibana 又可以被稱為開源了。很難表達這句話讓我有多高興。我激動得簡直要跳起來了。我們 Elastic 的所有人都是如此。開源是我的 DNA。這也是Elastic的DNA。能夠再次將 Elasticsearch 稱為開源,我感到非常高興
    的頭像 發表于 11-13 12:14 ?162次閱讀
    <b class='flag-5'>Elasticsearch</b> 再次開源

    emc數據遷移工具的使用指南

    全球領先的數據存儲解決方案提供商,提供了多種數據遷移工具,以幫助企業實現這一目標。 準備工作 需求分析 :在開始遷移之前,首先要明確
    的頭像 發表于 11-01 15:55 ?309次閱讀

    云計算遷移的步驟與注意事項

    評估,確保其能滿足業務需求。 制定遷移計劃 :包括時間表、任務分解、責任分配等,確保遷移過程有條不紊。 備份數據 :使用專業備份軟件或工具,對原有數據進行全面備份,確保
    的頭像 發表于 10-24 09:20 ?686次閱讀

    向CC2651R3和CC2651P3的硬件遷移

    電子發燒友網站提供《向CC2651R3和CC2651P3的硬件遷移.pdf》資料免費下載
    發表于 09-26 11:03 ?0次下載
    向CC2651R<b class='flag-5'>3</b>和CC2651P<b class='flag-5'>3</b>的硬件<b class='flag-5'>遷移</b>

    龍智Atlassian ITSM解決方案、云遷移解決方案詳解:高速ITSM實施+端到端的云遷移服務

    隨著云計算技術的不斷成熟與普及,企業對于高效、靈活的IT服務管理(ITSM)與無縫的云遷移解決方案的需求日益增長。如何有效管理復雜的IT環境,加速業務上云進程,已成為眾多企業實現數字化轉型、提升
    的頭像 發表于 09-04 09:41 ?300次閱讀
    龍智Atlassian ITSM解決<b class='flag-5'>方案</b>、云<b class='flag-5'>遷移解決方案</b>詳解:高速ITSM實施+端到端的云<b class='flag-5'>遷移</b>服務

    統一日志數據流圖

    統一日志數據流圖 日志系統數據流圖 系統進行日志收集的過程可以分為三個環節: (1)日志收集和導入ElasticSearch (2)ElasticSearch進行索引等處理 (
    的頭像 發表于 08-21 15:00 ?328次閱讀
    統一日志<b class='flag-5'>數據</b>流圖

    HBase集群數據在線遷移方案探索

    下線這個HBase集群。由于這個集群目前仍在線上讀寫,本文從原理和實踐的角度探索對HBase集群數據的在線遷移方案,歡迎大家補充。 二、基礎理論梳理 HBase整體架構 重溫一下各個模塊的職責
    的頭像 發表于 06-12 11:54 ?1196次閱讀
    HBase集群<b class='flag-5'>數據</b>在線<b class='flag-5'>遷移</b><b class='flag-5'>方案</b>探索

    隔絕銀遷移的超長壽命輕觸開關

    隔絕銀遷移的輕觸開關
    的頭像 發表于 04-09 14:40 ?385次閱讀

    鴻蒙OS 跨設備遷移

    的 Page 請求遷移。 HarmonyOS 處理遷移任務,并回調設備 A 上 Page 的保存數據方法,用于保存遷移必須的數據。 Harm
    的頭像 發表于 01-31 15:47 ?1170次閱讀
    主站蜘蛛池模板: 亚洲情a成黄在线观看| 人与禽交免费网站视频| 天天干在线免费视频| 好色999| 欧美一级特黄aa大片| 特色一级黄色片| 午夜影院18| 韩国免费特一级毛片| 女人张开腿男人桶| 四虎影视最新| 亚洲图色视频| 国产成人高清精品免费5388密| 免费又黄又硬又大爽日本| 国产大片免费观看中文字幕| 人人天天爱天天做天天摸| 天天碰天天| 狠狠摸狠狠操| 欧美8888| 哪里可以看免费毛片| 午夜免费福利视频| 手机在线观看国产精选免费| 天天视频免费入口| 天天综合在线视频| 久久精品午夜视频| 国产aa| 双性人皇上被c到哭| 亚洲区一二三四区2021| 69中国xxxxxxxx18| 222网站高清免费观看| 国产2021成人精品| 三级五月天| 欧美一级在线观看| 国产成人精品曰本亚洲| 成人激情站| 综合视频网| 午夜久久久久久网站| 天天宗合网| 在线看免费视频| 亚洲综合免费| 足控免费视频xxav| 亚洲成色www久久网站|