elasticsearch安装的各种坑

本文介绍了Elasticsearch的安装及配置过程中常见的几个问题及其解决方案,包括配置文件中参数格式错误、用户权限设置以及数据路径访问问题等。

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

elasticsearch简介

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

环境:

1. centos6.5
2. jdk1.8
3. elasticsearch6.3.2

使用命令./bin/elasticsearch启动elasticsearch(es)时,遇到各种问题,方便之后复习,记录在此。

问题1

参考文章,修改 Elastic 安装目录的config/elasticsearch.yml文件,去掉network.host的注释,将它的值改成0.0.0.0。重启后,出现以下问题:

 ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];

这个错就是参数的冒号前后没有加空格,加了之后就好:network.host: 0.0.0.0

问题2

can not run elasticsearch as root

因为我一直使用的root用户,最新的版本安全级别提高了,不允许采用root帐号启动,所以添加一个用户。

#添加一个用户:elasticsearch
$useradd elasticsearch
#给用户elasticsearch设置密码,连续输入2次
$passwd elasticsearch
#创建一个用户组 es
groupadd es
#分配 elasticsearch 到 es 组
usermod -G elasticsearch es
#这里注意下,如果提示用户“es”不存在,那么是因为服务器版本问题,你可以换成 usermod -G es elasticsearch ,也就是用户和用户组对调一下使用。
#这里感谢【武汉|Java|竹木鸟】发现这个问题,并告知我。
#在elasticsearch 根目录下,给定用户权限。-R表示逐级(N层目录) , * 表示 任何文件
chown  -R elasticsearch.es *
#切换到elasticsearch用户
su elasticsearch

问题3

创建了elasticsearch用户后,再次启动,晕,又报错了: Unable to access ‘path.data’ (/soft/elasticsearch/data),果断ls -lrt,原来是没有data文件夹。那就mkdir 呗,当然还得按照问题2中所说,赋予elasticsearch用户权限。

接下来还是遇到了各种问题,不过通过这篇文章基本解决,谢谢博主。有不当之处,新手勿喷,共同学习。

<think>好的,我现在需要帮助用户了解如何通过压缩包安装Elasticsearch。用户可能已经看过一些安装指南,但更希望得到详细的步骤说明。首先,我需要回顾提供的引用内容,确保信息准确。 根据引用[3],用户需要从官网下载安装说明,而引用[4]提到了编辑配置文件的具体路径,比如`/usr/local/es/elasticsearch-7.10.1/config/elasticsearch.yml`。引用[5]指出CentOS 6的内核版本过低,可能需要禁用插件。这些信息都需要整合到步骤中。 首先,安装前的准备工作很重要。用户需要确认系统环境,比如Java版本是否兼容。Elasticsearch 7及更高版本需要Java 11,所以需要检查Java环境。如果用户使用旧版系统如CentOS 6,可能需要升级内核或禁用插件,如引用[5]所述。 接下来是下载和解压压缩包。用户需要访问官网获取正确的下载链接,解压到指定目录,比如`/usr/local/es/`,如引用[2]和[4]中的路径所示。 然后,修改配置文件。编辑elasticsearch.yml,设置节点名称、网络主机、集群初始主节点等。引用[4]提到了配置文件的路径,需要指导用户正确修改这些参数。同时,可能需要调整JVM选项,比如堆内存大小,但需注意不超过物理内存的50%。 创建运行用户也是关键步骤,因为Elasticsearch不允许以root用户运行。需要指导用户创建专用用户并赋予目录权限,避免权限问题。 系统参数调整包括文件描述符数目、虚拟内存等设置,这部分在引用[5]中可能涉及,特别是当系统版本较低时,可能需要额外配置或禁用某些插件。 启动和测试步骤需要详细说明如何通过命令行启动,以及如何验证服务是否正常运行,比如使用curl检查本地端口。 最后,考虑作为服务运行,方便管理。引用[2]给出了使用systemd的示例,可以指导用户创建服务单元文件,并设置开机启动。 在问题生成部分,需要涵盖常见问题,比如启动失败的可能原因,集群配置,插件安装,以及日志查看方法。这些能帮助用户进一步排查问题和扩展应用。 整个过程中需要确保步骤清晰,避免遗漏关键点,如权限设置和系统参数调整,这些都是安装过程中常见的。同时,引用相关来源的信息,确保答案的可靠性。</think>### Elasticsearch 压缩包安装教程(Linux系统) --- #### **步骤1:安装前准备** 1. **确认系统环境** - 确保系统为64位Linux,内核版本≥3.5(CentOS 6需禁用插件或升级内核)[^5]。 - 安装Java环境:Elasticsearch 7.x+需要Java 11,可通过`java -version`验证。 2. **下载压缩包** - 访问[Elasticsearch官网](https://www.elastic.co/downloads/elasticsearch),选择对应版本的`.tar.gz`压缩包。 - 使用wget下载(以7.10.1为例): ```bash wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-linux-x86_64.tar.gz ``` --- #### **步骤2:解压并配置** 1. **解压到目标目录** ```bash tar -zxvf elasticsearch-7.10.1-linux-x86_64.tar.gz -C /usr/local/es/ ``` 2. **修改配置文件** - 编辑`elasticsearch.yml`: ```bash vim /usr/local/es/elasticsearch-7.10.1/config/elasticsearch.yml ``` - 关键配置项: ```yaml cluster.name: my-es-cluster # 集群名称 node.name: node-1 # 节点名称 network.host: 0.0.0.0 # 允许外部访问 cluster.initial_master_nodes: ["node-1"] # 初始主节点 ``` 3. **调整JVM参数**(可选) - 修改`config/jvm.options`,设置堆内存(例如:`-Xms2g -Xmx2g`)。 --- #### **步骤3:创建运行用户** 1. **禁止以root用户运行** ```bash useradd es-user chown -R es-user:es-user /usr/local/es/elasticsearch-7.10.1 ``` 2. **调整系统参数** - 修改`/etc/security/limits.conf`: ```bash es-user soft nofile 65536 es-user hard nofile 65536 ``` - 修改`/etc/sysctl.conf`,添加: ```bash vm.max_map_count=262144 ``` - 执行`sysctl -p`生效。 --- #### **步骤4:启动与验证** 1. **启动服务** ```bash su es-user cd /usr/local/es/elasticsearch-7.10.1/ ./bin/elasticsearch -d # 后台启动[^2] ``` 2. **验证是否成功** ```bash curl http://localhost:9200 ``` - 若返回JSON数据包含`"cluster_name": "my-es-cluster"`,则启动成功[^3]。 --- #### **步骤5:配置为系统服务**(可选) 1. **创建systemd服务文件** ```bash vim /etc/systemd/system/elasticsearch.service ``` - 内容参考: ```ini [Unit] Description=Elasticsearch After=network.target [Service] User=es-user ExecStart=/usr/local/es/elasticsearch-7.10.1/bin/elasticsearch Restart=always [Install] WantedBy=multi-user.target ``` 2. **启用服务** ```bash systemctl daemon-reload systemctl start elasticsearch systemctl enable elasticsearch ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PiflowX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值