文章名称地址
ElasticSearch学习(一)——概述前往
ElasticSearch学习(二)——索引、文档简单操作前往
ElasticSearch学习(三)——Windows 集群部署前往
ElasticSearch学习(四)——Linux 单节点部署前往

Linux 单节点部署

下载
在这里插入图片描述

  1. 下载后,使用xftp将压缩包上传到/usr/loca/applications

    cd /usr/local/applications
    # 解压
    tar zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
    # 删除压缩包
    rm -f elasticsearch-7.8.0-linux-x86_64.tar.gz
    

    这时候applications目录里会多个elasticsearch-7.8.0文件夹,如果嫌名字长,可以改了:

    mv elasticsearch-7.8.0 es
    
  2. 创建用户

    因为安全问题,ElasticSearch 不允许root用户直接运行,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PfoqDwlT-1648039546814)(images/image-20220323173954295.png)]

    所以要创建新用户,在root用户中创建新用户:

    useradd user_es # 新增user_es用户
    passwd user_es # 为user_es设置密码 020826
    
    # userdel -r user_es #如果创建错了,可以删除
    # 文件夹所有者
    chown -R user_es /usr/local/applications/es
    
  3. 修改配置文件

    修改/usr/local/applications/elasticsearch-7.8.0/config/elasticsearch.yml文件

    # 这是我的es配置文件的地方
    vi /usr/local/applications/es/config/elasticsearch.yml
    

    进去之后可以看到都是被注释的,添加以下配置:

    # 集群名称
    cluster.name: elasticsearch
    # 节点名称
    node.name: node-1
    # 不管它
    network.host: 0.0.0.0
    # 端口号
    http.port: 9200
    # 设置主节点,把node-1节点设置为主节点
    cluster.initial_master_nodes: ["node-1"]
    
  4. 修改/etc/security/limits.conf

    vi /etc/security/limits.conf
    # 在文件末尾加入以下内容
    # 每个进程可以打开的文件数的限制
    user_es soft nofile 65536
    user_es hard nofile 65536
    
  5. 修改/etc/security/limits.d/20-nproc.conf(这个文件我没有,新建的)

    vi /etc/security/limits.d/20-nproc.conf
    
    user_es soft nofile 65536
    user_es hard nofile 65536
    # 操作系统级别对每个用户的创建的进程数的限制:
    * hard nproc 4096
    # * 代表Linux所有用户名
    
  6. 修改/etc/sysctl.conf(我设置之后启动报错)

     vi /etc/sysctl.conf
     # 在文件中增加一下部分:
     # 一个进程可以拥有的VMA(虚拟内存区域)的	数量,默认为65536
     vm.max_map_count=655360
    

    重新加载:

       sysctl -p
    
  7. 启动ElasticSearch

    # 切换用户,不允许root用户启动es
    su user_es
    
    cd /usr/local/applications/es
    bin/elasticsearch
    
  8. 如果报错了,就查看上面步骤有哪里配置出错了,或者哪个字母错了,然后删除data目录,重新启动es即可。

  9. 服务器防火墙:

    我这里使用的腾讯云的轻量级服务器,并且使用了宝塔,所以要在腾讯云和宝塔那里放行9200端口。

    Postman发起GET请求:http://ip:9200/_cluster/health

    响应:

    {
        "cluster_name": "elasticsearch",
        "status": "green",
        "timed_out": false,
        "number_of_nodes": 1,
        "number_of_data_nodes": 1,
        "active_primary_shards": 0,
        "active_shards": 0,
        "relocating_shards": 0,
        "initializing_shards": 0,
        "unassigned_shards": 0,
        "delayed_unassigned_shards": 0,
        "number_of_pending_tasks": 0,
        "number_of_in_flight_fetch": 0,
        "task_max_waiting_in_queue_millis": 0,
        "active_shards_percent_as_number": 100.0
    }
    
Logo

更多推荐