Elasticsearch离线安装(linux)

一、官网下载源文件
下载地址:https://www.elastic.co/cn/downloads/past-releases
在这里插入图片描述
根据环境及安装方式,可选对应文件进行下载
在这里插入图片描述
下载好的文件为:elasticsearch-6.2.4.tar.gz

二、上传至linux服务器并部署

上传至linux服务器,并解压至特定文件夹,解压后会生成一个名为elasticsearch-6.2.4的文件夹,此文件夹目录如下:
在这里插入图片描述
注意:elasticsearch不支持root用户启动,所以需要新建一个用户,并把解压后的目录权限赋给新建用户。
示例:

  • 新建用户elastic:useradd elastic
  • 目录赋权:chown -R elastic elasticsearch-6.2.4/

简单点的话主要关注的就是bin目录和config目录

  • bin: elasticsearch启动脚本所在目录
  • config: 配置文件所在目录,主要配置文件elasticsearch.yml(es配置)、jvm.options(堆内存分配设置)

elasticsearch.yml常用配置:

#集群名称(默认值my-application),如果搭建多个集群,可用这个属性来区分不同集群
cluster.name: es-lee

#节点名称(默认值node-1),用以区分节点
node.name: node-1

#索引数据存放目录(默认值/path/to/data),自行指定目录便于管理,也可使用逗号分隔使用多目录
path.data: /data/es/data

#日志文件存储目录(默认值/path/to/logs),自行指定目录便于管理,也可使用默认值,指定目录需注意使用用户有读写权限
path.logs: /data/es/log

#设置节点服务器ip(其他服务器可通过IP访问)
network.host: 192.168.79.10

#对外服务的http端口(默认值9200)
http.port: 9200

其他配置还有很多,详情参考官网https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

jvm.options常用配置:

#最小堆存
-Xms4g 
#最大堆内存,使用超出后会发生OOM
-Xmx4g

此处注意的是,最小堆内与最大堆内存建议设置一致,避免程序运行过程中动态分配影响性能,官方建议是不超过节点服务器内存的一半,且考虑Java压缩指针的作用,最大不要超过32G(常用说法,实际并不那么标准,后面链接有说明),堆内存设置还真是门学问,不能太大,不能小,想要深入了解的话可以看看这篇文章:https://www.elastic.co/cn/blog/a-heap-of-trouble

好了,配置到这里差不多了,可以运行起来看看效果了
使用bin目录下elasticsearch脚本执行:

./bin/elasticsearch

以为到这里就结束了吗,不,还没有…

三、常见启动问题

  1. 无法使用root用户启动
    使用root用户执行启动脚本,会抛出以下异常:

    org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.4.jar:6.2.4]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.4.jar:6.2.4]
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.4.jar:6.2.4]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
    at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.4.jar:6.2.4]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.4.jar:6.2.4]
    Caused by: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-6.2.4.jar:6.2.4]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-6.2.4.jar:6.2.4]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.4.jar:6.2.4]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.4.jar:6.2.4]

    解决方法上面已经提到,新建用户,使用其他用户启动,再启动试一波,什么?还没结束…

  2. 启动报错,操作系统环境相关配置
    错误详情:

    [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
    [2]: max number of threads [3791] for user [lee] is too low, increase to at least [4096]
    

    修改相关配置文件
    vi /etc/security/limits.conf

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

    具体错误原因这篇文章描述的比较详细:https://www.cnblogs.com/zhi-leaf/p/8484337.html

    好了,再次执行./bin/elasticsearch,启动成功,没有报错了,通过服务地址 http://服务器IP:9200 验证一下,出现下图结果说明启动成功
    在这里插入图片描述
    如果无法正常访问,也不要方。有两个原因可能会导致启动成功,其他服务器也无法通过ip访问。

    1. 看看 elasticsearch.yml配置文件network.host属性有没有对应配置IP,或者直接配置0.0.0.0
    2. 节点服务器的防火墙是否开启,关闭防火墙或者开放es占用端口即可

四、补充

以上只是单节点部署,要搭建ES集群的话也比较简单,按照以上步骤在其他服务器搭建部署,保持cluster.name集群名称保持一致,同一网段下的服务器会自动识别并组成集群,若非同一网段,在elasticsearch.yml文件增加以下配置:

#根据节点真实IP进行配置,也可通过域名配置
discovery.zen.ping.unicast.hosts: ["192.168.79.10", "192.168.79.11"]

通过ES提供的集群状态API可验证集群是否成功,API访问地址:http://任意节点IP:9200/_cluster/stats?pretty ,出现以下结果表示ES集群搭建成功
在这里插入图片描述

以上就是我在linux服务器中离线安装Elasticsearch并搭建集群的完整实践步骤。初次接触Elasticsearch,本文纯属个人理解,如有不当,烦请指出,不胜感激。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值