- 使用的 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 内有 dqcgm这个用户
- chown -R dqcgm.dqcgm /usr/local/es
2.4 切换用户
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/