Elasticsearch介绍
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
环境
安装Elasticsearch 7.12.1
官网下载地址:www.elastic.co/cn/download…
选择LINUX X86_64:
下载后上传到服务器上,然后解压:
tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz
创建Linux用户
如果已有除root外的其他用户,则跳过此步骤。
由于Elasticsearch默认不支持通过root用户直接启动,所以需要创建用户,例如我的用户elastic。
然后对用户授权:
chown -R elastic /usr/local/software/elasticsearch-7.12.1-linux-x86_64
chmod -R 777 /usr/local/software/elasticsearch-7.12.1-linux-x86_64
Linux下用户的基本操作:
// 创建用户testuser
useradd testuser
// 给已创建的用户testuser设置密码
passwd testuser
说明:新创建的用户会在/home下创建一个用户目录testuser
// 修改用户这个命令的相关参数
usermod --help
// 删除用户testuser
userdel testuser
// 删除用户testuser所在目录
rm -rf testuser
配置远程访问
编辑conf/elasticsearch.yml
1、修改 network.host 为 0.0.0.0
network.host: 0.0.0.0
2、修改cluster.initial_master_nodes为当前node,默认为注释,放开注释就行了
cluster.initial_master_nodes: ["node-1", "node-2"]
启动Elasticsearch
切换到非root用户,例如我自己创建的elastic用户
su elastic
进入elasticsearch-7.12.1/bin目录,执行
./elasticsearch
如果看到started,则表示启动成功
访问 http://localhost:9200/ (Elasticsearch的默认端口号是9200)
curl http://localhost:9200/
返回信息中包含了elasticsearch的版本号和lucene的版本号。
注册服务,设置开机自启动
注册服务
vim /usr/lib/systemd/system/elasticsearch.service
填入以下信息
[Unit]
Description=elasticsearch
After=network.target
[Service]
Type=forking
User=elastic
ExecStart=/usr/local/software/elasticsearch-7.12.1-linux-x86_64/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
刷新elasticsearch.service配置信息
systemctl daemon-reload
设置开机启动
systemctl enable elasticsearch.service
当返回类似Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.的消息时,代表注册成功!
使用systemctl管理elasticsearch.service的相关命令
# 启动服务
systemctl start elasticsearch.service
# 重启服务
systemctl restart elasticsearch.service
# 停止服务
systemctl stop elasticsearch.service
# 禁止开机启动
systemctl disable elasticsearch.service
# 启用开机启动
systemctl enable elasticsearch.service
遇到错误及解决方法
root用户无法启动ElasticSearch
使用root用户启动报错:
[2021-05-19T15:01:54,427][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [izwz962mggaels00gkk8ftz] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.12.1.jar:7.12.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.12.1.jar:7.12.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:75) ~[elasticsearch-7.12.1.jar:7.12.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:116) ~[elasticsearch-cli-7.12.1.jar:7.12.1]
at org.elasticsearch.cli.Command.main(Command.java:79) ~[elasticsearch-cli-7.12.1.jar:7.12.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.12.1.jar:7.12.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:81) ~[elasticsearch-7.12.1.jar:7.12.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
切换其他用户后启动成功:
[root@xxx bin]# su elastic
[elastic@xxx bin]$ ./elasticsearch
参考:《ElasticSearch下用root用户无法启动问题解决》
服务器可用内存没有达到es虚拟机所需内存的默认值
使用非root账号,确保文件夹权限无误后,无法正常启动,命令行提示killed,如下:
[elastic@xxx bin]$ ./elasticsearch
Killed
阅读Elasticsearch官网文档后,在配置目录(/usr/local/software/elasticsearch-7.12.1/config/jvm.options.d)下添加自定义的.options文件(例如:我自己创建了jvm-heap-size.options),然后在.options文件中写入以下内容:
-Xms256m
-Xmx256m
然后我们重新启动ElasticSearch,会发现已经能够正常启动了。
其他启动报错问题请看《Elasticsearch7.X配置远程访问》
参考文章
今天的文章(Linux)Elasticsearch安装教程分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/23335.html