概述
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.repo(RedHat 系统在/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安装所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复