elasticsearch7.9.x linux 安装部署、启动 作者:马育民 • 2021-10-17 22:15 • 阅读:10651 # 下载 下载 `7.9.3` 版本,no jdk(用我们自己的jdk) https://www.elastic.co/cn/downloads/past-releases/elasticsearch-no-jdk-7-9-3 # 上传 登录 `hadoop2` 上传到 `/program/` 目录 # 解压 ``` tar -zxvf elasticsearch-7.9.3-no-jdk-linux-x86_64.tar.gz --no-same-owner ``` # 创建用户 因为安全问题,Elasticsearch 不允许 `root` 用户直接运行 在 root 用户下创建新用户 新增 es 用户: ``` useradd es ``` 为 es 用户设置密码: ``` passwd es ``` 输入:`es` (密码不要设置复杂,容易忘记) 如果创建用户错了,可以删除用户 ``` userdel -r es ``` 设置文件夹所有者 ``` chown -R es:es /program/elasticsearch-7.9.3 ``` # 修改配置文件 ### 修改 elasticsearch.yml 修改 `/program/elasticsearch-7.9.3/config/elasticsearch.yml` 文件 该配置文件,有下面的配置,只是注释掉了 为了便于修改,在文件末尾加入下面配置: ``` # 集群名称 cluster.name: elasticsearch # 节点名称 node.name: node-1 # ip network.host: 0.0.0.0 # port http.port: 9200 # 把当前节点作为 master 主节点 cluster.initial_master_nodes: ["node-1"] ``` ### 设置内存 es 默认占用 `1G` ,开发时占用内存太大 ``` vim /program/elasticsearch-7.9.3/config/jvm.options ``` 找到下面配置: ``` -Xms1g -Xmx1g ``` 修改为: ``` -Xms512m -Xmx512m ``` # 修改 linux 系统配置文件 es 创建的文件比较多,打开的文件也比较多,修改 linux 的限制 ### 修改 limits.conf 修改 每个进程可以打开的文件数的限制 ``` vim /etc/security/limits.conf ``` 在文件末尾中增加下面内容: ``` es soft nofile 65536 es hard nofile 65536 ``` **解释:** - `es`:表示 `es`用户 **提示:** `*`表示所有用户 - `soft`:软限制,当前系统生效的设置值,小于等于 `hard` 限制 - `hard`:硬限制,系统中所能设定的最大值 **提示:** `-` 表示同时设置了 `soft` 和` hard` 的值 - `nofile`:用户打开文件的最大数量 ### 修改 20-nproc.conf `20-nproc.conf` 文件是配置 `nproc` 限制的,会覆盖 `limits.conf` 文件,所以这里也要修改 ``` vim /etc/security/limits.d/20-nproc.conf ``` 在文件末尾中增加下面内容: ``` es soft nofile 65536 es hard nofile 65536 * hard nproc 4096 ``` **解释:** - `es`:表示 `es`用户 - `*`表示所有用户、所有用户组 - `soft`:软限制,当前系统生效的设置值,小于等于 `hard` 限制 - `hard`:硬限制,系统中所能设定的最大值 **提示:** `-` 表示同时设置了 `soft` 和` hard` 的值 - `nofile`:用户打开文件的最大数量 - `nproc`:用户创建进程的最大数量 #### 立即生效 不需要重启系统,只需要重新登录 SSH 即可 切换用户: ``` su es ``` 用 es 用户查看是否生效: ``` ulimit -a ``` 显示如下: ``` open files (-n) 65536 max user processes (-u) 4096 ``` 数字已经改变,说明生效了 ### 修改 sysctl.conf ``` vim /etc/sysctl.conf ``` 在文件中增加下面内容: ``` vm.max_map_count=655360 ``` **解释:**一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536 #### 立即生效 ``` sysctl -p ``` # 启动 ``` cd /program/elasticsearch-7.9.3/bin/ ``` ### 切换 es 用户 **注意:**不能用 `root` 用户启动es ``` su es ``` ### 前台启动 ``` ./elasticsearch ``` ### 警告 启动时显示下面警告: ``` future versions of Elasticsearch will require Java 11; your Java version from [/program/jdk1.8.0_202/jre] does not meet this requirement future versions of Elasticsearch will require Java 11; your Java version from [/program/jdk1.8.0_202/jre] does not meet this requirement ``` `es7` 用 `jdk11`,在本机中配置的 `jdk8` ,所以提示警告信息,一般不影响使用 ### 后台启动 ``` ./elasticsearch -d ``` ### 退出 es 用户: ``` exit ``` # 停止 es 没有专门的停止命令 查看 `elastic` 进程 id ``` jps ``` 执行结果: ``` 2896 Elasticsearch ``` 杀死进程: ``` kill -9 2896(上面的进程id) ``` # 测试 访问 http://hadoop2:9200/ ,看到下面内容,说明启动成功: ``` { "name" : "node-1", "cluster_name" : "elasticsearch", "cluster_uuid" : "eUk9pWliR4y7miJChoYXoQ", "version" : { "number" : "7.9.3", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868", "build_date" : "2020-10-16T10:36:16.141335Z", "build_snapshot" : false, "lucene_version" : "8.6.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } ``` **解释:** - name:节点名 - cluster_name:集群名字(集群环境中) - cluster_uuid:节点唯一标识uuid(集群环境中) - number:版本号 - build_type:部署方式 - lucene_version:版本号 原文出处:http://malaoshi.top/show_1IX23twMNDFj.html