中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:
Web服务器
代理服务器
ZooKeeper
Kafka
RabbitMQ
Hadoop HDFS
Elasticsearch ES (本章节)
我们上一个小节,我们对Elasticsearch (ES)有了基本的了解,本小节就来部署他,部署之前需要先了解他的版本。
早期的ES,一般都是以ELK(Elasticsearch、Logstash、Kibana)方式存在的,但是他们的软件版本号并不统一。2016 年秋季,Elastic 公司为简化生态协作,跳过 3.x 和 4.x,直接将所有组件版本统一对齐至 5.0,并命名为 Elastic Stack。
后续的版本从5.X->6.X->7.X>8.X>到目前最新的9.X,如果你进入的一个成熟的公司,一般而言你见到的版本比较大概率是5,6,7的版本,所以我们这里还是以7.X来讲解(虽然我用这个版本其实比较少,但是作为基本操作并无太大的区别)。
1.安装JDK
我以前运维的ES里面也遇到过性能问题,需要使用Oracle的JDK的情况,当然我这里为了简单还是使用的openjdk。
代码语言:javascript代码运行次数:0运行复制yum -y install java-1.8.0-openjdk2.下载ES
代码语言:javascript代码运行次数:0运行复制wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.29-linux-x86_64.tar.gz3.准备ES启动环境
ES和其他软件略有不一样的地方,其他软件都支持root和非root启动,而ES只支持非root用户启动。关于Linux用户可以查看历史文章:Linux用户。
代码语言:javascript代码运行次数:0运行复制#root用户操作
useradd es
mv elasticsearch-7.17.29-linux-x86_64.tar.gz /home/es/
chown es.es /home/es/elasticsearch-7.17.29-linux-x86_64.tar.gz
su es
#es用户操作
cd ~
tar xvf elasticsearch-7.17.29-linux-x86_64.tar.gz
cd elasticsearch-7.17.294.启动ES
以前还需要修改打开文件限制才可以启动,这个版本已经不需要(基于Centos7系统)。
代码语言:javascript代码运行次数:0运行复制#前台启动
./bin/elasticsearch
#后台启动
./bin/elasticsearch -d5.检查ES集群
这个是未修改任何配置文件的情况下的集群状态,能正常返回数据,则说明启动成功。
代码语言:javascript代码运行次数:0运行复制[es@localhost ~]$ curl localhost:9200
{
"name" : "localhost.localdomain",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "gqj6J0l0TmKuFUKWQ5lV7A",
"version" : {
"number" : "7.17.29",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "580aff1a0064ce4c93293aaab6fcc55e22c10d1c",
"build_date" : "2025-06-19T01:37:57.847711500Z",
"build_snapshot" : false,
"lucene_version" : "8.11.3",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[es@localhost ~]$ 6.检查ES端口
ES默认会监听2个端口:一个9200是http端口,用于数据的增删查改查,也用于ES集群本身状态的增删改查。9300则是用于集群通信(TCP协议),当前是单机,所以这个端口不起作用。
代码语言:javascript代码运行次数:0运行复制[root@localhost ~]# netstat -lnp|grep java
tcp6 0 0 127.0.0.1:9300 :::* LISTEN 2080/java
tcp6 0 0 ::1:9300 :::* LISTEN 2080/java
tcp6 0 0 127.0.0.1:9200 :::* LISTEN 2080/java
tcp6 0 0 ::1:9200 :::* LISTEN 2080/java
[root@localhost ~]#