ELKstack 中文指南
  • ELKstack 中文指南
  • Logstash
    • 入门示例
      • 下载安装
      • hello world
      • 配置语法
      • plugin的安装
      • 长期运行
    • 插件配置
      • input配置
        • file
        • stdin
        • syslog
        • tcp
      • codec配置
        • json
        • multiline
        • collectd
        • netflow
      • filter配置
        • date
        • grok
        • dissect
        • geoip
        • json
        • kv
        • metrics
        • mutate
        • ruby
        • split
        • elapsed
      • output配置
        • elasticsearch
        • email
        • exec
        • file
        • nagios
        • statsd
        • stdout
        • tcp
        • hdfs
    • 场景示例
      • nginx访问日志
      • nginx错误日志
      • postfix日志
      • ossec日志
      • windows系统日志
      • Java日志
      • MySQL慢查询日志
    • 性能与测试
      • generator方式
      • 监控方案
        • logstash-input-heartbeat方式
        • jmx启动参数方式
        • API方式
    • 扩展方案
      • 通过redis传输
      • 通过kafka传输
      • AIX 平台上的logstash-forwarder-java
      • rsyslog
      • nxlog
      • heka
      • fluent
      • Message::Passing
    • 源码解析
      • pipeline流程
      • Event的生成
    • 插件开发
      • utmp插件示例
  • Beats
    • filebeat
    • packetbeat网络流量分析
    • metricbeat
    • winlogbeat
  • ElasticSearch
    • 架构原理
      • segment、buffer和translog对实时性的影响
      • segment merge对写入性能的影响
      • routing和replica的读写过程
      • shard的allocate控制
      • 自动发现的配置
    • 接口使用示例
      • 增删改查操作
      • 搜索请求
      • Painless脚本
      • reindex接口
    • 性能优化
      • bulk提交
      • gateway配置
      • 集群状态维护
      • 缓存
      • fielddata
      • curator工具
      • profile接口
    • rally测试方案
    • 多集群互联
    • 别名的应用
    • 映射与模板的定制
    • puppet-elasticsearch模块的使用
    • 计划内停机升级的操作流程
    • 镜像备份
    • rollover和shrink
    • Ingest节点
    • Hadoop 集成
      • spark streaming交互
    • 权限管理
      • Shield
      • Search-Guard 在 Elasticsearch 2.x 上的运用
    • 监控方案
      • 监控相关接口
        • 集群健康状态
        • 节点状态
        • 索引状态
        • 任务管理
        • cat 接口的命令行使用
      • 日志记录
      • 实时bigdesk方案
      • cerebro
      • zabbix trapper方案
    • ES在运维监控领域的其他玩法
      • percolator接口
      • watcher报警
      • ElastAlert
      • 时序数据库
      • Grafana
      • juttle
      • Etsy的Kale异常检测
  • Kibana 5
    • 安装、配置和运行
    • 生产环境部署
    • discover功能
    • 各visualize功能
      • area
      • table
      • line
      • markdown
      • metric
      • pie
      • tile map
      • vertical bar
    • dashboard功能
    • timelion 介绍
    • console 介绍
    • setting功能
    • 常用sub agg示例
      • 函数堆栈链分析
      • 分图统计
      • TopN的时序趋势图
      • 响应时间的百分占比趋势图
      • 响应时间的概率分布在不同时段的相似度对比
    • 源码解析
      • .kibana索引的数据结构
      • 主页入口
      • discover解析
      • visualize解析
      • dashboard解析
    • 插件
      • 可视化开发示例
      • 后端开发示例
      • 完整app开发示例
    • Kibana报表
  • 竞品对比
  • 推荐阅读
  • 合作名单
  • 捐赠名单
Powered by GitBook
On this page
  • HDFS 插件安装配置
  • Hadoop 配置
  • mapred-site.xml.template
  • yarn-site.xml
  • hadoop-env.sh
  • core-site.xml
  • slaves
  • hdfs-site.xml
  • 启动 Hadoop
  • 备份导出
  • 创建快照仓库
  • 索引快照
  • 备份恢复
  • 备份删除
  • 查看仓库信息

Was this helpful?

  1. ElasticSearch

镜像备份

Previous计划内停机升级的操作流程Nextrollover和shrink

Last updated 5 years ago

Was this helpful?

本节作者:李宏旭

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

Elasticsearch 为此提供了 snapshot 接口。通过这个接口,我们可以快速导入导出索引镜像到本地磁盘,网络磁盘,当然也包括 HDFS。

HDFS 插件安装配置

下载,通过标准的 elasticsearch plugin 安装命令安装:

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

然后在 elasticsearch.yml 中增加以下配置:

# repository 配置
hdfs:
    uri:"hdfs://<host>:<port>"(默认port为8020)
    #Hadoop file-system URI
    path:"some/path"
    #path with the file-system where data is stored/loaded
    conf.hdfs_config:"/hadoop/hadoop-2.5.2/etc/hadoop/hdfs-site.xml"
    conf.hadoop_config:"/hadoop/hadoop-2.5.2/etc/hadoop/core-site.xml"
    load_defaults:"true"
    #whether to load the default Hadoop configuration (default) or not
    compress:"false"
    # optional - whether to compress the metadata or not (default)
    chunk_size:"10mb"
    # optional - chunk size (disabled by default)
# 禁用 jsm
security.manager.enabled: false

默认情况下,Elasticsearch 为了安全考虑会在运行 JVM 的时候执行 JSM。出于 Hadoop 和 HDFS 客户端权限问题,所以需要禁用 JSM。将 elasticsearch.yml 中的 security.manager.enabled 设置为 false。

将插件安装好,配置修改完毕后,需要重启 Elasticsearch 服务。没有重启节点插件可能会执行失败。

注意:Elasticsearch 集群的每个节点都要执行以上步骤!

Hadoop 配置

本节内容基于Hadoop版本:2.5.2,假定其配置文件目录:hadoop-2.5.2/etc/Hadoop。注意,安装hadoop集群需要建立主机互信,互信方法请自行查询,很简单。

相关配置文件如下:

mapred-site.xml.template

默认没有 mapred-site.xml 文件,复制 mapred-site.xml.template 一份,并把名字改为 mapred-site.xml,需要修改 3 处的 IP 为本机地址:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>XX.XX.XX.XX:50030</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value> XX.XX.XX.XX:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value> XX.XX.XX.XX:19888</value>
    </property>
</configuration>

yarn-site.xml

需要修改5处的IP为本机地址:

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
        <property>
        <name>yarn.resourcemanager.address</name>
        <value> XX.XX.XX.XX:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value> XX.XX.XX.XX:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value> XX.XX.XX.XX:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value> XX.XX.XX.XX:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value> XX.XX.XX.XX:8088</value>
    </property>
</configuration>

hadoop-env.sh

修改 jdk 路径和 jvm 内存配置,内存使用根据情况配置。

export JAVA_HOME=/usr/java/jdk1.7.0_79
export HADOOP_PORTMAP_OPTS="-Xmx512m $HADOOP_PORTMAP_OPTS"
export HADOOP_CLIENT_OPTS="-Xmx512m $HADOOP_CLIENT_OPTS"

core-site.xml

临时目录及 hdfs 机器 IP 端口指定:

hadoop.tmp.dir/soft/hadoop-2.5.2/tmpAbase for other temporary directories.fs.defaultFShdfs:// XX.XX.XX.XX:9000io.file.buffer.size4096

slaves

配置集群 IP 地址,集群有几个 IP 都要配置进去:

192.168.0.2
192.168.0.3
192.168.0.4

hdfs-site.xml

namenode 和 datenode 数据存放路径及别名:

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data01/hadoop/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data01/hadoop/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

启动 Hadoop

格式化完成后也可使用 sbin/start-all.sh 启动,但有可能出现异常,建议按照顺序分开启动。

  1. 首先需要格式化存储:

    bin/Hadoop namenode –format

  2. 启动start-dfs.sh

    sbin/start-dfs.sh

  3. 启动start-yarn.sh

    sbin/start-yarn.sh

备份导出

创建快照仓库

curl -XPUT 'localhost:9200/_snapshot/backup' -d 
'{
    "type":"hdfs",
    "settings":{
        "path":"/test/repo",
        "uri":"hdfs://<uri>:<port>"
    }
}'

在这步可能会报错。通常是因为 hadoop 配置问题,更改好配置需要重新格式化文件系统:

在 hadoop 目录下执行 bin/hadoop namenode -format

索引快照

执行索引快照命令,可写入crontab,定时执行

curl -XPUT 'http://localhost:9200/_snapshot/backup/snapshot_1' -d
 '{"indices":"indices_01,indices_02"}'

备份恢复

curl -XPOST "localhost:9200/_snapshot/backup/snapshot_1/_restore"

备份删除

curl -XDELETE "localhost:9200/_snapshot/backup/snapshot_1"

查看仓库信息

curl -XGET 'http://localhost:9200/_snapshot/backup?pretty'

repository-hdfs插件