Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ElasticSearch 安装报错整理

ElasticSearch 安装报错整理

作者头像
程序员鹏磊
发布于 2018-02-09 07:33:59
发布于 2018-02-09 07:33:59
3.2K00
代码可运行
举报
文章被收录于专栏:架构师专栏架构师专栏
运行总次数:0
代码可运行

ElasticSearch 安装报错整理

单机安装报错

初次启动服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/opt/elasticsearch-5.5.2/bin/elasticsearch

当使用root账户调用启动命令出现错误信息,错误提示信息如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2017-08-30T13:32:17,003][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [ELK-node1] 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:127) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.5.2.jar:5.5.2]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:194) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:351) ~[elasticsearch-5.5.2.jar:5.5.2]
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123) ~[elasticsearch-5.5.2.jar:5.5.2]
	... 6 more

创建新用户

由于Elasticsearch可以接收用户输入的脚本并且执行,为了系统安全考虑,不允许root账号启动,所以建议给Elasticsearch单独创建一个用户来运行Elasticsearch

命令格式 useradd ymq(用户名) -g ymq(所属组名) -p ymq(密码)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
groupadd ymq
useradd  ymq -g ymq -p ymq

授权访问组权限

命令格式: chown -R ymq(所属用户) : ymq(所属用户组名) /opt/elasticsearch-5.5.2 (要更改的文件路径)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown -R ymq:ymq /opt/elasticsearch-5.5.2
chmod -R 777 /opt/elasticsearch-5.5.2

授权 root 权限

命令格式: ymq 用户 root 权限 ` NOPASSWD `意思是 不用输密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod 777 /etc/sudoers
vi /etc/sudoers
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root    ALL=(ALL)       ALL

#添加ymq 用户 root 权限
ymq     ALL=(ALL)       NOPASSWD:ALL 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkexec chmod 0440 /etc/sudoers

su ymq
/opt/elasticsearch-5.5.2/bin/elasticsearch

如果报如下错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2017-08-30T13:41:13,631][INFO ][o.e.n.Node               ] [ELK-node1] starting ...
[2017-08-30T13:41:14,093][INFO ][o.e.t.TransportService   ] [ELK-node1] publish_address {192.168.252.121:9300}, bound_addresses {[::]:9300}
[2017-08-30T13:41:14,121][INFO ][o.e.b.BootstrapChecks    ] [ELK-node1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2017-08-30T13:41:14,127][ERROR][o.e.b.Bootstrap          ] [ELK-node1] node validation exception
[2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2017-08-30T13:41:14,142][INFO ][o.e.n.Node               ] [ELK-node1] stopping ...
[2017-08-30T13:41:14,186][INFO ][o.e.n.Node               ] [ELK-node1] stopped
[2017-08-30T13:41:14,186][INFO ][o.e.n.Node               ] [ELK-node1] closing ...
[2017-08-30T13:41:14,204][INFO ][o.e.n.Node               ] [ELK-node1] closed

以下错误都切换到 root 用户进项修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su root

错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536

编辑 limits.conf 在第一行加上如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /etc/security/limits.conf 

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

编辑 limits.conf 在第一行加上如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat /etc/sysctl.conf 

vm.max_map_count = 655360

执行 sysctl -p

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sysctl -p

删除data目录下的数据(如果是新解压的安装包就不必了)

异常 IllegalStateException

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Caused by: java.lang.IllegalStateException: failed to obtain node locks, tried [[/opt/elasticsearch-5.5.2/data/ymq]] with lock id [0]; maybe thes

删除 安装目录下/data

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/elasticsearch-5.5.2/data
rm -rf nodes

异常 RemoteTransportException

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2017-09-01T11:40:42,115][INFO ][o.e.d.z.ZenDiscovery     ] [ELK-node2] failed to send join request to master [{ELK-node1}{DKCwxkubTFufsBaOSXj9Nw}{UIMSNeuIT6m8SFGGTi4wSg}{192.168.252.121}{192.168.252.121:9300}], reason [RemoteTransportException[[ELK-node1][192.168.252.121:9300][internal:discovery/zen/join]]; nested: NotMasterException[Node [{ELK-node1}{DKCwxkubTFufsBaOSXj9Nw}{UIMSNeuIT6m8SFGGTi4wSg}{192.168.252.121}{192.168.252.121:9300}] not master for join request]; ], tried [3] times

删除 个集群安装目录下/data

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/elasticsearch-5.5.2/data
rm -rf nodes

异常 ElasticsearchUncaughtExceptionHandler

上次启动失败,占用了端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[2017-08-30T22:02:14,463][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [ELK-node2] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: BindHttpException[Failed to bind to [9200]]; nested: BindException[Address already in use];
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jps 

2824 Elasticsearch
3165 Jps
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -9 2824

再次启动服务

切到 ymq 用户尝试启动服务 加 -d 后台启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su ymq
/opt/elasticsearch-5.5.2/bin/elasticsearch  -d

jvm 内存内存修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /opt/elasticsearch-5.5.2/config/jvm.options

-Xms2g  --》修改为512m
-Xmx2g  --》修改为512m

查看日志

ymq 及时集群名称

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
less /opt/elasticsearch-5.5.2/logs/ymq.log

查看端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
netstat -nltp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::9200                 :::*                    LISTEN      2944/java           
tcp6       0      0 :::9300                 :::*                    LISTEN      2944/java           
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:25                  :::*                    LISTEN      - 

测试访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -X GET http://localhost:9200/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name" : "ELK-node1",
  "cluster_name" : "ymq",
  "cluster_uuid" : "jxWzvSFNTCWtToD6wrVIpA",
  "version" : {
    "number" : "5.5.2",
    "build_hash" : "b2f0c09",
    "build_date" : "2017-08-14T12:33:14.154Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"

浏览器如果访问不成功,关闭防火墙,开放指定端9200,9300端口,为了方便,生产不要禁用防火墙

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl stop firewalld.service

更多异常:请参考

Elasticsearch 复制集群配置

不推荐按照以下步骤,可以按照上面介绍的单机配置依次安装

node1 ROOT 用户下操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su root

把本机配置的文件复制到 node2,node3集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a in {2..3} ; do scp -r /opt/elasticsearch-5.5.2/ node$a:/opt/elasticsearch-5.5.2/ ; done

ssh 登录 node2,node3集群,创建新用户,授权访问组权限,并且授权访问/etc/sudoers 给root权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a in {2..3} ; do ssh node$a "source /etc/profile; groupadd ymq; useradd ymq -g ymq -p ymq; chown -R ymq:ymq /opt/elasticsearch-5.5.2; chmod 777 /etc/sudoers;" ; done
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a in {2..3} ; do scp -r /etc/sudoers node$a:/etc/sudoers ; done

复制 limits.confnode2,node3集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a in {2..3} ; do scp -r /etc/security/limits.conf node$a:/etc/security/limits.conf ; done

复制 sysctl.confnode2,node3集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a in {2..3} ; do scp -r /etc/sysctl.conf  node$a:/etc/sysctl.conf ; done

复制 jvm.optionsnode2,node3集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a in {2..3} ; do scp -r /opt/elasticsearch-5.5.2/config/jvm.options  node$a:/opt/elasticsearch-5.5.2/config/jvm.options ; done

执行 sysctl -p操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for a in {2..3} ; do ssh node$a "source /etc/profile; sysctl -p ; " ; done
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /opt/elasticsearch-5.5.2/config/elasticsearch.yml

node.name: 换个名字,可以ELK-node2,ELK-node3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
node.name: ELK-node1

后台启动

后台启动node1,node2,node3 服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su ymq
/opt/elasticsearch-5.5.2/bin/elasticsearch -d

查看node1,node2,node3端口使用情况

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 netstat -nltp

Contact

  • 作者:鹏磊
  • 出处:http://www.ymq.io
  • Email:admin@souyunku.com
  • 版权归作者所有,转载请注明出处
  • Wechat:关注公众号,搜云库,专注于开发技术的研究与知识分享
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/08/30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Elasticsearch启动报错及解决方法
ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
星哥玩云
2022/07/27
3.2K0
Elasticsearch + Logstash + Kibana 安装(全)
ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。三者相互配合,取长补短,共同完成分布式大数据处理工作。
create17
2019/12/03
2K0
Elasticsearch + Logstash + Kibana 安装(全)
Elasticsearch 5.x +Kibana 5.x 安装与配置
因为版本的问题,最新的版本安全级别提高了,不允许采用root帐号启动,所以我们要添加一个用户。
程裕强
2022/05/06
1.1K0
ELK5.0安装教程
ELK升级后,安装稍微发生了点变化,在Elasticsearch中增加了很多资源上的限制,其他的倒是没什么变化。不过所有的安装都是基于JDK已经安装完的情况,且为1.8版本。 安装Elasticsearch 在官网下载elsaticsearch安装包: 下载地址 下载对应版本拷贝到服务器,然后执行下面命令解压缩: tar -zxvf elasticsearch-5.2.2.tar.gz 解压后进入对应的目录,修改配置文件: cluster.name: page-cluster node.name:
用户1154259
2018/01/17
9310
Elasticsearch 5.x 安装与配置
Elasticsearch官方建议使用 Oracle的JDK8 1、下载安装 [root@vnode0 opt]# tar -zxvf elasticsearch-5.1.1.tar.gz [ro
程裕强
2018/01/02
1.8K0
蛋疼的ElasticSearch(一)之安装ElasticSearch
Interesting things 本周的计划暂时这样子的: 1.学习Solr和ElasticSearch 2.深入学习SpringBoot 3.了解日志系统的实现 What did you do today 先入为主 ElasticSearch是什么?百度词条是这样解释的。 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。ElasticSearch是用java开发的,并作为Apache许可条款下的开
用户2032165
2018/06/05
6780
ElasticSearch 6.x 学习笔记:1.下载安装与配置
该文章介绍了如何在Elasticsearch集群上使用Kibana进行可视化搜索,包括安装Elasticsearch和Kibana,配置Elasticsearch和Kibana以在浏览器中访问,以及使用Kibana的UI界面进行搜索。同时,该文章还介绍了如何将Elasticsearch集群与Kibana部署在Docker容器中,以及使用Elasticsearch和Kibana进行多租户搜索。
程裕强
2018/01/02
3.9K0
ElasticSearch 6.x 学习笔记:1.下载安装与配置
ELK 集群 + X-Pack + Redis 集群 + Nginx ,实时日志(数据)搜集和分析的监控系统,简单上手使用
ELK 集群 + X-Pack + Redis 集群 + Nginx ,实时日志(数据)搜集和分析的监控系统,简单上手使用 简述 ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用、易用的监控架构,很多公司利用它来搭建可视化的海量日志分析平台。 官网下载地址:https://www.elastic.co/downloads Elasticsearch 是一个基于Apache Lucene(TM)的开源搜索引擎 ,它的特点有:分布式,
程序员鹏磊
2018/02/09
3.3K0
ELK 集群 + X-Pack + Redis 集群 + Nginx ,实时日志(数据)搜集和分析的监控系统,简单上手使用
Elastic Stack之 Elasticsearch 6.7.1版本单机版安装、集群版安装
1、截至目前Elasticsearch 版本已经更新到了7.10.1版本了,这里先使用Elasticsearch 6.7.1版本,给一个下载地址,如下所示:
别先生
2021/01/13
1.4K0
安装Elasticsearch5
新特性 支持lucence 6.x:索引性能提升 新增sliced scroll类型:并发遍历 新增profile API:查询优化 新增reindex:对数据进行重建 新增ingest节点 磁盘空间少一半;索引时间少一半;查询性能提升25%;IPV6也支持了 为什么快,底层使用的是Block k-d trees,核心思想是将数字类型编码成定长的字节数组,对定长的字节数组内容进行编码排序,然后来构建二叉树,然后依次递归构建,目前底层支持8个维度和最多每个维度16个字节,基本满足大部分场景。 等等 安装j
零月
2018/04/25
5680
安装Elasticsearch5
Elasticsearch安装和配置
选择对应版本即可 https://www.elastic.co/downloads/elasticsearch ,这边官网下载太慢了,大家可以选择华为云 https://mirrors.huaweicloud.com/elasticsearch/7.6.0/ ,我这边是 ubuntu 就直接下载 linux 版本了。
憧憬博客
2020/07/21
8700
大数据ELK Stack(四):Elasticsearch 集群部署所遇的坑
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
zjiekou
2022/09/18
5650
大数据ELK Stack(四):Elasticsearch 集群部署所遇的坑
ES学习之路-安装配置启动问题小结
通过上述描述对es有初步的了解后, 我们知道要使用es必须安装java环境,最好使用8.0以后的版本
菲宇
2019/06/12
1.3K0
ES学习之路-安装配置启动问题小结
Elasticsearch-01CentOS7单节点部署ES5.6.16
April 11, 2019 ,ES 发布了7.0.0 版本。 ES是一个搜索引擎,基于Lucene,提供了基于RESTful 的web接口,能够达到实时,稳定,可靠,快速的搜索引擎。
小小工匠
2021/08/17
6370
linux安装elasticsearch7_elasticsearch入门
Linux上elasticsearch7集群搭建 前期准备: 服务器三台 168.168.12.62 168.168.12.63 168.168.12.64 部署jdk 解压jdk放在/data目录,/data/jdk 配置环境变量,/etc/proifle里面加入如下
全栈程序员站长
2022/11/04
2680
ElasticSearch + Logstash + Kibana 搭建笔记
针对文件描述符,调成 65536 ulimit -n 65536,如果提示没有权限,则可以在用户的 .bash_profile 中增加一行,退出用户重新登陆就可以。
大江小浪
2019/02/22
5870
ElasticSearch + Logstash + Kibana 搭建笔记
ElasticSearch单机/集群搭建教程
本文将介绍ElasticSearch单机版与集群版的安装与配置,ElasticSearch依赖JRE,注意机器是否安装JDK8【最低版本要求就是JDK8】,且JDK环境变量是否已配置完成
Java架构师必看
2021/05/14
8290
ElasticSearch单机/集群搭建教程
elasticsearch.bat闪退的解决方案
进入Elasticsearch安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码
全栈程序员站长
2022/02/20
1.4K0
elasticsearch.bat闪退的解决方案
Elasticsearch入门实践
官网:https://www.elastic.co/ 下载:https://www.elastic.co/downloads/elasticsearch 文档:https://www.elastic.co/guide/index.html
编程随笔
2019/09/11
1.7K0
Elasticsearch入门实践
Linux部署elasticsearch和迁移数据详细教程
Centos可能自带了jdk,但是版本可能会较低,执行下面的命令检测是否已经安装了jdk
PHP开发工程师
2022/04/24
2.4K0
Linux部署elasticsearch和迁移数据详细教程
相关推荐
Elasticsearch启动报错及解决方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验