iMisty的技术栈

iMisty的技术栈

安装ElasticSearch

2021-01-09

官网下载地址

官网地址:https://www.elastic.co/cn/downloads/elasticsearch

1. 上传后解压:

移动解压后的es文件夹到/usr/local

2. ES 目录介绍

  • bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等
  • config:配置文件目录
  • JDK:java环境
  • lib:依赖的jar,类库
  • logs:日志文件
  • modules:es相关的模块
  • plugins:可以自己开发的插件
  • data:这个目录没有,自己新建一下,后面要用 -> mkdir data,这个作为索引目录,用来存储数据

3. 修改核心配置文件 {elasticsearch}/config/elasticearch.yml

  • 修改集群名称,默认是elasticsearch,虽然目前是单机,但是也会有默认的

  • 为当前的es节点取个名称,名称随意,如果在集群环境中,都要有相应的名字

  • 修改data数据保存地址

  • 修改日志数据保存地址

  • 绑定es网络ip,原理同redis

  • 默认端口号,可以自定义修改

  • 集群节点,名字可以先改成之前的那个节点名称

4. 修改JVM参数

默认xms和xmx都是1g,虚拟机内存没这么大,修改一下即可,生产环境可以使用默认的配置,或者根据硬件配置进行调整

5. 添加用户

ES不允许使用root操作es,需要添加用户,操作如下:

    useradd esuser
    chown -R esuser:esuser /usr/local/elasticsearch-7.4.2
    su esuser
    whoami
  

如果使用root用户启动出现如下错误信息,另外对应的文件夹也需要拥有用户组和用户属组的权限;

6. 启动ES

./elasticsearch

如果出现如下错误:

那么需要切换到root用户下去修改配置如下:设置elasticsearch process的最大文件描述和 esuser的最大线程数;

    vim /etc/security/limits.conf
    
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096

后续启动会出现如下错误,需要在设置一下max virtual memory areas 编辑 vim /etc/sysctl.conf 设置大于262144的值vm.max_map_count=262145

别忘记 sysctl -p 刷新一下

最后再次启动OK

7. 测试

访问你的虚拟机ip+端口号9200,如下则表示OK

停止es

如果是前台启动,直接ctrl+c就可以停止

后台启动: ./elasticsearch -d

停止ES实例,kill杀进程:

端口号意义

  • 9200:Http协议,用于外部通讯
  • 9300:Tcp协议,ES集群之间是通过9300通讯

如果使用centos6.x中安装es,那么和centos7有些不同,可以参考博文:https://www.cnblogs.com/leechenxiang/p/10897562.html

虚拟机切换root用户失败的解决办法

su: Authentication failure

场景:我之前从来没有登陆过root账户,不知道密码,因此解决办法如下:
输入命令行

  1. sudo passwd root
  2. 输入当前账户密码
  3. 输root账户密码
  4. 重复输入root账户密码

另外也许不能直接通过其他用户切换到esuser用户,比如虚拟机默认用户parallels 切换esuser也会出现如下错误,需要先切换root用户再切换为esuser用户

出现jps命令找不到的问题

安装开发环境的openjdk即可;
yum install java-1.8.0-openjdk-devel.x86_64
然后就可以用java命令查看进程号了;