一、安装第一个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了。

---------------------------------------------

推荐阅读:

微信支付开发中几个值得注意的地方

解析:微服务的原则

老王讲架构:负载均衡

支付宝系统架构内部剖析

SaaS技术栈的走势

大数据Spark与Storm技术选型

Elasticsearch单机双节点集群部署实战的更多相关文章

  1. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

  2. (十)RabbitMQ消息队列-高可用集群部署实战

    原文:(十)RabbitMQ消息队列-高可用集群部署实战 前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. Ra ...

  3. elasticSearch数据库、skywalking集群部署

    Centos6上面安装elasticsearc数据库的集群 安装的是6.3.2版本,安装之前首先要先安装jdk1.8版本 安装之前首先需要关闭防火墙 Centos6 sudo service ipta ...

  4. RabbitMQ消息队列(十)-高可用集群部署实战

    前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. RabbitMQ集群基本概念 Rabbit模式大概分为以下三种 ...

  5. RabbitMQ-rabbitmqctl多机多节点和单机多节点集群搭建(五)

    准备 1.准备3台物理机 我这里通过本地机和2台虚拟模拟我是mac通过(Parallel Desktop 实现) 2.按照签名的liux安装步骤在3台机器都安装rabiitMq 3.将任意一节点的co ...

  6. elasticsearch + kibana + x-pack + logstash_集群部署安装

    elasticsearch 部分总体描述: 1.elasticsearch 的概念及特点.概念:elasticsearch 是一个基于 lucene 的搜索服务器.lucene 是全文搜索的一个框架. ...

  7. k8s, etcd 多节点集群部署问题排查记录

    目录 文章目录 目录 部署环境 1. etcd 集群启动失败 解决 2. etcd 健康状态检查失败 解决 3. kube-apiserver 启动失败 解决 4. kubelet 启动失败 解决 5 ...

  8. Docker | redis集群部署实战

    前面已经简单熟悉过redis的下载安装使用,今天接着部署redis集群(cluster),简单体会一下redis集群的高可用特性. 环境准备 Redis是C语言开发,安装Redis需要先将Redis的 ...

  9. ElasticSearch 在3节点集群的启动

    ElasticSearch的启动分前台和后台启动 先介绍前台启动: 先在master节点上启动 可以看到已经启动了 同时在slave1.slave2节点上也启动 可以看到都已经启动了! 在浏览器分别打 ...

随机推荐

  1. Ubunto使用 码云 创建项目

    1.安装 git sudo apt-get install git配置 git 文件 git config --global user.name "你的用户名" git confi ...

  2. 浅谈开发中python通过os模块存储数据

    #其实本人很烦发博客,但为了面试还是发一下好,证明一下自己的能力 前言 首先说一下适用环境,在开发中我们有一些经常用到的数据(数据量大)需要存储起来. 存sql嘛又不合适,要知道在开发中每条sql语句 ...

  3. LeetCode编程训练 - 滑动窗口(Sliding Window)

    滑动窗口基础 滑动窗口常用来解决求字符串子串问题,借助map和计数器,其能在O(n)时间复杂度求子串问题.滑动窗口和双指针(Two pointers)有些类似,可以理解为往同一个方向走的双指针.常用滑 ...

  4. Lesson 27 A wet night

    Text Late in the afternoon, the boys put up their tent in the middle of a feild. As soon as this was ...

  5. 大数据核心知识点:Hbase、Spark、Hive、MapReduce概念理解,特点及机制

    今天,上海尚学堂大数据培训班毕业的一位学生去参加易普软件公司面试,应聘的职位是大数据开发.面试官问了他10个问题,主要集中在Hbase.Spark.Hive和MapReduce上,基础概念.特点.应用 ...

  6. Ubuntu 16.04下使用Eclipse:创建工程时卡死的解决方法

    问题如下: Ubuntu 16.04下使用Eclipse创建工程时出现卡顿和卡死,新建一个MapReduce项目卡了一下午,鼠标变成了圆圈进度条转了一下午,还关不掉. 当我直接去关闭新建项目的窗口时, ...

  7. 如何为自己的pip包打造可以执行的系统命令

    1.我们在打包我们自己的Python Package的时候.我们不仅可以在代码中使用我们的package,而且可以添加一些可执行命令来执行自己的函数. 2 .我们应该怎么办呢? 1.首先新建目录以及文 ...

  8. Kafka分区与消费者的关系

    1.  前言 我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了, ...

  9. Java 多线程(一)—— 概念的引入

      并发和并行 并行:指两个或多个时间在同一时刻发生(同时发生): 并发:指两个或多个事件在一个时间段内发生. 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 C ...

  10. 带着新人学springboot的应用04(springboot+mybatis+redis 完)

    对于缓存也说了比较多了,大家对下图这一堆配置类现在应该有些很粗略的认识了(因为我也就很粗略的认识了一下,哈哈!),咳,那么我们怎么切换这个缓存呢?(就是不用springboot提供的默认的Simple ...