Linux 安装 ElasticSearch
使用的 ElasticSearch 的版本是 6.8.4。ElasticSearch6.x 要求 Linux 内核必须是 3.5+版本以上。
在 linux 操作系统中,查看内核版本的命令是: uname -a
课堂使用的 Linux 是 CentOS8。内核使用的是 4.4。
ElasticSearch6.X 版本要求 JDK 版本至少是 1.8.0_131。 提供 1.8.0_161JDK 安装包。
1 为 ElasticSearch 提供完善的系统配置
ElasticSearch 在 Linux 中安装部署的时候,需要系统为其提供若干系统配置。如:应
用可启动的线程数、应用可以在系统中划分的虚拟内存、应用可以最多创建多少文件等。
1.1 修改限制信息
vi /etc/security/limits.conf
是修改系统中允许应用最多创建多少文件等的限制权限。Linux 默认来说,一般限制应用最多创建的文件是 65535 个。但是 ElasticSearch 至少需要 65536 的文件创建权限。修改后的内容为:
* soft nofile 65536
* hard nofile 65536
1.2 修改线程开启限制
在 CentOS6.5 版本中编辑下述的配置文件
vi /etc/security/limits.d/90-nproc.conf
在 CentOS7+版本中编辑配置文件是:
vi /etc/security/limits.conf
是修改系统中允许用户启动的进程开启多少个线程。默认的 Linux 限制 root 用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启 1024 个线程。必须修改限制数为 4096+。因为 ElasticSearch 至少需要 4096 的线程池预备。ElasticSearch 在 5.x版本之后,强制要求在 linux 中不能使用 root 用户启动 ElasticSearch 进程。所以必须使用其他用户启动 ElasticSearch 进程才可以。
* soft nproc 4096
root soft nproc unlimited
注意:Linux 低版本内核为线程分配的内存是 128K。4.x 版本的内核分配的内存更大。如果虚拟机的内存是 1G,最多只能开启 3000+个线程数。至少为虚拟机分配 1.5G 以上的内存。
1.3 修改系统控制权限
CentOS6.5 中的配置文件为:
vi /etc/sysctl.conf
CentOS8 中的配置文件为:
vi /etc/sysctl.d/99-sysctl.conf
系统控制文件是管理系统中的各种资源控制的配置文件。ElasticSearch 需要开辟一个65536 字节以上空间的虚拟内存。Linux 默认不允许任何用户和应用直接开辟虚拟内存。
新增内容为:
vm.max_map_count=655360
使用命令: sysctl -p 。 让系统控制权限配置生效。
2 安装 ElasticSearch
ElasticSearch 是 java 开发的应用。在 6.8.4 版本中,要求 JDK 至少是 1.8.0_131 版本以上。
ElasticSearch 的安装过程非常简单。解压立刻可以使用。
2.1 解压缩安装压缩包
tar -zxf elasticsearch-6.8.4.tar.gz
2.2 移动 ElasticSearch
mv elasticsearch-6.8.4 /usr/local/es/
2.3 修改 ElasticSearch 应用的所有者
因为 ElasticSearch 不允许 root 用户启动,而课堂案例中,ElasticSearch 是 root 用户解压缩的。所以解压后的 ElasticSearch 应用属于 root 用户。所以我们需要将ElasticSearch 应用的所有者修改为其他用户。当前课堂案例中虚拟机 Linux 内有 bjsxt 这个用户。
chown -R bjsxt.bjsxt /usr/local/es
2.4 切换用户
su bjsxt
2.5 修改配置
修改 config/elasticsearch 的配置文件,设置可访问的客户端。0.0.0.0 代表任意客户端访问。
vi config/elasticsearch.yml
增加下述内容:
network.host: 0.0.0.0
2.6 启动
前台启动
/usr/local/es/bin/elasticsearch
关闭: ctrl + c
后台启动
/usr/local/es/bin/elasticsearch -d
关闭:
jps 命令查看 ElasticSearch 线程的编号
kill -9 ElasticSearch 线程编号
2.7 测试连接
curl http://localhost:9200
返回如下结果:
{
"name" : "L6WdN7y",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "s7_GSd9YQnaH10VQBKCQ5w",
"version" : {
"number" : "6.3.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "eb782d0",
"build_date" : "2018-06-29T21:59:26.107521Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
3 搭建集群
修改配置文件$elasticsearch_home/config/elasticsearch.yml
增加配置:
# 发现的节点 IP
discovery.zen.ping.unicast.hosts: ["ip1", "ip2"]
# 最小集群数:常用计算公式 - 总数/2 + 1
discovery.zen.minimum_master_nodes: min_nodes_count
4 安装 Kibana
Kibana 是一个基于 WEB 的 ElasticSearch 管理控制台。现阶段安装 Kibana 主要是为了方便学习。
在 Linux 中安装 Kibana 很方便。解压,启动即可。Kibana 要求的环境配置是小于ElasticSearch 的要求的。
tar -zxf kibana-6.3.1-linux-x86_64.tar.gz
修改 config/kibana.yml
vi config/kibana.yml
新增内容: server.host: "0.0.0.0"
bin/kibana
访问时,使用浏览器访问 http://192.168.2.119:5601/