基于CentOS7的Elasticsearch集群搭建记录

环境

Linux系统:Centos7
Java版本:JDK1.8

2台服务器部署结构

hostname tomas1 hadoopSvr3
IP 10.62.124.25 10.62.124.43
ES ES ES

一、前提

1、JDK版本要求1.8及以上;

2、ES不能以root用户身份运行 确保运行用户对各使用到的目录的权限;

2.1、创建elsearch用户组及elsearch用户

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch

2.2、更改安装目录elasticsearch-6.6.1及内部文件的所属用户及组为elsearch:elsearch

cd /usr/local/
chown -R elsearch:elsearch elasticsearch-6.6.1

更改保存ES数据和log等数据目录所属用户及祖为elsearch:elsearch

cd /data
chown -R elsearch:elsearch elastic

3、配置操作系统vm.max_map_count参数,请使用root用户登录系统,执行以下命令

sysctl -w vm.max_map_count=655360

注:vm.max_map_count参数的值至少要设置大于等于262144

二、安装ES

1、下载ES安装包

官网下载地址:https://www.elastic.co/downloads/elasticsearch
(以版本elasticsearch-6.6.1.tar.gz为示例)

2、将安装包放到/usr/local目录,解压缩安装包

tar zxvf elasticsearch-6.6.1.tar.gz 

三、配置

配置文件说明

elasticsearch.yml	#ES基本配置文件		
jvm.options  		#Jvm参数配置文件
log4j2.properties	#Log4j配置文件

3.1、配置文件分离

配置文件目录默认为:$ES_HOME/config,如果需要配置文件与软件分离(方便升级),可以通过 ES_PATH_CONF 环境变量来指定:

vi /etc/profile

打开后,在文档最下方添加如下配置:

export ES_HOME=/usr/local/elasticsearch-6.6.1
export ES_PATH_CONF=/data/elastic/elasticsearch/config

:wq!保存退出,执行如下命令,使更改生效

source /etc/profile

也可以在启动命令行中通过参数指定声明

3.2、配置elasticsearch.yml

3.2.1、Cluster配置,所属的集群名,默认为 elasticsearch ,可自定义

cluster.name: ES-cluster

3.2.2、Node配置,节点名,默认为 UUID前7个字符,可自定义

node.name: ${HOSTNAME}
(以主机名作节点名)

3.2.3、Paths配置,数据目录和日志目录,生产环境下应与软件分离

path.data: /data/elastic/elasticsearch/data
path.logs: /data/elastic/elasticsearch/logs

3.2.4、Network配置

#network.host IP绑定
默认绑定的是[“127.0.0.1”, “[::1]”]回环地址,集群下要服务间通信,需绑定一个ipv4或ipv6地址
network.host: 10.62.124.25

#http.port: 9200
对外服务的http 端口, 默认 9200-9300 。可以为它指定一个值或一个区间,当为区间时会取用区间第一个可用的端口。

3.2.5、Discovery配置,Discovery Config 节点发现配置

ES中默认采用的节点发现方式是 zen(基于组播(多播)、单播)。在应用于生产前有两个重要参数需配置:
discovery.zen.ping.unicast.hosts: [“host1”,“host2:port”,“host3[portX-portY]”] 单播模式下,设置具有master资格的节点列表,新加入的节点向这个列表中的节点发送请求来加入集群
discovery.zen.minimum_master_nodes: 1 这个参数控制的是,一个节点需要看到具有master资格的节点的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
discovery.zen.ping.unicast.hosts: [“10.62.124.25”, “10.62.124.43”]
discovery.zen.minimum_master_nodes: 2

3.3、配置jvm.options

3.3.1、Jvm heap 大小设置

生产环境中一定要在jvm.options中调大它的jvm内存:
-Xms16g
-Xmx16g

3.3.2、JVM heap dump path 设置

生产环境中指定当发生OOM异常时,heap的dump path,好分析问题。在jvm.options中配置:
-XX:HeapDumpPath=/data/elastic/elasticsearch

四、启动集群

#切换到elsearch用户

su elsearch
cd /usr/local/elasticsearch-6.6.1
./bin/elasticsearch -d

五、检查ES是否安装成功

Elasticsearch直接听过了http接口,所以直接使用curl命令或者浏览器就可以查看到一些集群相关的信息。
打开浏览器,输入地址 http://10.62.124.25:9200 出现以下内容则表示安装成功

{
  "name" : "tomas1",
  "cluster_name" : "ES-cluster",
  "cluster_uuid" : "1zFScgM8RhyweQAsOGgiPQ",
  "version" : {
    "number" : "6.6.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "1fd8f69",
    "build_date" : "2019-02-13T17:10:04.160291Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

查看集群信息,浏览器地址栏输入地址:http://10.62.124.25:9200/_cat/nodes?pretty,回车,输出内容如下

10.62.124.43 14 98 1 0.11 0.40 0.27 mdi - hadoopSvr3
10.62.124.25 12 38 3 0.09 0.66 1.14 mdi * tomas1	#  *号表示为当前节点为主节点的意思

如果你要想查看更多有关于集群信息、当前节点统计信息等等,可以使用一下命令来获取到所有可以查看的信息。

curl -XGET 'http://0.62.124.25:9200/_cat?pretty'  

参考:
https://www.cnblogs.com/leeSmall/p/9189078.html
https://www.cnblogs.com/leeSmall/p/9220535.html

猜你喜欢

转载自blog.csdn.net/wangkai_123456/article/details/87941615