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系统

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

校验成功会返回: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  也可以写域名

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包安装方式比较简单。

猜你喜欢

转载自blog.csdn.net/u014516601/article/details/80746383