Elasticsearch冷热集群搭建
ES版本:6.2.4
集群环境:7台机器,每台部署一个master节点。其中3台部署2个hot节点,另外4台部署2个warm节点。共21个节点。
1. 挂盘
按实际情况分盘,一个机子上的2个data节点均分数据磁盘。
通过UUID挂盘,以防止以后换盘,盘符移动(这里拿3个盘举例)。
mkdir -p /data01a/esat
mkdir -p /data02b/esat
mkdir -p /data03c/esat blkid vi /etc/fstab
UUID="f78d2fb8-4b00-4f08-af69-07d533b54a85" /data01a ext4 defaults 0 3
UUID="3cd45d40-e51c-42ce-9b6b-8d2c315a8f9d" /data02b ext4 defaults 0 3
UUID="396e2e59-e92c-4813-a1f1-ed560731a361" /data03c ext4 defaults 0 3 mount -a
2. 创建用户,修改磁盘权限
groupadd esadmin
useradd -g esadmin esadmin
useradd -g esadmin esmaster
useradd -g esadmin esdata chown -R esadmin:esadmin /data01a
chown -R esadmin:esadmin /data02b
chown -R esadmin:esadmin /data03c chmod -R 771 /data*
3. 系统设置
vi /etc/security/limits.conf
@esadmin - nofile 655360
@esadmin - nproc 8192
@esadmin - memlock unlimited
@esadmin - as unlimited
@esadmin - fsize unlimited
vi /etc/sysctl.conf
vm.swappiness = 1
vm.max_map_count = 655300
sysctl -p
4.安装JDK8
rpm -i jdk-8u171-linux-x64.rpm
5. 安装ES
将ES安装文件拷贝到对应目录下。
安装master:
cd /home/esmaster
unzip elasticsearch-6.2.4.zip
修改配置:
vi elasticsearch-6.2.4/config/elasticsearch.yml
cluster.name: es-xx
node.name: master-at-xx
node.master: true
node.data: false
node.ingest: false
search.remote.connect: false bootstrap.memory_lock: true
bootstrap.system_call_filter: false network.host: xx.xx.xx.xx
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*" discovery.zen.ping.unicast.hosts: ["xx.xx.xx.xx:9300", "xx.xx.xx.xx:9300", "xx.xx.xx.xx:9300", ...]
discovery.zen.minimum_master_nodes: 4
discovery.zen.fd.ping_interval: 10s
discovery.zen.fd.ping_timeout: 60s
discovery.zen.fd.ping_retries: 3 gateway.expected_master_nodes: 7
gateway.recover_after_time: 10m
gateway.recover_after_master_nodes: 4
安装ik分词器:
./elasticsearch-6.2.4/bin/elasticsearch-plugin install file:///home/esmaster/elasticsearch-analysis-ik-6.2.4.zip
chown -R esmaster:esadmin *
安装data:
cd /home/esdata
unzip elasticsearch-6.2.4.zip
修改配置:
vi elasticsearch-6.2.4/config/elasticsearch.yml
cluster.name: es-xx node.name: data-at-40 node.master: false
node.data: true
node.ingest: true
search.remote.connect: true
search.remote.node.attr: gateway node.attr.type: hot
node.attr.gateway: true path.data: ["/data01a/esat", "/data02b/esat", "/data03c/esat", ...] bootstrap.memory_lock: true
bootstrap.system_call_filter: false network.host: xx.xx.xx.xx
http.port: 9201
transport.tcp.port: 9301 http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["xx.xx.xx.xx:9300", "xx.xx.xx.xx:9300", "xx.xx.xx.xx:9300", ...]
discovery.zen.minimum_master_nodes: 4
discovery.zen.fd.ping_interval: 10s
discovery.zen.fd.ping_timeout: 60s
discovery.zen.fd.ping_retries: 3 gateway.expected_master_nodes: 7
gateway.recover_after_time: 10m
gateway.recover_after_master_nodes: 4
上面是hot节点的配置(node.attr.type: hot),warm节点类似。
安装ik分词器:
./elasticsearch-6.2.4/bin/elasticsearch-plugin install file:///home/esdata/elasticsearch-analysis-ik-6.2.4.zip
chown -R esdata:esadmin *
修改JVM配置文件
vi /home/esmaster/elasticsearch-6.2.4/config/jvm.options
master 修改jvm.options -Xms10g -Xmx10g
vi /home/esdata/elasticsearch-6.2.4/config/jvm.options
data 修改jvm.options -Xms31g -Xmx31g
6 启动
./bin/elasticsearch -p pid -d
7. 启动监控工具head和Bigdesk
unzip es_tools.zip
cd es_tools
nohup python -m SimpleHTTPServer 9080 &
8. 设置索引模板
put _template/app_template
{
"order": 0,
"index_patterns": [ "app_*" ],
"settings": {
"index": {
"unassigned": {
"node_left": {
"delayed_timeout": "10m"
}
},
"routing": {
"allocation": {
"include": {"type": "hot"}
}
},
"refresh_interval": "5s",
"number_of_shards": "1",
"number_of_replicas": "1"
}
},
"mappings": {
"_doc": {
"date_detection": false,
"properties": {
"timestamp": {
"format": "yyyy-MM-dd HH:mm:ss:SSS||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||dateOptionalTime",
"type": "date"
},
"@timestamp": {
"format": "yyyy-MM-dd HH:mm:ss:SSS||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||dateOptionalTime",
"type": "date"
},
"attimestamp": {
"format": "yyyy-MM-dd HH:mm:ss:SSS||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss||dateOptionalTime",
"type": "date"
},
"ip": {
"type": "ip"
},
"message": {
"search_analyzer": "ik_max_word",
"analyzer": "ik_max_word",
"type": "text"
}
},
"dynamic_templates": [
{
"strings_not_analyzed": {
"match_mapping_type": "string",
"mapping": {
"type": "keyword"
}
}
}
]
}
}
}
以上设置所有以“app_”命名的索引的template,默认分配到hot节点。
9.迁移索引
动态修改某个索引到warm节点。如设置"app_index"这个索引到warm节点:
PUT app_index/_settings
{
"index": {
"routing": {
"allocation": {
"include": {"type": "warm"}
}
}
}
}
大于2T的磁盘分区挂载(小于2T的用fdisk):
[root@168-11-225-68 ~]# mkdir /data
[root@168-11-225-68 ~]# fdisk -l
[root@168-11-225-68 ~]# parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart sdb1 0% 100%
(parted) print
[root@168-11-225-68 ~]# mkfs.ext4 /dev/sdb1
[root@168-11-225-68 ~]# mount /dev/sdb1 /data
[root@168-11-225-68 ~]# df -h
使用配置文件(/etc/fstab)挂盘:
[root@168-11-225-68 ~]# blkid
/dev/sdb1: UUID="e84421b0-bdf3-448c-8561-bf48adced7b3" TYPE="ext4" PARTLABEL="sdb1" PARTUUID="3f9d3296-b613-4224-ab43-33f29110e586"
/dev/sda1: UUID="3ba0d7b0-a6f8-4523-b979-72ba4f691fe3" TYPE="xfs"
/dev/sda2: UUID="M1sg44-aylU-Uxpu-VS01-10Wd-dbvl-2jRVoj" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="fe151667-8045-429e-94df-d898d90cd060" TYPE="xfs"
/dev/mapper/centos-swap: UUID="29c15603-bb2f-432f-8185-12cc77514269" TYPE="swap"
[root@168-11-225-68 ~]# vi /etc/fstab
UUID="e84421b0-bdf3-448c-8561-bf48adced7b3" /app ext4 defaults 0 0
[root@168-11-225-68 ~]# mount -a
[root@168-11-225-68 ~]# df -h
参考:
https://www.elastic.co/cn/blog/hot-warm-architecture-in-elasticsearch-5-x
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/modules-cross-cluster-search.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html
Elasticsearch冷热集群搭建的更多相关文章
- elasticsearch 分布式集群搭建
elasticsearch环境搭建及单节点搭建可参考我的上一篇:http://www.cnblogs.com/xuwenjin/p/8745624.html 本文以Elaticsearch 6.2.2 ...
- ElasticSearch入门 —— 集群搭建
一.环境介绍与安装准备 1.环境说明 2台虚拟机,OS为ubuntu13.04,ip分别为xxx.xxx.xxx.140和xxx.xxx.xxx.145. 2.安装准备 ElasticSearch(简 ...
- 使用 docker 进行 ElasticSearch + Kibana 集群搭建
在Docker容器中运行Elasticsearch Kibana和Cerebro 机器信息 10.160.13.139 10.160.9.162 10.160.11.171 1. 安装docker和d ...
- elasticsearch集群搭建实例
elasticsearch集群搭建实例 下个月又开始搞搜索了,几个月没动这块还好没有落下. 晚上在自己虚拟机上搭建了一个简易搜索集群,分享一下. 操作系统环境: Red Hat 4.8.2-16 el ...
- elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- Elastic Stack之ElasticSearch分布式集群yum方式搭建
Elastic Stack之ElasticSearch分布式集群yum方式搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.搜索引擎及Lucene基本概念 1>.什么 ...
- Elasticsearch集群搭建及使用Java客户端对数据存储和查询
本次博文发两块,前部分是怎样搭建一个Elastic集群,后半部分是基于Java对数据进行写入和聚合统计. 一.Elastic集群搭建 1. 环境准备. 该集群环境基于VMware虚拟机.CentOS ...
- 和我一起打造个简单搜索之ElasticSearch集群搭建
我们所常见的电商搜索如京东,搜索页面都会提供各种各样的筛选条件,比如品牌.尺寸.适用季节.价格区间等,同时提供排序,比如价格排序,信誉排序,销量排序等,方便了用户去找到自己心里理想的商品. 站内搜索对 ...
- ElasticStack之Elasticsearch集群搭建
需搭建服务器环境 操作系统 Host:port node 1 CentOS 7.2.1511 11.1.11.127:9200 node1 2 CentOS 7.2.1511 11.1.11.128: ...
随机推荐
- k8s 英文文档翻译
https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727
- Berlekamp-Massey算法简单介绍
请阅读本文的同学们注意:之前这篇博客和所附代码有点问题,求的不一定是最短递推式,非常抱歉 看毛爷爷的论文大概断断续续看了一个月了,看得不是很懂,google了一波好像很快就看懂了,就先口胡一下这个算法 ...
- Collection接口的常用方法
[添加功能] boolean add(Object obj); //添加一个元素. boolean addAll(Collection c); //添加一个集合的元素(在后面追加). [删除功能] v ...
- elementui分页点击详情返回分页样式
updated(){ $(".el-pager").children("li").removeClass("active"); var li ...
- multiprocssing,threading,多进程多线程初识
1. multiprocessing 多进程: import multiprocessing p = multiprocessing.Process(target = func,name = &quo ...
- 查出了a表,然后对a表进行自查询,a表的别名t1,t2如同两张表,因为t1,t2查询的条件不一样,真的如同两张表,关联两张表,可以将两行或者多行数据合并成一行,不必使用wm_concat()函数。为了将t2表的数据全部查出来使用了右连接。
with a as( select nsr.zgswj_dm, count(distinct nsr.djxh) cnt, 1 z from hx_fp.fp_ly fp, hx_dj.dj_nsrx ...
- 20165220 2017-2018-2《Java程序设计》课程总结
每周作业链接汇总: 20165220 我期望的师生关系 20165220 学习基础和C语言基础调查 20165220 Linux安装及学习 20165220 第一周学习总结 20165220 第二周学 ...
- 005.Ceph文件系统基础使用
一 Ceph文件系统 1.1 概述 CephFS也称ceph文件系统,是一个POSIX兼容的分布式文件系统. 实现ceph文件系统的要求: 需要一个已经正常运行的ceph集群: 至少包含一个ceph元 ...
- YOLO系列:YOLO v2深度解析 v1 vs v2
概述 第一,在保持原有速度的优势之下,精度上得以提升.VOC 2007数据集测试,67FPS下mAP达到76.8%,40FPS下mAP达到78.6%,可以与Faster R-CNN和SSD一战 第二, ...
- JavaScript基础笔记(八)DOM扩展
DOM扩展 一.选择符API Selectors API是由W3C发起制定的一个标准,致力于让浏览器原生支持CSS查询. 一)querySelector() 在Document和Element类型实例 ...