Linux安装Elasticsearch

本文提供在腾讯云服务器CentOS7.2环境下安装Elasticsearch的详细步骤,包括JDK安装、Elasticsearch下载、配置及常见问题解决,如内存分配、用户权限和网络访问设置。

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

本文介绍Linux环境如何安装Elasticsearch.

本文环境是在腾讯云服务器CentOS7.2搭建的,JDK1.8,elasticsearch-5.4.2。

1 安装JDK

网上教程很多,也可以参考本人教程之前写的Linux安装JDK

2 安装Elasticsearch

2.1 创建elasticsearch目录

cd /usr/local/
mkdir tool
cd tool
mkdir elasticsearch
cd elasticsearch

2.1 下载Elasticsearch

2.1.1 在刚刚创建好的文件夹内下载Elasticsearch(以下简称es)

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.2.tar.gz

2.1.2 解压es包

tar -xvf elasticsearch-5.4.2.tar.gz

2.1.3 进入es/bin包

cd elasticsearch-5.4.2/bin

2.1.4 启动es

./elasticsearch

2.2 解决问题

2.2.1 问题一

直接启动,遇到如图问题,如下:

这个问题是由于内存分配不够造成的,修改适合本机的内存,修改文件config/jvm.options

vi ../config/jvm.options

修改如下位置

由于我的服务器内存较小,修改为512m,具体可以根据情况修改,如下:

修改后在次启动:

./elasticsearch

2.2.2 问题二

出现如下错误:

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

如图

这个问题很明显,不允许使用root用户启动,那么我们新建一个es用户,并赋予权限:

添加es用户

useradd es

添加es用户密码

passwd es

将文件夹elasticsearch-5.4.2赋予es权限

chown -R es:es /usr/local/tool/elasticsearch/elasticsearch-5.4.2

切换为es用户

su es

再次启动es

./elasticsearch

这次启动成功了,我们在使用一个窗口登录root用户,输入命令:

curl -X GET http://localhost:9200

如图所示,可以成功访问

2.2.3 问题三

在浏览器访问http://118.24.242.170:9200/拒绝访问(118.24.242.170为服务器ip)

使用root用户,打开elasticsearch.yml文件,如下:

vi /usr/local/tool/elasticsearch/elasticsearch-5.4.2/config/elasticsearch.yml

文件内增加如下代码

network.host: 0.0.0.0

使用es用户启动,发现又出现了错误如下,得到错误信息如图

使用root用户打开如下文件:

vim /etc/sysctl.conf

添加如下配置:

vm.max_map_count = 655360

使配置生效

/sbin/sysctl -p

然后使用es用户启动Elasticsearch,这次可以成功启动了,如果需要后台启动的话,在启动命令后加&,如下所示:

./elasticsearch &

总结

以上全是本人踩坑实践得到的,亲测可用。

<think>我们正在安装Elasticsearch,根据引用[1]和引用[4],我们可以使用包管理工具安装。注意,引用[1]提到了导入GPG密钥,引用[4]提到了配置yum仓库。由于用户没有指定Linux发行版,我们将分别提供基于Debian/Ubuntu和基于RHEL/CentOS的安装方法。 步骤: 1. 导入Elasticsearch的GPG密钥(用于验证软件包) 2. 添加Elasticsearch仓库 3. 安装Elasticsearch 4. 启动并设置开机自启 注意:根据引用[4],Elasticsearch有开源版本(OSS),我们这里使用官方仓库。 对于Debian/Ubuntu系统(参考引用[1]): - 导入GPG密钥:`wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -` - 添加仓库:`echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list` - 更新并安装:`sudo apt update && sudo apt install elasticsearch-oss` 对于RHEL/CentOS系统(参考引用[4]): - 创建仓库文件:`/etc/yum.repos.d/elasticsearch.repo`,内容如下: [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md - 安装:`sudo yum install elasticsearch-oss` 注意:以上安装的是开源版本(不带商业功能)。如果需要默认的版本(包含商业功能,但需要遵守许可),可以去掉`-oss`,但注意许可证问题。 5. 配置Elasticsearch:编辑配置文件`/etc/elasticsearch/elasticsearch.yml`,主要设置集群名称、节点名称、网络绑定等。 6. 启动服务:`sudo systemctl start elasticsearch` 并设置开机自启:`sudo systemctl enable elasticsearch` 另外,引用[3]提到了一些生产环境的注意事项,例如数据存储和日志记录,在安装后需要根据实际情况调整。 现在,根据用户要求,我们生成相关问题。</think>### 在Linux系统上安装Elasticsearch的步骤 #### 1. **导入GPG密钥(安全验证)** ```bash wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - ``` > 此命令下载Elasticsearch的公钥并添加到APT信任列表中,确保软件包来源可信[^1]。 --- #### 2. **添加Elasticsearch仓库** - **Debian/Ubuntu系统**: ```bash echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list ``` - **RHEL/CentOS系统**: 创建仓库文件 `/etc/yum.repos.d/elasticsearch.repo` 并写入: ```ini [elasticsearch-7.x] name=Elasticsearch repository baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 ``` > 仓库配置指定了软件包下载源和验证方式[^4]。 --- #### 3. **安装Elasticsearch** - **APT系统(Debian/Ubuntu)**: ```bash sudo apt update && sudo apt install elasticsearch ``` - **YUM系统(RHEL/CentOS)**: ```bash sudo yum install elasticsearch-oss # 安装开源版本 ``` --- #### 4. **配置与启动服务** 1. **编辑配置文件**: ```bash sudo nano /etc/elasticsearch/elasticsearch.yml ``` 关键配置项: ```yaml cluster.name: my-cluster # 集群名称 node.name: node-1 # 节点名称 network.host: 0.0.0.0 # 允许远程访问(生产环境需设具体IP) discovery.type: single-node # 单节点模式 ``` 2. **启动并设置开机自启**: ```bash sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch ``` --- #### 5. **验证安装** ```bash curl -X GET "localhost:9200" ``` 成功响应示例: ```json { "name" : "node-1", "cluster_name" : "my-cluster", "version" : { ... } } ``` --- ### 关键注意事项 1. **存储配置**: - 默认数据目录:`/var/lib/elasticsearch` - 生产环境需挂载独立存储卷,避免使用Docker默认存储驱动(性能差)[^3] 2. **日志管理**: - 日志路径:`/var/log/elasticsearch` - 建议使用专用日志驱动(如`journald`),避免`json-file`默认驱动[^3] 3. **防火墙规则**: ```bash sudo ufw allow 9200/tcp # 开放API端口 sudo ufw allow 9300/tcp # 开放集群通信端口 ``` > **重要提示**:生产环境需额外配置安全组、TLS加密和用户认证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值