阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7下Elasticsearch 安装操作指南

405次阅读
没有评论

共计 4608 个字符,预计需要花费 12 分钟才能阅读完成。

在网上现在有很多那种 ES 步骤和问题的解决 方案的,不过没有一个详细的整合和问题的梳理;现在我们来记录一下自己安装的过程以及遇到问题的解决;有什么不对的和问题希望及时拍砖。

Linux 系统:CentOS 7.5

ES 安装环境的准备和初始化

现在比较新的版本 Elasticsearch 5.6.3,官方建议安装 Oracle 的 JDK8,安装前先检查机器是否已安装 JDK。

检查环境机器是否已安装 JDK

rpm -qa | grep -E ‘^open[jre|jdk]|j[re|dk]’

如果有的话,卸载掉, 可以使用 rpm -qa | grep Java | xargs rpm -e –nodeps 批量卸载所有带有 Java 的文件,然后进行重新安装。

下载新的 JDK

下载网址:

[linuxidc@localhost ~]$ wget –no-check-certificate –no-cookies \
> –header “Cookie: oraclelicense=accept-securebackup-cookie” \
> http://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/jdk-8u192-linux-x64.tar.gz

JDK 的下载可以去官网上直接下载,再次声明一下不要下载最新版本 JAVA 9 版本本人在次已经踩过坑了

ES 去官网直接下载,本人使用的是 5.6.3 版本;因为版本的不同安装 head 插件的时候安装步骤不同;好像是从 5.0 以后的版本安装 head 插件的步骤就不一样了;下面会详细介绍。

安装 JDK 环境

前提:查看该系统是否安装过 Java 环境,如果安装过将其卸载安装最新的版本,更换 Java 的版本也可以这样去操作。

执行命令 rpm -qa|grep jdk 如果安装过将会列出相应的版本,如果没有什么都不会输出。如果安装过使用 rpm -e –nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64 使用这个命令需要注意的就是,列出多少个版本插件就要卸载几个插件;执行完成后;在使用 rpm -qa|grep jdk 去查看一下是否有遗漏的插件没有卸载。

直接将下载好的 jdk-8u192-linux-x64.rpm 安装包 ; 上传到自己创建好的 java 文件下;cd 命令进入到 java 文件下使用 rpm 命令进行安装 rpm -ivh jdk-8u192-linux-x64.rpm

CentOS 7 下 Elasticsearch 安装操作指南

安装完成后执行 java -version 命令查看安装是否成功

查看安装目录命令,

命令一:

[linuxidc@localhost ~]$ java -version
java version “1.8.0_192”
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)

命令二:

[linuxidc@localhost ~]$ which java 
/usr/bin/java

[linuxidc@localhost ~]$ ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 11 月 12 18:23 /usr/bin/java -> /etc/alternatives/java

命令三:

[linuxidc@localhost ~]$ ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 41 11 月 12 18:23 /etc/alternatives/java -> /usr/java/jdk1.8.0_192-amd64/jre/bin/java

最后将会得出如如上这样的目录  /usr/java/jdk1.8.0_192-amd64/jre/bin/java

如下图:

CentOS 7 下 Elasticsearch 安装操作指南

配置环境变量,执行命令 nano /etc/profile;然后进入编辑模式,在文件的最后添加下面的配置,如图

JAVA_HOME=/usr/java/jdk1.8.0_192-amd64
JRE_HOME=/usr/java/jdk1.8.0_192-amd64/jre
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

 CentOS 7 下 Elasticsearch 安装操作指南

修改完配置后,保存并退出。

执行命令 source /etc/profile 使用环境变量生效

CentOS 7 下 Elasticsearch 安装操作指南

验证环境变量是否生效,分别执行下面的命令

echo $JAVA_HOME

echo $CLASSPATH

echo $PATH

CentOS 7 下 Elasticsearch 安装操作指南

OK,到现在 JDK 就安装好了。

安装 Elasticsearch

下载 ES 安装包 elasticsearch-5.6.3.tar.gz

进入 ES 官网,选择合适的版本网址,进行下载

以下是 5.6.3 版本的网址

wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.tar.gz

CentOS 7 下 Elasticsearch 安装操作指南

新建账号

因为使用 root 用户执行 ES 程序,将会出现错误;

[WARN][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

所以这里需要创建单独的用户去执行 ES 文件;命令如下:

useradd estest  – 添加账号

chown -R estest:estest elasticsearch-5.6.3 – 为新增账号赋予文档目录的权限

su estest      — 切换账号

创建 ES 数据文件和日志文件,直接在 root 用户根目录一下创建就可以了

执行命令一:mkdir /data

CentOS 7 下 Elasticsearch 安装操作指南

命令二:chown -R estest:estest data

CentOS 7 下 Elasticsearch 安装操作指南

执行命令三:mkdir /logs

CentOS 7 下 Elasticsearch 安装操作指南

命令四:chown -R estest:estest logs

CentOS 7 下 Elasticsearch 安装操作指南

看看,如下图

CentOS 7 下 Elasticsearch 安装操作指南

修改 ES 配置文件,使用 cd 命令进入到 config 文件下,执行 nano elasticsearch.yml 命令,如图所示,本人没有配置集群,只是简单的配置了一下;详细说明可以参考官网;

CentOS 7 下 Elasticsearch 安装操作指南

启动 ES

在新建的账号 estest 下启动 ES。

在 ES 的 bin 文件所在的目录下执行以下命令即可

./elasticsearch -d

验证 ES 是否正常启动

方法 1. curl http://localhost:9200/ 检查,显示以下信息证明已启动 OK。

CentOS 7 下 Elasticsearch 安装操作指南

CentOS 7 下 Elasticsearch 安装操作指南

启用远程 IP 访问

Elasticsearch 默认是 rest-api 的端口是 9200,不支持 IP 地址,只能在本机使用 http://localhost:9200 来访问,如果需要完成访问,还需进行以下配置。

Step 1 修改 elasticsearch.yml 文件中的 network.host 和 http.port 参数

去除文件中 network.host 和 http.port 参数前面的注释(#),且将 network.host 的 IP 地址修改为本地的 IP 地址。

Step 2 . 编辑 /etc/security/limits.conf 文档,在文档中添加以下参数

sudo nano /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072

此参数主要解决以下错误:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

需要退出当前用户,再次登录才能生效。

Step 3 . 编辑 vim /etc/sysctl.conf  文档,在文档中添加以下参数

vm.max_map_count=655360

编辑保存后并执行命令:sysctl -p

此操作主要是解决以下问题

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

ps: 别的机器进行访问时需要开放 9200 端口和 9300 端口,9200 是 http 协议端口,9300 是 tcp 协议端口,为 java client 服务的。我这里没有单独打开端口,只是关闭了防火强,CentOS7 关闭防火墙和 CentOS6 不一样,7 的防火墙是 firewalld 的服务,执行命令
// 临时关闭
systemctl stop firewalld
// 禁止开机启动
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.

集群时需要添加一些配置,如果搭三个虚拟机做集群,想 cluster.name 相同时发现并不是集群,在 es 配置文件中需要添加额外配置
discovery.zen.ping.unicast.hosts: [“xxx.xxx.xxx”,”xxx.xxx.xxx”,”xxx.xxx.xxx”]
discovery.zen.minimum_master_nodes: 3

解释说明:
bootstrap.memory_lock: false  这是锁定内存,在一篇调优文章中这个设置成 true 时会减少内存交换的消耗,这里先设置成 false
 bootstrap.system_call_filter: false  这个配置设置 true 在 CentOS6 或以上时会出现错误,因为 Centos6 不支持 SecComp

cluster.name 集群名字,同一个集群中使用相同名字,单机就随意
node.name: node-01 节点名字
node.master: 是否为集群的 master 机器
node.data: true 是否作为数据节点
network.host: xxx.xxx.xxx.xxx 这个不用自然是配置 ip 地址的
http.port: 9200 端口号,不配置的话默认 9200
 discovery.zen.ping.unicast.hosts: [“xxx.xxx.xxx”,”xxx.xxx.xxx”,”xxx.xxx.xxx”] 这个就是配置集群的时候要用的到了,[] 中填上集群中其他集群的 ip 的地址,如果是 master 的话请把所有 salve 的机器地址填上
discovery.zen.minimum_master_nodes: 2 关于这个值配置多少合适的话大家去搜一下,自己权衡一下集群,这里我用了 3 台机器模拟集群,所以填上 2。
http.cors.enabled: true 这个参数的设置和下面一个配置就关于 ip 的访问策略了,如果你发现其他 ip 地址访问不了就有可以这参数没有配置
http.cors.allow-origin:“*”

未完待续,请关注。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4608字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7997160
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...