ElasticSearch在Linux下的安装和启动、常见问题解决

一、环境要求

  • Linux(Centos 7)

  • ElasticSerach 6.6.1

二、Elasticsearch 下载

三、elasticsearch 的安装

  • 进入Linux系统,切换到 /opt 目录下:

  • 在opt目录下,创建elasticsearch文件夹,并进入文件夹内:

  • 获取elasticearch安装包:

方法1:可以使用在线下载命令,下载安装包:

 
  1. 下载命令:

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

方法2:可以将之前已经下载好的安装包上传到当前目录

使用WinSCP工具,将下载到本地的安装包,上传到linux目录下
  • 解压elasticsearch安装包
tar -zvxf  elasticsearch-6.6.1.tar.gz

  • 进入elasticsearch-6.6.1/config文件夹内,修改配置文件:
cd elasticsearch-6.6.1/config/

 
  1. 定位到#network.host: 192.168.0.1位置,在下面增加一行:

  2. network.host: 0.0.0.0

保存并退出(先按esc键,输入:wq!,按回车键即可)

四、启动

  • 启动elasticsearch为后台进程服务:
切换到bin目录下,执行如下命令:

启动命令:./elasticsearch -d

问题1:could not find java; set JAVA_HOME or ensure java is in PATH

解决方案:需要系统搭建Java环境,参考下面链接进行配置搭建Java环境(Java版本可更新)

                                                        CentOS7下会玩JDK不?你确定?

搭建完毕之后,再次执行命令:./elasticsearch -d

                                          

  • 判断是否启动成功,可执行如下命令,查看是否启用9200端口即可
ss -tanl

          

 
  1. 发现没有启用9200,则代表es启动失败,需要查看具体原因:

  2. 接下来,则需要查看启动日志,切换到日志logs目录下

  3. 执行如下命令即可:

  4. more elasticsearch.log

 
  1. 通过日志分析所得,启动es服务的时候,是不允许使用超级管理员root账户

  2. 那么接下来,我们需要创建一个普通用户likang

 
  1. 使用普通用户(as)启动es服务即可,如下命令:

  2. 第一步:liunx创建新用户 adduser as

然后给创建的用户加密码 passwd likang    输入两次密码.

第二步:给新建的XXX赋权限,chown -R as /opt/elasticsearch/

第三步:切换到as普通用户下,执行启动命令

  • 再次验证es是否启动成功,发现还是失败,再次查看日志,分析如图:

问题:max file descriptors [4096] for elasticsearch process is too low, 

 
  1. increase to at least [65536]

  2. 原因:每个进程最大同时打开文件数太小

  3. 查看当前系统同时打开进程数的默认值:

  4. ulimit -Hn

  5. ulimit -Sn

                                                      

解决方案:切换到root账户,修改/etc/security/limits.conf文件,
 
  1. 增加配置,用户退出后重新登录生效

  2. su root

  3. 输入密码

  4. vi /etc/security/limits.conf

  5. 在文件最后,增加如下配置:

  6. likang hard nofile 65536

  7. likang soft nofile 65536

  8. * soft nproc 4096

  9. * hard nproc 4096

                                                           

  • 再次启动验证,发现还有问题,如下:

问题:max virtual memory areas vm.max_map_count [65530] is too low, 

 
  1. increase to at least [262144]

  2. 原因:elasticsearch用户拥有的内存权限太小,至少需要262144

  3. 解决:切换到root用户,在/etc/sysctl.conf文件最后添加一行

  4. vm.max_map_count=655360

  5. 添加完毕之后,执行命令:

  6. sysctl -p

                                                                   

  • 再次切换到likang普通用户,重新启动es服务。

五、远程访问

  • 开启9200端口号访问
/sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT

可在浏览器中输入如下地址:http://192.168.13.9:9200/

  • 如果显示如上信息,则代表Linux下ES已经搭建完毕(单机)

 

  • 还可以用命令行的方式启动:
curl -XGET "http://localhost:9200"

尚未安装 curl 命令 :

apt install curl

重新输入命令:

六、停止

  • 若是es的前台运行,则用ctrl + c 来停止。
  • 若是es的后台运行,则用kill -9 进程号 来停止。(可通过jps命令,查看es进程号)
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值