最新 Elasticsearch + 中文分词器安装与配置教程(Ubuntu 环境)
在副业项目中,如果你需要实现全文搜索、日志分析、数据可视化等功能,Elasticsearch(简称 ES) 是一个非常强大的开源工具。它常被用于构建搜索引擎、监控系统、数据分析平台等,是很多技术副业项目的核心组件。
本文将带你一步步在 Ubuntu 环境下安装和配置 Elasticsearch 7.15.2,适合新手操作,保姆级教程,手把手带你跑通!
一、下载与解压
可以在这里查看最新下载链接:https://www.elastic.co/cn/
下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz
解压到指定目录
tar -xzf elasticsearch-7.15.2-linux-x86_64.tar.gz
二、安全配置(必须!)
Elasticsearch 不允许使用 root 用户启动,这是出于安全考虑。
创建专用用户
adduser es
passwd es # 设置密码
修改目录权限
chown -R es:es /elasticsearch-7.15.2/
后续所有操作建议切换到es用户进行。
三、Elasticsearch 目录说明
- bin:可执行文件在里面,运行es的命令就在这个里面
- config:配置文件目录
- lib:依赖的jar
- logs:日志
- modules:模块
- plugins:可以自己开发的插件
- data:索引目录
如果发现没有数据、日志目录,则手动创建数据和日志目录。
mkdir /elasticsearch-7.15.2/{data,logs}
再次确保权限
chown -R es:es /elasticsearch-7.15.2/
四、核心配置(elasticsearch.yml)
进入配置文件目录:
vim /elasticsearch-7.15.2/config/elasticsearch.yml
修改以下关键配置:
# 集群名称(可自定义)
cluster.name: my-projects-cluster
# 节点名称
node.name: node-1
# 数据存储路径(需提前创建)
path.data: /app/elasticsearch-7.15.2/data
# 日志路径
path.logs: /app/elasticsearch-7.15.2/logs
# 绑定 IP,0.0.0.0 表示允许所有 IP 访问,为了安全,可以指定允许访问的IP,并且可以设置多个
network.host: 0.0.0.0
# HTTP 端口
http.port: 9200
# 初始主节点(单节点模式下填自己)
cluster.initial_master_nodes: ["node-1"]
# 允许跨域访问(前端调试必备)
http.cors.enabled: true
http.cors.allow-origin: "*"
# 关闭自动创建索引(可选,提高安全性)
action.auto_create_index: false
五、JVM 与系统优化
JVM 配置(根据服务器硬件配置调整)
编辑 JVM 配置文件:
vim /elasticsearch-7.15.2/config/jvm.options
调整堆内存大小(根据服务器配置):
-Xms2g
-Xmx2g
建议设置为物理内存的一半,最大不超过 32GB。
系统资源限制
编辑 limits 配置:
vim /etc/security/limits.conf
添加:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
内核参数调优
vim /etc/sysctl.conf
添加:
vm.max_map_count=262145
保存后执行:
sysctl -p
六、JDK环境配置(采用自带的jdk)
声明:Elasticsearch自带的jdk启用Elasticsearch,如果用自己安装的java环境则不需要处理,可以跳过此步骤。
配置Elasticsearch启动脚本
cd elasticsearch-7.15.2/
vim bin/elasticsearch
在开头处添加以下配置
export JAVA_HOME=/your-path/Elasticsearch/elasticsearch-7.15.2/jdk
export PATH=$JAVA_HOME/bin:$PATH
添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/your-path/Elasticsearch/elasticsearch-7.15.2/jdk/bin/java"
else
JAVA=`which java`
fi
注:官方推荐用自带的jdk
七、启动 Elasticsearch
切换到es用户:
su - es
进入 ES 目录:
cd /app/elasticsearch-7.15.2
方式一:前台启动(推荐首次使用)
./bin/elasticsearch
可以实时查看启动日志,排查问题。
方式二:后台启动(正式使用)
./bin/elasticsearch -d
正式环境推荐使用 supervisor 作为守护进程管理 ES
八、验证是否启动成功
查看进程
ps -ef | grep elasticsearch
检查端口
netstat -an | grep 9200
浏览器访问
打开浏览器,访问:
http://你的服务器IP:9200
如果看到类似以下 JSON 响应,说明成功了!
{
"name" : "node-1",
"cluster_name" : "my-projects-cluster",
"cluster_uuid" : "abc123...",
"version" : {
"number" : "7.15.2",
"build_flavor" : "default",
"lucene_version" : "8.9.0"
},
"tagline" : "You Know, for Search"
}
🎉 恭喜你,Elasticsearch 已成功运行!
九、安装ik分词器
下载对应版本的 ik 中文分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases
解压(unzip)到 Elasticsearch 的 plugins 目录
重启ElasticSearch,看到loaded plugin [analysis-ik],说明 ik 中文分词器加载成功。