我是靠谱客的博主 孤独翅膀,最近开发中收集的这篇文章主要介绍Elasticsearch6.3安装,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Elasticsearch6.3版本开始支持sql,所以赶紧弄来玩玩,本文介绍RPM安装方式。

RPM安装可以从网上下载进行安装也可以通过RPM仓库进行安装,他可以在任何基于RPM的系统上进行安装,包括OpenSuSE, SLES, Centos, Red Hat, 和 Oracle Enterprise。

注意:RPM安装方式不支持旧版本的操作系统,如SLES 11 ,CentOS 5,请用zip,tar.gz进行安装。

          Elasticsearch需要Java8以上版本。

1.安装

 1.1从RPM仓库安装

 创建文件elasticsearch.repoRedHat 系统/etc/yum.repos.d/路径下,OpenSuSE系统在/etc/zypp/repos.d/路径下

 

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1

type=rpm-md

用以下命令安装Elasticsearch:

 

sudo yum install elasticsearch   centos系统跟老版本Redhat系统
sudo dnf install elasticsearch FedoraRedhat系统跟新版本Redhat系统
sudo zypper install elasticsearch OpenSUSE系统  centos系统跟老版本Redhat系统
sudo dnf install elasticsearch FedoraRedhat系统跟新版本Redhat系统
sudo zypper install elasticsearch OpenSUSE系统

 

1.2手动下载安装:

 

 

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm.sha512
shasum -a 512 -c elasticsearch-6.3.0.rpm.sha512 
sudo rpm --install elasticsearch-6.3.0.rpm
sudo rpm --install elasticsearch-6.3.0.rpm

 

校验成功会返回:elasticsearch-6.3.0.rpm: OK

 

RPM将配置文件、日志和数据目录放置在基于RPM的系统的适当位置

 

 

home目录       /usr/share/elasticsearch

bin目录         /usr/share/elasticsearch/bin

conf目录     /etc/elasticsearch   /etc/sysconfig/elasticsearch

data目录   /var/lib/elasticsearch      可配置path.data

log目录   /var/log/elasticsearch        可配置path.log

plugins目录  /usr/share/elasticsearch/plugins

2.启动:

有两种启动方式SysV init 跟systemd(新版本)可以用如下命令查看使用哪一种启动方式:

ps -p 1

2.1:以SysV init方式启动:

添加到开启启动项:

 

sudo chkconfig --add elasticsearch

 

用一下命令启动停止Elasticsearch集群:

 

 

sudo -i service elasticsearch start

 

 

sudo -i service elasticsearch stop

如果启动失败请查看/var/log/elasticsearch/目录下的STDOUT. Log日志。

2.2以systemd方式启动:

添加开机启动项:

 

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

用一下命令启动或者停止Elasticsearch集群:

 

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

 

这些命令不返回启动成功或失败的信息,可以用如下命令查看相关日志:

 

 

sudo journalctl -f

用如下命令列出Elasticsearch相关的日志:

sudo journalctl --unit elasticsearch

用如下命令列出从给定时间的elasticsearch相关的服务日志:

 

sudo journalctl --unit elasticsearch --since  "2016-10-30 18:17:16"

 

3.检查Elasticsearch是否启动

 

你可以在本机测试发送一个HTTP请求到9200端口

curl -X GET "localhost:9200/"

如果启动成功会返回类似如下信息:

 

{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "oss",
    "build_type" : "zip",
    "build_hash" : "f27399d",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}

 

4.配置Elasticsearch

4.1.系统配置

在哪里配置系统配置取决于你用什么包安装跟你用的什么操作系统,如果你用的是zip,tar.gz包安装的可以在/etc/security/limits.conf配置,比如:

elasticsearch - nofile 65536 

这个修改在打开一个新的会话时生效。

 

注意:如果是ubuntu系统会忽略limits.conf,如果要使其生效需要编辑/etc/pam.d/su取消下面这行的注释:

# session required pam_limits.so

当你使用RPM或者Debian包安装时,可以在如下配置文件中配置

 

 

RPM

/etc/sysconfig/elasticsearch

Debian

/etc/default/elasticsearch

如果你是用RPM或者Debian包安装并且使用systemd则需要通过systemd指定

/usr/lib/systemd/system/elasticsearch.service文件包含了默认的系统限制,如需覆盖他,需新增一个文件

/etc/systemd/system/elasticsearch.service.d/override.conf,如:

 

[Service]
LimitMEMLOCK=infinity

 

修改完之后运行如下命令来重新加载:

 

 

sudo systemctl daemon-reload

 

禁用swapping:

永久禁用swapping需要编辑/etc/fstab文件,注释掉所有包含swap.的行。

还有个选择就是确保vm.swappiness设置为1

另一种选择是使用mlockall,在config/elasticsearch.yml文件中添加如下内容:

 

bootstrap.memory_lock: true

注意:如果试图分配比可用内存更多内存的时候mlockall可能会导致jvm或者shell会话退出。

在启动Elasticsearch后可以用如下命令来检查mlockall是否生效:

curl -X GET "localhost:9200/_nodes?filter_path=**.mlockall"

如果你看到mlockall显示false,说明请求失败,你还会看到一条日志包含Unable to lock JVM Memory,这种情况大多数的原因是因为运行Elasticsearch的用户没有lock memory的权限,你可以按照下面来进行操作:

zip,tar.gz安装的用户可以在/etc/security/limits.conf文件中设置memlock为unlimited

RPM,Debian用户可以在系统配置文件中设置MAX_LOCKED_MEMORY为unlimited

使用systemd的用户在系统配置文件中设置LimitMEMLOCK 为 infinity

文件描述符:

如果是zip,tar.gz安装的用户在/etc/security/limits.conf中设置

elasticsearch - nofile 65536 

RPM或者Debian系统默认已经设置为65536并且不需要做其他配置,你可以用以下命令查看文件描述符:

curl -X GET "localhost:9200/_nodes/stats/process?filter_path=**.max_file_descriptors"

虚拟内存:

Elasticsearch默认使用mmapfs路径来存储索引,操作系统默认的mmap count太小,可以使用如下命令进行调整:

 

sysctl -w vm.max_map_count=262144

 

永久修改需要在/etc/sysctl.conf文件中设置vm.max_map_count值,设置完后需要重启,并用如下命令查看:

 

sysctl vm.max_map_count

RPM,Debian安装的会自动设置该值,不需要进一步的配置。

线程数:

Elasticsearch为不同的操作使用了许多线程池,为了确保能够在需要的时候创建线程必须保证能创建的线程数至少为4096

可以在/etc/security/limits.conf中设置nproc为4096

使用systemd会自动配置,不需要进一步配置。

4.2 elasticsearch重要配置

path.data跟path.log

如果你用的是zip,tar.gz包安装的那么你的data,log目录默认在ES_HOME路径下,如果这些重要的文件在默认的路径下,在升级Elasticsearch的时候很可能会被删除,所以尽可能的配置其他路径:

 

path:
  logs: /var/log/elasticsearch
  data: /var/data/elasticsearch

RPM,Debian安装的默认已经使用指定路径。

data还可以配置多个路径,如下:

 

path:
  data:
    - /mnt/elasticsearch_1
    - /mnt/elasticsearch_2
    - /mnt/elasticsearch_3

 

cluster.name

 

你需要配置一个相同的cluster.name在不同的节点,才能加入同一个集群,默认为elasticsearch

 

cluster.name: logging-prod

node.name

node.name默认会使用UUID的前7位数字作为node id,这个id是持久化的,所以我们可以改为一个比较有意义的名字

 

node.name: prod-data-2

也可以使用HOSTNAME作为node.name

network.host

默认是绑定的本机地址127.0.0.1 和[::1],所以需要修改成我们本机的ip地址

 

network.host: 192.168.1.10

 

discovery setting

用于节点与节点之间的感知与master的选举,有两个配置:

 

discovery.zen.ping.unicast.hosts:
   - 192.168.1.10:9300
   - 192.168.1.11    不写端口默认为transport.profiles.default.port
   - seeds.mydomain.com  也可以写域名   不写端口默认为transport.profiles.default.port
   - seeds.mydomain.com  也可以写域名

 

discovery.zen.minimum_master_nodes: 2 (总节点数/2+1)

setting the heap size

在jvm.options里设置heap size,以下几点可参考,具体要看机器的内存大小:

1.将xms跟xmx设置为相等

2.设置的越大elasticsearch就可以缓存更多,但是过大会导致长时间的GC。

3.不要超过系统可用内存的50%。

总结:安装完后发现用systemd方式启动有问题,然后直接到bin目录下用./elasticsearch -d 命令进行启动正常,所以还是建议使用zip或者tar.gz包安装方式比较简单。

下面是总结的用tar.gz安装后需要修改的一些参数:

vi elasticsearch.yml修改如下参数:

cluster.name: myCluster(集群名称,每台机器必须设置一样的才能组成一个集群)

node.name: node-1(也可以设置为hostname)

path.data: /home/elasticsearch/data(es数据存放路径,建议单独设置

path.logs: /home/elasticsearch/logs(es日志存放路径,建议单独设置

bootstrap.memory_lock: true(此处如果设置为true,必须要在/etc/security/limits.conf 设置memlock unlimited

network.host: 192.168.1.168(设置为本机ip)

http.port: 9200(es端口)

discovery.zen.ping.unicast.hosts: ["host1", "host2","host3"](配置每个节点的主机名或ip)

discovery.zen.minimum_master_nodes: 2 (一般设置为 节点数/2+1)

http.cors.enabled: true
http.cors.allow-origin: "*"(head插件需要增加这两个配置才能跨域访问)

禁止自动创建index需添加如下两个配置

action.auto_create_index: false

xpack.watcher.enabled: false

 

vi /etc/sysctl.conf加入如下内容:

 vm.swappiness=1
 vm.max_map_count = 262144 

vi /etc/security/limits.conf 加入如下内容:

* soft nofile  65536
* hard nofile  65536
* soft nproc  65536
* soft nproc  65536
 elasticsearch  soft memlock unlimited
 elasticsearch  hard memlock unlimited

 

 

 

 

最后

以上就是孤独翅膀为你收集整理的Elasticsearch6.3安装的全部内容,希望文章能够帮你解决Elasticsearch6.3安装所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部