Elasticsearch单机双节点集群部署实战
一、安装第一个ElasticSearch(主节点)
1、创建es用户,启动es不能使用root用户
useradd es
passwd es12
root用户进入/home/es目录下
2、获取ElasticSearch安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gz
3、解压、改名(方便集群时区别另一个ES)
tar xf elasticsearch-6.1.2.tar.gz
mv elasticsearch-6.1.2.tar.gz elasticsearch-node212
4、修改配置文件
vi elasticsearch-node2/config/elasticsearch.yml1
修改内容如下:
cluster.name: my-application 各节点此名称必须一致
node.name: node-2 节点名称,不能与其他节点相同
network.host: ***.***.***.*** 自己的服务器IP
http.port: **** 访问端口
transport.tcp.port: **** 集群各节点间的通讯端口
discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"] 123456
文件最后追加以下内容,以便连接head显示健康值(注意每行代码前面不要有空格)
http.cors.enabled: true
http.cors.allow-origin: "*"12
5、启动
sh elasticsearch-node2/bin/elasticsearch1
[2018-01-24T15:36:41,990][INFO ][o.e.n.Node ] [KMyyO-3] started
[2018-01-24T15:36:41,997][INFO ][o.e.g.GatewayService ] [KMyyO-3] recovered [0] indices into cluster_state12
启动成功,浏览器中输入 IP:访问端口
网页显示以下内容,说明部署成功
{
"name" : "node-2",
"cluster_name" : "my-application",
"cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}123456789101112131415
6、报错及其处理
【类型一】
Caused by: java.lang.RuntimeException: can not run elasticsearch as root1
该问题是因为运行es不能使用root用户,因此要切换es用户再次启动
chown -R es:es elasticsearch-node2/
su - es
sh elasticsearch-node2/bin/elasticsearch123
【类型二】
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]1
解决方法,换回root用户,修改配置文件
vi /etc/security/limits.conf
#在最后面追加下面内容
es hard nofile 65536
es soft nofile 655361234
【类型三】
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]1
解决方法,换回root用户,修改配置文件
vi /etc/sysctl.conf
#在最后面追加下面内容
vm.max_map_count=655360
#执行命令:
sysctl -p12345
二、安装第二个ElasticSearch(辅节点)
安装方法与第一个一致,注意修改配置文件
root用户进入/home/es目录下
1、解压、改名
tar xf elasticsearch-6.1.2.tar.gz
mv elasticsearch-6.1.2.tar.gz elasticsearch-node312
2、修改配置文件
vi elasticsearch-node3/config/elasticsearch.yml1
修改内容如下:
cluster.name: my-application 各节点此名称必须一致
node.name: node-3 节点名称,不能与其他节点相同
network.host: ***.***.***.*** 自己的服务器IP
http.port: **** 访问端口(注意不要与第一个端口重复)
transport.tcp.port: **** 集群各节点间的通讯端口(注意不要与第一个端口重复)
discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"]123456
文件最后同样追加下面代码
http.cors.enabled: true
http.cors.allow-origin: "*"12
3.启动
sh elasticsearch-node3/bin/elasticsearch1
浏览器,浏览器中输入 IP:访问端口
网页显示以下内容,说明第二个部署成功
{
"name" : "node-3",
"cluster_name" : "my-application",
"cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}123456789101112131415
三、安装Elasticsearch-head插件
1、安装head插件之前需要安装node.js
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y nodejs12
安装完成后执行命令查看node与npm版本
[root@host]# node -v
v8.12.0
[root@host]# npm -v
6.4.1
12345
2、从git获取head插件
wget https://github.com/mobz/elasticsearch-head/archive/master.zip1
3、解压安装包(可以改名,方便操作)
unzip master.zip
mv elasticsearch-head-master/ head12
4、修改配置文件
vi head/Gruntfile.js1
更改head端口号
connect: {
server: {
options: {
port: ****, 改为head访问端口
base: '.',
keepalive: true
}
}
}
12345678910
vi head/_site/app.js 1
更改head链接地址
init: function(parent) {
this._super();
this.prefs = services.Preferences.instance();
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://主节点IP:访问端口";
12345
5、启动head
nohup npm run start > ../head.log 2>&1 &1
6、浏览器登录head
URL输入服务器IP:head访问端口
链接地址输如主节点的访问地址
7、安装head常见错误
【类型一】启动成功,但是网页不能访问
解决方法
关闭服务器防火墙
service iptables stop
【类型二】集群健康值未连接
在elasticsearch.yml里追加下列代码(注意代码前面不要有空格)
http.cors.enabled: truehttp.cors.allow-origin: "*"
问:为什么es节点用node2、node3?
答:因为之前用node1搭建了一套未集群的ES,所以后面集群就用2和3了。
---------------------------------------------
推荐阅读:
Elasticsearch单机双节点集群部署实战的更多相关文章
- Windows下ELK环境搭建(单机多节点集群部署)
1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...
- (十)RabbitMQ消息队列-高可用集群部署实战
原文:(十)RabbitMQ消息队列-高可用集群部署实战 前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. Ra ...
- elasticSearch数据库、skywalking集群部署
Centos6上面安装elasticsearc数据库的集群 安装的是6.3.2版本,安装之前首先要先安装jdk1.8版本 安装之前首先需要关闭防火墙 Centos6 sudo service ipta ...
- RabbitMQ消息队列(十)-高可用集群部署实战
前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. RabbitMQ集群基本概念 Rabbit模式大概分为以下三种 ...
- RabbitMQ-rabbitmqctl多机多节点和单机多节点集群搭建(五)
准备 1.准备3台物理机 我这里通过本地机和2台虚拟模拟我是mac通过(Parallel Desktop 实现) 2.按照签名的liux安装步骤在3台机器都安装rabiitMq 3.将任意一节点的co ...
- elasticsearch + kibana + x-pack + logstash_集群部署安装
elasticsearch 部分总体描述: 1.elasticsearch 的概念及特点.概念:elasticsearch 是一个基于 lucene 的搜索服务器.lucene 是全文搜索的一个框架. ...
- k8s, etcd 多节点集群部署问题排查记录
目录 文章目录 目录 部署环境 1. etcd 集群启动失败 解决 2. etcd 健康状态检查失败 解决 3. kube-apiserver 启动失败 解决 4. kubelet 启动失败 解决 5 ...
- Docker | redis集群部署实战
前面已经简单熟悉过redis的下载安装使用,今天接着部署redis集群(cluster),简单体会一下redis集群的高可用特性. 环境准备 Redis是C语言开发,安装Redis需要先将Redis的 ...
- ElasticSearch 在3节点集群的启动
ElasticSearch的启动分前台和后台启动 先介绍前台启动: 先在master节点上启动 可以看到已经启动了 同时在slave1.slave2节点上也启动 可以看到都已经启动了! 在浏览器分别打 ...
随机推荐
- electron 打包后node_modules 体积过于庞大
问题产生原因:过多无用的模块被打包放入到程序中 解决: 删除 package-lock.json ,是由于这个文件导致打包时候放入过多文件,删除即可.
- C语言复习4_while循环
1.while循环 循环三要素: 1).循环变量的初值 2).循环变量的判断 3).循环变量的更新 #include <stdio.h> #include <stdlib.h> ...
- TCPDF 背景图片透明度
1.TCPDF 背景图片透明度 参考:https://bbs.csdn.net/topics/392364981 效果: 2.画一条线: 2.1方法解说 /*画一条线: x1:线条起点x坐标 y1 ...
- Python练手例子(10)
55.学习使用按位取反~. 程序分析:~0=1; ~1=0; (1)先使a右移4位. (2)设置一个低4位全为1,其余全为0的数.可用~(~0<<4) (3)将上面二者进行&运算. ...
- #Java学习之路——基础阶段(第四篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- Java开发快速上手
Java开发快速上手 前言 1.我的大学 2.对初学者的建议 3.大牛的三大特点 4.与他人的差距 第一章 了解Java开发语言 前言 基础常识 1.1 什么是Java 1.1.1 跨平台性 1.2 ...
- 【从零开始搭建自己的.NET Core Api框架】(一)创建项目并集成swagger:1.1 创建
系列目录 一. 创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...
- [Swift]LeetCode801. 使序列递增的最小交换次数 | Minimum Swaps To Make Sequences Increasing
We have two integer sequences A and B of the same non-zero length. We are allowed to swap elements A ...
- MySql和Oracle数据库区别
Oracle与mysql区别: 1.Oracle有表空间,mysql没有表空间. 2.mysql的char类型取值范围0-255字节,varchar为0-65535字节 3.oracle的char类型 ...
- Kafka分区与消费者的关系
1. 前言 我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了, ...