ElasticSearch集群搭建

一、前言

先介绍ElasticSearch的几个核心概念。

集群(cluster):

一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是“elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。

节点(node):

一个节点是你集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说很重要的,因为在管理过程中,可以确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。

一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。

在一个集群里,只要你想,可以拥有任意多个节点。而且,如果当前你的网络中没有运行任何Elasticsearch节点,这时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的集群。

二、准备工作

搭建有3个节点的集群,准备3台服务器。

192.168.2.86

192.168.2.87

192.168.2.88

官网下载安装包

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.tar.gz

安装第三方epel源

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

安装JDK环境(所有机器)

http://120.52.72.24/download.oracle.com/c3pr90ntc0td/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

cd /usr/local
tar -zxf jdk-8u131-linux-x64.tar.gz
ln -sv jdk1.8.0_131/ jdk
 
vi /etc/profile.d/jdk.sh

添加以下内容

export JAVA_HOME=/usr/local/jdk

export PATH=$PATH:/usr/local/jdk/bin

~

chmod 755 /etc/profile.d/jdk.sh
. /etc/profile.d/jdk.sh

验证Java环境

修改ulimit限制(所有机器)

vi /etc/security/limits.d/90-nproc.conf

*       soft  nproc           10240

*       hard  nproc           10240

*       soft  nofile        65536

*       hard  nofile        65536

vi /etc/sysctl.conf

添加下面内容

vm.max_map_count = 262144

然后执行以下命令

sysctl -p

三、安装配置集群

创建一个ELK目录,ElasticSearch安装在这个目录下。

[[email protected] local]#mkdir elk
[[email protected] local]# cd elk/

安装Head插件:

先安装Head插件,它是一个管理ElasticSearch集群的工具(这步只需在192.168.2.86安装)

yum install npm git  #安装node.js
git clonegit://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start &  或者 grunt server 启动

通过http://192.168.2.86:9100/ 登录查看

安装ElasticSearch

解压ElasticSearch安装包到ELK目录下

[[email protected] local]# tar -zxfelasticsearch-5.3.0.tar.gz

下面开始配置ElasticSearch集群,编辑配置文件

[[email protected] config]$ pwd
/home/unilife/elk/elasticsearch-cluster2/config
[[email protected] config]$ vi elasticsearch.yml

添加以下配置内容

cluster.name: unilifemedia

node.name: node-1

path.data: /tmp/elasticsearch/data

path.logs: /tmp/elasticsearch/logs

network.host: 0.0.0.0

http.port: 19200

transport.tcp.port: 19300

http.cors.enabled: true

http.cors.allow-origin: "*"

discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"]

配置选项解析:

cluster.name:           集群名称,一个节点要加入某个集群,需配成跟那个集群的名称一样

node.name:             节点名称

path.data: /tmp/elasticsearch/data                 数据目录

path.logs: /tmp/elasticsearch/logs                            日志目录

network.host: 0.0.0.0                                           监听地址

http.port: 19200                                                     设置对外服务的http端口,默认为9200。

transport.tcp.port: 19300                                   设置节点之间交互的tcp端口,默认是9300。

http.cors.enabled: true                                        启用跨域,不然head插件会无法连接集群

http.cors.allow-origin: "*"                                   跨域配置,允许所有

discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"]     设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点

192.168.2.87的elasticsearch.yml配置如下:

cluster.name: unilifemedia

node.name: node-2

path.data: /tmp/elasticsearch/data

path.logs: /tmp/elasticsearch/logs

network.host: 0.0.0.0

http.port: 19200

transport.tcp.port: 19300

http.cors.enabled: true

http.cors.allow-origin: "*"

discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"]

192.168.2.88的elasticsearch.yml配置如下:

cluster.name: unilifemedia

node.name: node-3

path.data: /tmp/elasticsearch/data

path.logs: /tmp/elasticsearch/logs

network.host: 0.0.0.0

http.port: 19200

transport.tcp.port: 19300

http.cors.enabled: true

http.cors.allow-origin: "*"

discovery.zen.ping.unicast.hosts:["192.168.2.86", "192.168.2.87", "192.168.2.88"]

在各个节点分别启动ElasticSearch

[[email protected] bin]$ ./elasticsearch &

通过head插件查看集群状态

集群搭建完成。

时间: 2024-12-26 11:37:51

ElasticSearch集群搭建的相关文章

和我一起打造个简单搜索之ElasticSearch集群搭建

我们所常见的电商搜索如京东,搜索页面都会提供各种各样的筛选条件,比如品牌.尺寸.适用季节.价格区间等,同时提供排序,比如价格排序,信誉排序,销量排序等,方便了用户去找到自己心里理想的商品. 站内搜索对于一个网站几乎是标配,只是搜索的强大与否的区别,有的网站只支持关键词模糊搜索,而淘宝,京东提供了精细的筛选条件,同时支持拼音搜索等更方便的搜索方式. 由于笔者在一家做网络文学的公司工作,所以实现就是以小说为商品的搜索,具体可以参考起点网小说的搜索. 如图所示,起点网的搜索提供了关键词搜索和排序条件以

elasticsearch集群搭建实例

下个月又开始搞搜索了,几个月没动这块还好没有落下. 晚上在自己虚拟机上搭建了一个简易搜索集群,分享一下. 操作系统环境: Red Hat 4.8.2-16 elasticsearch : elasticsearch-1.4.1 集群搭建方式: 一台虚拟机上2个节点. 集群存放路径:/export/search/elasticsearch-cluster 必备环境:  java运行环境 集群搭建实例展示: 1. 解压tar包,创建集群节点 #进入到集群路径 [[email protected] e

1:elasticsearch集群搭建

PS:这里使用的ES版本为1.3.0 ES的集群搭建比较简单,主要是修改conf/elasticsearch.yml文件 ##################### Elasticsearch Configuration Example ##################### # This file contains an overview of various configuration settings, # targeted at operations staff. Applicati

基于swarm的elasticsearch集群搭建

es集群构建: 1.安装head插件: for Elasticsearch 5.x: docker run -p 9100:9100 mobz/elasticsearch-head:5 ( docker run -p 9100:9100 10.211.121.26/library/elasticsearch-head ) 出现问题 head主控页面是可以显示的,但是显示连接失败 "集群健康值: 未连接" 解决方案 修改elasticsearch.yml文件 vim $ES_HOME$/

elasticsearch 集群搭建

需要编辑的文件是config/elasticsearch.yml文件 需要配置的项目有: # Use a descriptive name for your cluster: # cluster.name: Hadoop # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # #node.name: n

Elasticsearch集群搭建1Welcome to my ELK world!

系统环境: jdk1.8环境ubuntu16.04系统 172.20.1.10 node-1ubuntu16.04系统 172.20.1.20 node-2ubuntu16.0.4系统 172.20.1.30 node-3 安装elasticsearch版本:elasticsearch-6.2.2.tar.gz安装包下载路径(里边有6.2.2版本.6.4.2版本和jdk1.8的包):https://pan.baidu.com/s/1bTBb6n27wcunwAFCRB5yNQ 密码:8raw1.

elasticsearch集群搭建 kafka filebeat logstach收集日志高可用方案

文档在很久之前写的了,这里留个记录,我的码云地址    点击查看 原文地址:https://www.cnblogs.com/LDDXFS/p/12052072.html

手把手教你搭建一个Elasticsearch集群

一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步我们需要保证的就是 Elasticsearch 的高可用性,什么是高可用性呢?它通常是指,通过设计减少系统不能提供服务的时间.假设系统一直能够提供服务,我们说系统的可用性是 100%.如果系统在某个时

搭建一个Elasticsearch集群

一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步我们需要保证的就是 Elasticsearch 的高可用性,什么是高可用性呢?它通常是指,通过设计减少系统不能提供服务的时间.假设系统一直能够提供服务,我们说系统的可用性是 100%.如果系统在某个时