- Logstash
- Logstash - 入门示例
- 入门示例 - 下载安装
- 入门示例 - hello world
- 入门示例 - 配置语法
- 入门示例 - plugin的安装
- 入门示例 - 长期运行
- Logstash - 插件配置
- 插件配置 - input配置
- input配置 - file
- input配置 - stdin
- input配置 - syslog
- input配置 - tcp
- 插件配置 - codec配置
- codec配置 - json
- codec配置 - multiline
- codec配置 - collectd
- codec配置 - netflow
- 插件配置 - filter配置
- filter配置 - date
- filter配置 - grok
- filter配置 - dissect
- filter配置 - geoip
- filter配置 - json
- filter配置 - kv
- filter配置 - metrics
- filter配置 - mutate
- filter配置 - ruby
- filter配置 - split
- filter配置 - elapsed
- 插件配置 - output配置
- output配置 - elasticsearch
- output配置 - email
- output配置 - exec
- output配置 - file
- output配置 - nagios
- output配置 - statsd
- output配置 - stdout
- output配置 - tcp
- output配置 - hdfs
- Logstash - 场景示例
- 场景示例 - nginx访问日志
- 场景示例 - nginx错误日志
- 场景示例 - postfix日志
- 场景示例 - ossec日志
- 场景示例 - windows系统日志
- 场景示例 - Java日志
- 场景示例 - MySQL慢查询日志
- Logstash - 性能与测试
- 性能与测试 - generator方式
- 性能与测试 - 监控方案
- 监控方案 - logstash-input-heartbeat方式
- 监控方案 - jmx启动参数方式
- 监控方案 - API方式
- Logstash - 扩展方案
- 扩展方案 - 通过redis传输
- 扩展方案 - 通过kafka传输
- 扩展方案 - AIX 平台上的logstash-forwarder-java
- 扩展方案 - rsyslog
- 扩展方案 - nxlog
- 扩展方案 - heka
- 扩展方案 - fluent
- 扩展方案 - Message::Passing
- Logstash - 源码解析
- 源码解析 - pipeline流程
- 源码解析 - Event的生成
- Logstash - 插件开发
- 插件开发 - utmp插件示例
- Beats
- Beats - filebeat
- Beats - packetbeat网络流量分析
- Beats - metricbeat
- Beats - winlogbeat
- ElasticSearch
- ElasticSearch - 架构原理
- 架构原理 - segment、buffer和translog对实时性的影响
- 架构原理 - segment merge对写入性能的影响
- 架构原理 - routing和replica的读写过程
- 架构原理 - shard的allocate控制
- 架构原理 - 自动发现的配置
- ElasticSearch - 接口使用示例
- 接口使用示例 - 增删改查操作
- 接口使用示例 - 搜索请求
- 接口使用示例 - Painless脚本
- 接口使用示例 - reindex接口
- ElasticSearch - 性能优化
- 性能优化 - bulk提交
- 性能优化 - gateway配置
- 性能优化 - 集群状态维护
- 性能优化 - 缓存
- 性能优化 - fielddata
- 性能优化 - curator工具
- 性能优化 - profile接口
- ElasticSearch - rally测试方案
- ElasticSearch - 多集群互联
- ElasticSearch - 别名的应用
- ElasticSearch - 映射与模板的定制
- ElasticSearch - puppet-elasticsearch模块的使用
- ElasticSearch - 计划内停机升级的操作流程
- ElasticSearch - 镜像备份
- ElasticSearch - rollover和shrink
- ElasticSearch - Ingest节点
- ElasticSearch - Hadoop 集成
- Hadoop 集成 - spark streaming交互
- ElasticSearch - 权限管理
- 权限管理 - Shield
- 权限管理 - Search-Guard 在 Elasticsearch 2.x 上的运用
- ElasticSearch - 监控方案
- 监控方案 - 监控相关接口
- 监控相关接口 - 集群健康状态
- 监控相关接口 - 节点状态
- 监控相关接口 - 索引状态
- 监控相关接口 - 任务管理
- 监控相关接口 - cat 接口的命令行使用
- 监控方案 - 日志记录
- 监控方案 - 实时bigdesk方案
- 监控方案 - cerebro
- 监控方案 - zabbix trapper方案
- ElasticSearch - ES在运维监控领域的其他玩法
- ES在运维监控领域的其他玩法 - percolator接口
- ES在运维监控领域的其他玩法 - watcher报警
- ES在运维监控领域的其他玩法 - ElastAlert
- ES在运维监控领域的其他玩法 - 时序数据库
- ES在运维监控领域的其他玩法 - Grafana
- ES在运维监控领域的其他玩法 - juttle
- ES在运维监控领域的其他玩法 - Etsy的Kale异常检测
- Kibana 5
- Kibana 5 - 安装、配置和运行
- Kibana 5 - 生产环境部署
- Kibana 5 - discover功能
- Kibana 5 - 各visualize功能
- 各visualize功能 - area
- 各visualize功能 - table
- 各visualize功能 - line
- 各visualize功能 - markdown
- 各visualize功能 - metric
- 各visualize功能 - pie
- 各visualize功能 - tile map
- 各visualize功能 - vertical bar
- Kibana 5 - dashboard功能
- Kibana 5 - timelion 介绍
- Kibana 5 - console 介绍
- Kibana 5 - setting功能
- Kibana 5 - 常用sub agg示例
- 常用sub agg示例 - 函数堆栈链分析
- 常用sub agg示例 - 分图统计
- 常用sub agg示例 - TopN的时序趋势图
- 常用sub agg示例 - 响应时间的百分占比趋势图
- 常用sub agg示例 - 响应时间的概率分布在不同时段的相似度对比
- Kibana 5 - 源码解析
- 源码解析 - .kibana索引的数据结构
- 源码解析 - 主页入口
- 源码解析 - discover解析
- 源码解析 - visualize解析
- 源码解析 - dashboard解析
- Kibana 5 - 插件
- 插件 - 可视化开发示例
- 插件 - 后端开发示例
- 插件 - 完整app开发示例
- Kibana 5 - Kibana报表
- 竞品对比
ElasticSearch - 镜像备份
本节作者:李宏旭
大多数公司在使用 Elasticsearch 之前,都已经维护有一套 Hadoop 系统。因此,在实时数据慢慢变得冷却,不再被经常使用的时候,一个需求自然而然的就出现了:怎么把 Elasticsearch 索引数据快速转移到 HDFS 上,以解决 Elasticsearch 上的磁盘空间;而在我们需要的时候,又可以较快的从 HDFS 上把索引恢复回来继续使用呢?
Elasticsearch 为此提供了 snapshot 接口。通过这个接口,我们可以快速导入导出索引镜像到本地磁盘,网络磁盘,当然也包括 HDFS。
HDFS 插件安装配置
下载repository-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/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs:// XX.XX.XX.XX:9000
io.file.buffer.size
4096
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
启动,但有可能出现异常,建议按照顺序分开启动。
- 首先需要格式化存储:
bin/Hadoop namenode –format
- 启动start-dfs.sh
sbin/start-dfs.sh
- 启动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'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
前两天用阿里云的elasticstack镜像还不错,可以看看:https://developer.aliyun.com/mirror/?utm_content=g_1000303593