elasticsearch 备份数据到 hdfs

1.介绍

大多数公司在使用 Elasticsearch 之前,都已经维护有一套 Hadoop 系统。因此,在实时数据慢慢变得冷却,不再被经常使用的时候,一个需求自然而然的就出现了:怎么把 Elasticsearch 索引数据快速转移到 HDFS 上,以解决 Elasticsearch 上的磁盘空间;而在我们需要的时候,又可以较快的从 HDFS 上把索引恢复回来继续使用呢? Elasticsearch 为此提供了 snapshot 接口。通过这个接口,我们可以快速导入导出索引镜像到本地磁盘,网络磁盘,当然也包括 HDFS。

环境

  • hadoop 2.3.1
  • elasticearch 2.2.0

2.安装 repository-hdfs

2.1 下载repository-hdfs插件,通过标准的 elasticsearch plugin 安装命令安装:

$ bin/plugin install elasticsearch/elasticsearch-repository-hdfs/2.2.0

2.2 修改config/elasticsearch.yml配置

# 禁用 jsm
security.manager.enabled: false

2.3 创建仓库

$ curl -XPUT '192.168.204.139:9200/_snapshot/my_backup?pretty' -d 
'{
    "type":"hdfs",
    "settings":{
        "uri":"hdfs://192.168.204.160:9000",
        "path":"/es_backup/rep_1"
    }
}'
  • hdfs_backup仓库的名称
  • uri是hdfs地址
  • path是hdfs文件目录

创建仓库报错:Server IPC version 9 cannot communicate with client version 4 将hadoop下面的jar包,拷贝到plugins/repository-hdfs/internal-libs/目录下

commons-httpclient-3.1.jar
commons-io-2.4.jar
commons-lang-2.6.jar
commons-logging-1.1.3.jar
commons-net-3.1.jar
commons-cli-1.2.jar
guava-11.0.2.jar
hadoop-common-2.3.0.jar
hadoop-auth-2.3.0.jar
hadoop-hdfs-2.3.0.jar
slf4j-api-1.7.5.jar
protobuf-java-2.5.0.jar
htrace-core-3.0.4.jar

猜你喜欢

转载自susenshine.iteye.com/blog/2286857