elasticsearch 单节点搭建与爬坑记录
elasticsearch 单节点搭建与爬坑记录
prepare
虚拟机或者云服务器(这里用的是阿里云ECS)
linux---centos7
安装完毕的jdk
相应的安装包(在https://www.cnblogs.com/G-Aurora/p/13099459.html中有快速下载的镜像站)
ps.下文主要指出主要注意的地方,步骤按照标注的数字来即可(编写此文时使用的是市面上多数新版参考书所使用的Elasticsearch5.x版)
用户组
首先需要高度关注的是文件夹的“归属”和权限。
Elasticsearch在Linux下只能通过root用户启动。并且为了尽量避免解压缩后再次回头修改文件夹的”归属“,我建议使用新建的用户解压安装包,这样解压缩后的文件的归属就直接归属于新用户。
创建新用户
若出现如下报错就是需要解决文件夹归属问题


详见:https://www.cnblogs.com/G-Aurora/p/13100261.html 中的 “为文件更改归属&赋权”
解压缩安装包
启动前修改参数
我个人的建议是要根据自己机器的实际情况判断是否需要更改,不足的就改,有余的可以不改(以root用户修改)
vim /etc/security/limits.conf
增加最大文件数
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

拓展阅读:https://www.cnblogs.com/youngerger/p/9128245.html
所有配置完成后启动出现:
ERROR: bootstrap checks failed
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
那是因为配置没有生效,我们可以使用
ulimit -Hn
来进行检验,如果小于等于65535,那么通过
ulimit -Hn 65536
使配置生效,再次使用ulimit -Hn进行检验即可
哈哈,但是还是有可能报相同的错误
例如在我的启动过程中,我是使用xshell同时开了为root和es两个用户开了两个窗口,当我在root下修改了limits.conf并ulimit -Hn 65536后,分别使用root和es使用ulimit -Hn进行检验,发现两个用户的返回结果不一样,es的还是默认的65535
此时你可以选择
- 重启
- 在返回了已更改的ulimit -Hn结果的用户下(root),切换为es再进行启动,(当然后面的配置要完成)。Great,you get it.
vim /etc/security/limits.conf/90-nproc.conf
增大最大进程数
* soft nproc 2048 //修改,而非添加

在我的ECS机器上只发现了20-nproc.conf文件,配置参数有余,而且应该不用手动创建90-nporoc.conf文件(后来事实证明也是如此)
拓展阅读:https://yq.aliyun.com/articles/238584
对于拓展文章的拓展:https://www.cnblogs.com/ftl1012/p/ulimit.html
需要考虑修改nproc的情况 :
- Cannot create GC thread. Out of system resources
- java.lang.OutOfMemoryError: unable to create new native thread
vim /etc/sysctl.conf
增加虚拟内存
vm.max_map_count=655360

记得
sysctl -p
启动
在es用户下进入elasticsearch/bin
使用
elasticsearch
即可启动

检验
通过curl
curl -XGet 'http://localhost:9200/'

任意用户使用jps


解决只能通过localhost+端口访问的问题
https://www.cnblogs.com/G-Aurora/p/13111162.html
elasticsearch 单节点搭建与爬坑记录的更多相关文章
- mybatis-generator 详细配置及使用,爬坑记录
mybatis-generator 详细配置及使用,爬坑记录 提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题. 如果失败,建议使用相同的项目结构, ...
- centos7安装Mysql爬坑记录
centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...
- elasticsearch 单节点实现
一.安装java环境,这么不说了,一般用源码安装,配置好环境变量 二.新建es用户和组,es不能用root启动 三.下载需要的稳定版es 四.解压安装es .zip /opt/app/ es / 五. ...
- RAC+单节点搭建DG
primary RAC to single standby 参考文献:RAC+单实例DATAGUARD 配置 http://blog.csdn.net/miyatang/article/detai ...
- 03、Swagger2和Springmvc整合详细记录(爬坑记录)
时间 内容 备注 2018年6月18日 基本使用 spirngmvc整合swagger2 开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容. swagg ...
- elasticsearch 单节点出现unassigned_shards
查看单节点Elasticsearch健康状态 使用head插件查看集群状态 从上面截图可以看出存在5个unassigned的分片,新建索引blog5的时候,分片数为5,副本数为1,新建之后集群状态成为 ...
- vuex2.0.0爬坑记录 -- mutations的第一个参数state不能解构
今天在学习vuex的过程中,遇到了一个很困扰人的问题,最终利用vuex的状态快照工具logger解决了问题. 问题是这样的,我在子组件中使用了mapState()函数来将状态映射至子组件中,使子组件能 ...
- JdbcTemplate的一次爬坑记录
时隔三个多月,我终于想起我还有个博客,其实也不是忘了我这个博客,只是平时工作繁忙没时间去写博客,故今晚腾出时间来记录一下上次工作中遇到的一个问题,给园友们分享出来,以免入坑. 上个星期在工作中使用Jd ...
- Vue开发爬坑记录
1.使用eslint代码检查时,常见的的错误: 1.1 Expected indentation of 0 spaces but found 1 前面的空格个数不对.应该不能有空格. 1.2 Stri ...
随机推荐
- 原生js ajax 封装
首先我们先了解ajax的get和post请求分别是怎样请求数据的 get请求 let ajx = new XMLHttpRequest() //创建ajax实例 /*打开需要请求的地址,可以有三个参数 ...
- Alink漫谈(六) : TF-IDF算法的实现
Alink漫谈(六) : TF-IDF算法的实现 目录 Alink漫谈(六) : TF-IDF算法的实现 0x00 摘要 0x01 TF-IDF 1.1 原理 1.2 计算方法 0x02 Alink示 ...
- Mac卸载.net core sdk
NET Core cli提供了卸载脚本 https://github.com/dotnet/cli/tree/master/scripts/obtain/uninstall dotnet-uninst ...
- 构造函数继承与class继承
构造函数继承 1.子类通过apply方法或者call方法把this指向父类 js代码 function Parent(name, age) { this.name = name this.age = ...
- vue甘特图gantt
vue做甘特图,先大致介绍下核心功能: (1)横轴.纵轴拖拽: (2)自定义监听点击事件(双击.右键等)(3)任务之间显示父子层级关系:(4)左侧列表信息,右侧时间轴表示任务:(5)每个任务可以订制样 ...
- 不知道这些,你以为你还能devops?
一.什么是devops 在DevOps之前,从业人员使用瀑布模型或敏捷开发模型进行软件项目开发:瀑布模型或顺序模型是软件开发生命周期(SDLC)中的一种开创性方法,在这个模型中,软件开发成为一个线性过 ...
- numpy中的max和maximum
numpy科学计算包中有两个函数np.max()和np.maximum(),他们的功能截然不同.简单而言即前者作用于ndarray对象,求的是它自身的最大.而后者是一个数学上的取$\max$的效果,它 ...
- 使用matplotlib进行可视化
转自:https://blog.csdn.net/qq_30614345/article/details/99049790 https://blog.csdn.net/qq_30614345/arti ...
- Python 发送 email 的两种方式
Python发送email的两种方式,分别为使用登录邮件服务器.调用sendmail命令来发送三种方法 Python发送email比较简单,可以通过登录邮件服务来发送,linux下也可以使用调用sen ...
- 一文梳理JavaScript 事件循环(Event Loop)
事件循环(Event Loop),是每个JS开发者都会接触到的概念,但是刚接触时可能会存在各种疑惑. 众所周知,JS是单线程的,即同一时间只能运行一个任务.一般情况下这不会引发问题,但是如果我们有一个 ...