2021年11月20日

elasticsearch安装、环境配置

作者 codecafe

安装最新版java

下载地址(64位)

wget http://javadl.oracle.com/webapps/download/AutoDL?BundleId=220304_d54c1d3a095b4ff2b6607d096fa80163

安装

rpm -ivh jre-8u131-linux-x64.rpm --prefix=/usr/java/

配置JAVA_HOME

#vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_131

source /etc/profile

安装elasticsearch

下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.2.rpm

安装

rpm -ivh elasticsearch-5.4.2.rpm

chkconfig --add elasticsearch

service elasticsearch start

这就完成了单节点的安装,通过 curl localhost:9200 访问查看得到以下信息:

@root:# curl localhost:9200
{
  "name" : "fBQprn6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "XviH-Hv-SGun00-JUR0Bng",
  "version" : {
    "number" : "5.4.2",
    "build_hash" : "929b078",
    "build_date" : "2017-06-15T02:29:28.122Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.1"
  },
  "tagline" : "You Know, for Search"
}

配置elasticsearch集群

配置文件路径

/etc/elasticsearch/elasticsearch.yml

修改host

network.host:192.168.1.22

network.host修改为本机ip

默认为127.0.0.1或者[::1],更改后elasticsearch会认为你从开发环境转变为生产环境。

bootstrap.memory_lock

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

组建es集群时,需要将锁定内存功能关闭。
此参数设置为true时,用于锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。

discovery.zen.minimum_master_nodes

discovery.zen.minimum_master_nodes: 1

设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。一般设置为:master的数量除以2再加1

discovery.zen.ping.unicast.hosts

discovery.zen.ping.unicast.hosts: ["192.168.1.22:9200","92.168.1.23:9200"]

新增节点时,提供集群中可能存在和可联系的其他节点的种子列表。不需要全部列出。

jvm.options设置

配置文件

/etc/elasticsearch/jvm.options

jvm heap的大小

-Xms256m
-Xmx256m

1.将xms和xmx 最小堆的大小和最大堆的大小设置成一样
2.heap越大越好,但是越大垃圾回收的时间越长
3.为了保证内核文件缓存有足够的内存,Xmx不应该大于物理内存的50%
4.最高不要超过32G(jvm 压缩的极值),最好是26G以内

系统设置

修改内核参数/etc/sysctl.conf

vm.swappiness=1

操作系统会尽量利用内存,来做文件系统缓存。会占用未使用的应用程序的内存。这会导致部分jvm堆或者可执行页面被交换到磁盘。

通过命令关闭系统交换分区sudo swapoff -a

一般1个G的内存可修改为10, 2个G的可改为5, 甚至是0

vm.max_map_count=262144

max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量。es集群需要该值至少设置为262144

配置完成后执行sysctl -p 加载系统参数

修改文件描述符vim /etc/profile

ulimit -n 65536

普通用户需要inux的软硬件限制文件:

vim /etc/security/limits.conf

* soft memlock unlimited
* hard memlock unlimited
* soft nofile 65536
* hard nofile 65536

memlock 最大锁定内存
nofile 是代表最大文件打开数
soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比hard 限制高。

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

修改如下内容:

* soft nproc 1024

修改为

* soft nproc 2048

动态设置

ulimit -u 2048  

修改linux系统进程限制,linux下可以通过ulimit -l unlimited命令。

安装客户端sense插件

在chrome浏览器搜索扩展sense

参考: