Linux中安装elasticsearch

安装

下载

最新版本下载地址:https://www.elastic.co/cn/downloads/elasticsearch
在这里插入图片描述

直接下载需要自行将使用远程连接工具上传到服务器

我们这里使用wget方式下载

前言,因为在elasticsearch8版本之后不再兼任 jdk1.8所以我们这里下载的是 elasticsearch7的一个版本

下载地址:Elasticsearch 7.16.1 | Elastic

  1. 安装 wget(centos一般都已经下载好了 wget)

    yum install wget -y
    
  2. 下载压缩包

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.1-linux-x86_64.tar.gz
    

    地址复制方式为鼠标移动到下载按钮上,右键复制连接地址
    在这里插入图片描述

  3. 解压缩

    tar -zxvf elasticsearch-7.16.1-linux-x86_64.tar.gz
    

    在这里插入图片描述

  4. 进入到 elasticsearch 目录中

    在这里插入图片描述

  5. 修改 elasticsearch.yml 配置

    cd config/
    
    vim elasticsearch.yml
    
    # 修改网卡 127.0.0.1表示只允许当前系统访问,如果想要对外访问则可以改为 0.0.0.0
    network.host: 0.0.0.0
    # 访问端口,默认也是9200
    http.port: 9200
    
  6. 修改es内存问题

    修改配置文件
    vim config/jvm.options
    
    # 修改前
    ## -Xms4g
    ## -Xmx4g
    
    # 修改后
    -Xms1g
    -Xmx1g
    

启动elasticsearch

./bin/elasticsearch

在这里插入图片描述

出现错误

  • 不建议使用JAVA_HOME,请使用ES_JAVA_HOME``Elasticsearch的未来版本将需要Java 11;您的Java版本[/usr/local/jdk1.8.0_351/jre]不符合此要求。考虑切换到带有捆绑JDK的Elasticsearch发行版。如果您已经在使用带有绑定JDK的发行版,请确保没有设置JAVA_HOME环境变量。警告:不支持使用JAVA_HOME,请使用ES_JAVA_HOME

    这个时候我们就需要使用 jdk11版本,并告诉我们需要使用 ES_JAVA_HOME 不建议使用 JAVA_HOME,我们这个时候就可以使用es给我们自带的jdk配置到环境变量中

    在这里插入图片描述

  • 配置环境变量

    1. # 打开配置文件
      vim /etc/profile
      
    2. # 在最后添加一下内容 /mydata/elasticsearch/elasticsearch-7.16.1/jdk是你es存放的路径
      export ES_JAVA_HOME=/mydata/elasticsearch/elasticsearch-7.16.1/jdk
      export PATH=$ES_JAVA_HOME/bin:$PATH
      
    3. # 刷新资源
      source /etc/profile
      

第二次启动 es

# 进入es目录
cd /mydata/elasticsearch/elasticsearch-7.16.1/
# 启动es
./bin/elasticsearch

新错误出现

在这里插入图片描述

因为 es 处于安全考虑,不允许使用 root 用户运行es,我们就需要单独创建一个用户来运行es

# 创建用户组
groupadd es
# 创建 es 用户 并指定用户组
adduser -g es es
# 给 es 用户设置密码
passwd es
# 将当前目录交给 es 用户来操作(也可以理解为赋予权限)
chown -R es:es .

修改前

在这里插入图片描述

修改后

在这里插入图片描述

第三次启动

用户创建完毕之后再次尝试启动

# 切换用户
su es
# 启动 es
./bin/elasticsearch

在这里插入图片描述

使用 ps 命令再次查看

ps -ef | grep elasticsearch

在这里插入图片描述

后台启动

./bin/elasticsearch -d

隔了一段时间后再次出现错误

在这里插入图片描述

引导检查失败[3]的[1]:elasticsearch进程的最大文件描述符[4096]太低,增加到至少[65535]

这个问题是因为 ES需要大量的创建索引文件,需要大量打开系统的文件,所以我们需要解除linux系统当中打开文件最大数限制,不然ES启动就会抛错。

# 切换到root用户
su root
# 编辑 limits.conf 配置文件
vim /etc/security/limits.conf

# 末尾添加如下配置(报错至少有多少就配置多少,我这里是65535):
es soft nofile 65535
es hard nofile 65535
es soft nproc 4096
es hard nproc 4096

在这里第四次启动的错误已经出现了可以直接也一起配置了

第四次尝试启动

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

在这里插入图片描述

# 切换 root 用户
su root
# 修改sysctl.conf配置
vim /etc/sysctl.conf
# 追加以下内容
vm.max_map_count=262144
# 保存后执行下面命令
sysctl -p

第五次启动

默认的发现设置不适合生产使用;至少有一个[发现]。seed_hosts,发现。seed_providers,集群。必须配置Initial_master_nodes

在这里插入图片描述

  • discovery. seed_hosts 集群主机列表

  • discovery.seed_providers 基于配置文件配置集群机列表

  • cluster. initial_master_nodes 启动时初始化的参数与选主的node,生产环境必填

    vim config/elasticsearch.yml 
     # 添加配置 
    discovery.seed_hosts: ["127.0.0.1"]
    cluster.initial_master_nodes: ["node-1"]
    
    # 注意前面不允许有空格,否则也会出现错误
    

    在这里插入图片描述

第六次启动

./bin/elasticsearch -d

在这里插入图片描述

最终在五次失败后,在第六次启动成功

权限问题

启动一段时间后出现权限不够路径为 (/mydata/elasticsearch/elasticsearch-7.16.1/logs/elasticsearch.log ,但是es是正常运行的。

在这里插入图片描述

# 进入目录查看
cd /mydata/elasticsearch/elasticsearch-7.16.1/logs/

在这里插入图片描述

这里我们看到 elasticsearch.log 权限属于root用户 因为 logs 日志文件是es后面生成的。所以再次赋予权限

那我们在这个目录下在赋予一次权限

chown -R es:es .

在这里插入图片描述

赋予权限之后再次启动就没问题了

外部访问查看elasticsearch

# 开放9200端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
# 查看9200端口
firewall-cmd --query-port=9200/tcp
# 重启防火墙
firewall-cmd --reload

访问 http://ip:9200

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_58959834/article/details/129591556