腾讯云安装部署ElasticSearch【初】

本文详细介绍Elasticsearch在Linux环境下的安装步骤,包括JDK安装、用户权限配置及常见问题解决方法,如内存溢出、启动失败及绑定外网等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文阿里云应该也同样适用。

一、 安装ElasticSearch

1. 安装JDK1.8

可参考 Linux安装JDK 。

2. ElasticSearch官网下载软件gz包,并解压,这里选 MACOS/LINUX 版本。

# 一般将软件包放在 /usr/local/src 路径
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz -O /usr/local/src

# 解压缩
cd /usr/local/src
tar -xvf elasticsearch-6.7.0.tar.gz

# 将解压后文件夹移到 /usr/local 路径下
mv elasticsearch-6.7.0 /usr/local

3. 运行

可以看到下面的运行日志,报错 can not run elasticsearch as root 不能用root用户运行elasticsearch。

[root@VM_0_2_centos ~]# cd /usr/local/elasticsearch-6.7.0/bin
[root@VM_0_2_centos bin]# ./elasticsearch
[2019-04-01T15:08:38,350][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [unknown] 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:163) ~[elasticsearch-6.7.0.jar:6.7.0]
        ...... 后面省略

那么,接下来创建一个用户用来运行elasticsearch

# root 用户操作
# 创建一个用户组
groupadd elasticsearch

# 创建一个用户 (在elasticsearch组下)
useradd es -g elasticsearch

# 给 elasticsearch 文件夹 授予 es 用户的访问权限 和 组权限
# -R 递归整个文件夹
chown -R es:elasticsearch /usr/local/elasticsearch-6.7.0

然后切到es用户(su - es)再运行,即可。

访问: http://ip地址:9200

二、出现的问题

1. 内存溢出问题

由于 elasticsearch 的默认 jvm 内存配置(配置文件 elasticsearch-6.7.0/config/jvm.options) 为 -Xms1g    -Xmx1g 配置,但测试使用的服务器只有1g内存,因此调整配置为128m内存就可以解决了。

2. 启动失败的问题

ERROR: [2] bootstrap checks failed
[1]: max number of threads [3884] for user [es] is too low, increase to at least [4096]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

问题[1]:

增加es用户的最大线程数:

# /etc/security/limits.d/20-nproc.conf 文件修改
# 增加 *          soft    nproc     4096
# 增加 *          hard    nproc     4096
vim /etc/security/limits.d/20-nproc.conf

# 20-nproc.conf 会覆盖 /etc/security/limits.conf 的内容
# 所以,只要改20-nproc.conf(名称可能不一样?待验证)就可以。

问题[2]:

增加虚拟内存

# /etc/sysctl.d/99-sysctl.conf 文件修改
# 增加 vm.max_map_count=262144
vim /etc/sysctl.d/99-sysctl.conf

# 99-sysctl.conf 文件会覆盖掉 /etc/sysctl.conf 内容
# 所以 只要改 99-sysctl.conf 就可以了

# 使其生效
sysctl -p

3. 如何绑定腾讯云外网

# elasticsearch-6.7.0/config/elasticsearch.yml 配置文件
# 这里绑定 0.0.0.0即可
network.host: 0.0.0.0

# 如果这里写腾讯云服务器的外网ip,则会有端口绑定失败问题

外网访问,要设置 腾讯云安全组

入站规则指定9200端口,实例一定要指定。下面有2个规则,上面的规则是为了保证正常端口的正常访问(如sftp等)。下面的是开发9200入站端口。

 

直接指定外网端口会绑定失败问题:

[2019-04-01T14:22:04,242][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [av4_g7-] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: BindTransportException[Failed to bind to [9300-9400]]; nested: BindException[Cannot assign requested address];
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.7.0.jar:6.7.0]
        ......

 

转载于:https://my.oschina.net/tita/blog/3030872

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值