官网路径
https://www.elastic.co/cn/downloads/elasticsearch
一、下载解压
右键获取下载路径之后,进入linux目录下
1.下载压缩包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.2-linux-x86_64.tar.gz
2.解压
tar -zxvf elasticsearch-8.8.2-linux-x86_64.tar.gz
3.命令解释
gzip 和 tar 是两种不同的工具,具有不同的功能和用途。
gzip 是一种用于压缩单个文件的压缩程序。它使用 DEFLATE 压缩算法,可以显著减小文件的大小。gzip 压缩后的文件通常以 .gz 扩展名结尾。gzip 压缩的优势包括压缩速度快、压缩比较高、压缩后的文件占用较少的存储空间。然而,gzip 只能压缩单个文件,不能将多个文件组合成一个归档文件。
tar 是一种归档工具,用于将多个文件和目录组合成一个单独的文件。tar 可以将文件和目录保持原始的目录结构,并且不进行压缩。tar 归档文件通常以 .tar 扩展名结尾。tar 的优势在于可以方便地归档和备份多个文件和目录,并且保持原始的文件权限和属性。然而,tar 并不具备压缩功能,所以归档文件的大小通常比原始文件大。
为了结合 gzip 的高压缩率和 tar 的归档功能,通常会将两者结合使用,创建一个压缩归档文件。例如,使用 tar 命令将多个文件和目录组合成一个归档文件,然后使用 gzip 命令对归档文件进行压缩,生成一个 .tar.gz 或 .tgz 文件。这样既保留了归档的功能,又实现了文件的压缩。
总结一下,gzip 用于压缩单个文件,压缩比高,速度快;tar 用于归档多个文件和目录,保持原始的文件结构和属性。它们可以结合使用,创建压缩归档文件,以满足不同的需求。
当您使用 tar -zxvf 命令来解压缩一个 .tar.gz 文件时,以下是每个参数的解释:
-
-z:这个选项告诉 tar 使用 gzip 解压缩文件。因为您的文件是以 .tar.gz 结尾的,所以需要使用 gzip 解压缩。
-
-x:这个选项表示解压缩操作,告诉 tar 解压缩归档文件。
-
-v:这个选项表示详细模式(verbose mode),在解压缩过程中显示详细的输出信息,包括解压缩的文件和目录。
-
-f:这个选项后面跟着要解压缩的文件名。它告诉 tar 指定要解压缩的归档文件。
综上所述,tar -zxvf 命令告诉 tar 使用 gzip 解压缩归档文件,并在解压缩过程中显示详细的输出信息。
请注意,参数的顺序是可以变化的,例如 tar -xfzv 或 tar -vfzx 也是有效的,只要指定了正确的参数即可。
二、配置参数
- 为了能够使用外网进行访问我们es服务,我们还需要进行如下的配置:
vim config/elasticsearch.yml
修改
network.host: 0.0.0.0
http.port: 9200
-
关闭es8默认开启SSL 认证
因为 SSL 需要使用https方式请求,所以有以下两种解决办法:- 使用 https 发送请求,即:把 http 请求改成 https 即可。
- 修改配置文件,需要修改配置文件(elasticsearch.yml)。
xpack.security.enabled: false
- 添加一个普通用户
elasticsearch不支持root用户进行启动,所以我们需要在重新添加一个普通用户并赋予相应等权限,命令如下
#这个命令用于在系统中创建一个新的用户账户。在这个例子中,它创建了一个名为 "esUser " 的用户账户。
#新创建的用户将具有自己的用户 ID(UID)和组 ID(GID),以及一个主目录和登录 shell。
useradd esUser
#这个命令用于更改文件或目录的所有者(owner)和所属组(group)。在这个例子中,它将 /data/elasticsearch-8.8.2 目录以及该目录下的所有文件和子目录的所有者和所属组都设置为 "esUser "。
chown -R esUser:esUser /data/elasticsearch-8.8.2
-R 选项表示递归操作,即对目录下的所有文件和子目录都进行相同的所有者和所属组的更改。
esUser:esUser 表示将所有者和所属组都设置为 "esUser "。
这两个命令通常用于在系统中创建用户账户并设置文件或目录的所有者和所属组,以确保特定用户具有适当的权限来访问和管理相关文件或目录。
切换用户
su - esUser
-
开启防火墙和安全组
具体操作步骤如下:1、查看当前的防火墙状态
sudo firewall-cmd --state
2、如果防火墙处于关闭状态,则可以跳过此步骤。如果防火墙处于开启状态,则需要添加一个新的规则来允许 9200 端口的通信
sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
3、重新加载防火墙规则
sudo firewall-cmd --reload
以上命令是针对使用 firewalld 防火墙的系统。如果您使用的是 iptables,您需要使用相应的命令。例如,您可以使用以下命令打开 9200端口:
sudo iptables -I INPUT -p tcp --dport 9200-j ACCEPT
请注意,这些命令只是打开了 9200端口,并允许外部网络连接到数据库服务器。如果您需要更严格的安全措施,请确保仅允许必要的源 IP 地址或子网连接到数据库。
-
设置vm.max_map_count参数
否则会 ES启动异常:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
#修改文件
sudo vim /etc/sysctl.conf
#添加参数
...
vm.max_map_count = 262144
重新加载
sysctl -p
- 启动
# 进入bin目录下
cd bin
#启动
./elasticsearch
三、验证ES状态
另起一个终端
curl -XGET 'localhost:9200/_cat/health?v&pretty'
结果如下:
无论何时查看集群健康状态,我们会得到中green、yellow、red的任何一个。
- Green - 一切运行正常(集群功能齐全)
- Yellow - 所有数据是可以获取的,但是一些复制品还没有被分配(集群功能齐全)
- Red - 一些数据因为一些原因获取不到(集群部分功能不可用)
注意:当一个集群处于red状态时,它会通过可用的分片继续提供搜索服务,但是当有未分配的分片时,你需要尽快的修复它。
浏览器访问
外网ip:9200
大功告成!