linux离线安装elasticsearch7.8
1.官网下载地址
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0
2.上传到服务器指定目录
例如这里我上传到/opt/app/middles/
目录下
3.解压软件
# 解压缩
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
4.创建用户
Elasticsearch 不允许 root 用户直接运行,所以要创建新用户,在 root 用户中创建新用户。
useradd es #新增 es 用户
passwd es #为 es 用户设置密码,例`elasticadmin`
userdel -r es #如果错了,可以删除再加
chown -R es:es /opt/app/middles/elasticsearch-7.8.0 #文件夹所有者
5.修改配置文件
5.1第一个节点的配置文件
注意:第一个节点的配置文件和其他节点启动的配置文件稍微不一样。
vi /opt/app/middles/elasticsearch-7.8.0/config/elasticsearch.yml
# 加入如下配置
cluster.name: my-study-es
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
# The default list of hosts is ["127.0.0.1", "[::1]"]
#对于第一个Elasticsearch节点,您不需要显式地在配置中指定discovery.seed_hosts。因为第一个节点是集群的初始节点,它将成为种子节点,等待其他节点加入。
#当您启动第一个Elasticsearch节点时,它将自动成为集群的初始节点,并监听默认的传输端口9300和HTTP端口9200。其他节点可以通过该初始节点的IP地址和端口来发现和加入集群。
#因此,对于第一个节点的配置,您只需确保cluster.name的值与其他节点相同,以确保它们属于同一个集群。第一个节点无需配置
#discovery.seed_hosts: ["192.168.43.101:9300", "host2"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#一旦集群已经初始化并且主节点选举成功完成,您应该从所有节点的配置中移除 cluster.initial_master_nodes 参数。集群状态将被保存,所以在后续的重新启动中,这个参数不再需要。
#请注意,只有在形成全新集群或添加新的主节点候选到集群时,才需要设置 cluster.initial_master_nodes 参数。在日常操作中,这个参数通常不需要在 elasticsearch.yml 文件中出现。
#最后,主节点的稳定性非常关键,因此在选择主节点候选时,应确保这些节点的硬件资源、网络连接和可靠性都是足够的。
#移除 cluster.initial_master_nodes 参数后,通常情况下不需要重启 Elasticsearch 节点。一旦集群形成并且第一次主节点选举已经成功完成,集群状态将会持久化。这个参数仅在集群的初始启动阶段需要,用于避免分裂脑症状并确保正确的主节点选举。
#这个参数,启动完注释掉,集群不用重启
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
# 跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
5.2第2个节点的配置文件
注意:后面再加多少节点,都按照这个配置文件加就行。
cluster.name: my-study-es
node.name: node-2
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9301
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#对于第一个Elasticsearch节点,您不需要显式地在配置中指定discovery.seed_hosts。因为第一个节点是集群的初始节点,它将成为种子节点,等待其他节点加入。
#当您启动第一个Elasticsearch节点时,它将自动成为集群的初始节点,并监听默认的传输端口9300和HTTP端口9200。其他节点可以通过该初始节点的IP地址和端口来发现和加入集群。
#最佳实践通常是在所有节点上配置相同的discovery.seed_hosts列表
discovery.seed_hosts: ["192.168.43.101:9300", "192.168.43.101:9301"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#一旦集群已经初始化并且主节点选举成功完成,您应该从所有节点的配置中移除 cluster.initial_master_nodes 参数。集群状态将被保存,所以在后续的重新启动中,这个参数不再需要。
#请注意,只有在形成全新集群或添加新的主节点候选到集群时,才需要设置 cluster.initial_master_nodes 参数。在日常操作中,这个参数通常不需要在 elasticsearch.yml 文件中出现。
#最后,主节点的稳定性非常关键,因此在选择主节点候选时,应确保这些节点的硬件资源、网络连接和可靠性都是足够的。
#移除 cluster.initial_master_nodes 参数后,通常情况下不需要重启 Elasticsearch 节点。一旦集群形成并且第一次主节点选举已经成功完成,集群状态将会持久化。这个参数仅在集群的初始启动阶段需要,用于避免分裂脑症状并确保正确的主节点选举。
#这个参数,启动完注释掉,集群不用重启
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
# 跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
6.修改/etc/security/limits.conf
vi /etc/security/limits.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
7.修改/etc/security/limits.d/20-nproc.conf
vi /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
# 每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建的进程数的限制
* hard nproc 4096
# 注: * 带表 Linux 所有用户名称
8.修改/etc/sysctl.conf
vi /etc/sysctl.conf
# 在文件中增加下面内容
# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
9.重新加载配置文件
sysctl -p
10.使用es用户启动es
su - es
cd /opt/app/middles/elasticsearch-7.8.0/
#后台启动
bin/elasticsearch -d
bin/elasticsearch -d -Xmx2g -Xms2g #后台启动,启动时指定内存大小(2G)
bin/elasticsearch -d -Des.logger.level=DEBUG #可以在日志中打印出更加详细的信息。
11.测试软件
浏览器中输入地址: http://ip:9200/,如下图,表示成功了,如果访问不到,记得排查防火墙。