侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 352 篇文章
  • 累计创建 135 个标签
  • 累计收到 10 条评论

目 录CONTENT

文章目录

ES教程2-ES的下载与安装

孔子说JAVA
2022-10-07 / 0 评论 / 0 点赞 / 100 阅读 / 9,172 字 / 正在检测是否收录...
广告 广告

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elastic有一条完整的产品线及解决方案:Elasticsearch、Kibana、Logstash等,这3个就是大家常说的ELK技术栈。

1、简介

Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。Elasticsearch具备以下特点:

  • 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
  • Restful风格,一切API都遵循Rest原则,容易上手近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。

Elasticsearch(官网:https://www.elastic.co/cn/products/elasticsearch )是Elastic Stack 的核心技术。详细介绍参考官网。

2、准备工作

因为ElasticSearch是用Java语言编写的,所以必须安装JDK的环境,并且是JDK 1.8以上,具体可以参考:Linux下JAVA WEB服务器的搭建一(JDK\MYSQL\TOMCAT)

特别注意:elasticsearch是支持JDK1.8的,但仅仅是7.17.3及其之前的版本。如果是最新版本,最低的JDK得17及其以上。
如果你安装的elasticsearch版本高于7.17.3,而你JDK的版本是1.8,可以配置 ES_JAVA_HOME 环境变量,elasticsearch 会使用 ES_JAVA_HOME 环境变量,没有 ES_JAVA_HOME 环境变量时,才会使用 JAVA_HOME 环境变量。

下载安装包:

进入下载页面:https://www.elastic.co/cn/downloads/elasticsearch

image-1664788139608

选择8.1.0版本:

image-1664788348226

进入8.1.0版本的下载页面:

image-1664788397821

选择所需环境下载即可,我们选择 LINUX X86_64 进行下载。

7.17.3版本下载地址(支持jdk1.8):

linux下载地址https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.3-linux-x86_64.tar.gz
windows下载地址https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.3-windows-x86_64.zip
mac下载地址https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.3-darwin-x86_64.tar.gz

3、安装ES

3.1 创建es用户并授权

ES为了安全不允许使用root用户启动。ES5之后的都不能使用添加启动参数或者修改配置文件等方法启动了,必须要创建用户。我们以root用户身份创建用户es:

adduser es
passwd es

image-1664788851153

es安装目录如果放在了root的家目录下,新用户是不能访问到的,所以即使ES属于新用户了,但目录权限原因访问不到lib里的jar包,所以找不到Java类。这时候需要把ES搬到新用户的家(home)目录内。为了避免上述麻烦,我们直接切换到新建的es用户下,然后新建目录和下载安装包。

root@xnzysq20210118001:~# su es
es@xnzysq20210118001:/root$ cd ~
es@xnzysq20210118001:~$ ls
es@xnzysq20210118001:~$ pwd
/home/es
es@xnzysq20210118001:~$ mkdir es
es@xnzysq20210118001:~$ cd es
es@xnzysq20210118001:~/es$ pwd
/home/es/es

image-1664789180653

切换回root用户给es用户设置目录权限,之后再切换回es用户:

es@xnzysq20210118001:~/es$ su root
Password: 
root@xnzysq20210118001:/home/es/es# chown -R 755 /home/es/es
root@xnzysq20210118001:/home/es/es# chown -R es:es /home/es/es
root@xnzysq20210118001:/home/es/es# su es
es@xnzysq20210118001:~/es$

image-1664789472875

3.2 下载8.1.0版本

下载ES

切换到es用户后,在/home/es/es目录下执行下载命令:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.1.0-linux-x86_64.tar.gz

解压ES

tar -zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz

启动ES

启动ES,通过 -d 参数,表示后台运行,如果不加 -d 参数,则在前台运行。

cd elasticsearch-8.1.0/

bin/elasticsearch -d

image-1664846081592

可以通过 logs/elasticsearch.log 日志,查看启动是否成功。

image-1664846149246

4、测试

访问 http://服务器 IP:9200 后,成功返回如下 JSON 串,表示成功。

curl http://localhost:9200/
{
  "name" : "UK2obWU",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "ao_6EsyNQ5q2Epd-Xe5mMg",
  "version" : {
    "number" : "6.5.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "816e6f6",
    "build_date" : "2018-11-09T18:58:36.352602Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

如果返回的是如下信息,表示jdk版本和elasticsearch不兼容。

es@xnzysq20210118001:~/es/elasticsearch-8.1.0$ curl http://localhost:9200/
curl: (52) Empty reply from server

elasticsearch是支持JDK1.8的,但仅仅是7.17.3及其之前的版本。如果是最新版本,最低的JDK得17及其以上。
如果你安装的elasticsearch版本高于7.17.3,而你JDK的版本是1.8,可以配置 ES_JAVA_HOME 环境变量,elasticsearch 会使用 ES_JAVA_HOME 环境变量,没有 ES_JAVA_HOME 环境变量时,才会使用 JAVA_HOME 环境变量。
因为我的服务器安装的是jdk1.8,可以配置 ES_JAVA_HOME 环境变量,也可以选择低版本重新下载安装,如下载安装 7.17.3 版本。

5、jdk1.8支持版本 7.17.3 的安装

  1. 杀掉elasticsearch8.1.0进程并删除安装目录
ps -ef|grep elas

kill -9 进程号

rm -rf elasticsearch-8.1.0

image-1664847164006

  1. 下载elasticsearch-7.17.3
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.3-linux-x86_64.tar.gz
  1. 解压ES
tar -zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz
  1. 启动ES

启动ES,通过 -d 参数,表示后台运行,如果不加 -d 参数,则在前台运行。

cd elasticsearch-7.17.3/

bin/elasticsearch -d

image-1664847669258

在启动日志的第一行有这样一句:“warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME”,意思是“警告:不推荐使用JAVA_HOME,请使用ES_JAVA_HOME”。这是因为elasticsearch 7系列版本以上都是自带的jdk,可以在es的bin目录下找到elasticsearch-env.bat这个文件,配置es的jdk。官方推荐使用es自带的jdk。

  1. 测试
curl http://localhost:9200/
{
  "name" : "xnzysq20210118001",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "XLd-MDcCRcO0O-Ta5z6ISg",
  "version" : {
    "number" : "7.17.3",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "5ad023604c8d7416c9eb6c0eadb62b14e766caff",
    "build_date" : "2022-04-19T08:11:19.070913226Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

image-1664847686462

6、开启ES远程访问

如果想要在个人电脑上访问ES,需要开启ES的远程访问功能。

image-1664849364046

  1. 修改 elasticsearch.yml 文件,将原来network修改为以下配置:
vim elasticsearch.yml

修改 network.host 部分: network.host: 0.0.0.0

image-1664849329863

  1. Ubuntu开通9200防火墙

切换到root用户,Ubuntu防火墙开放9200端口:

# 防火墙开放9092端口
ufw allow 9200

# 查看状态
ufw status

image-1664849011710

  1. 远程电脑浏览器访问:

image-1664852960833

7、报错问题解决

  1. elasticsearch启动报错: bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
bootstrap check failure [2] of [2]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

1) max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

编辑 /etc/security/limits.conf,追加以下内容(需要在 Root 下执行);

* soft nofile 65536
* hard nofile 65536

image-1664850468439

修改完成后同时使用命令修改配置:

$ ulimit -n 65536
$ ulimit -n
65536

image-1664851104730

这些配置主要为文件系统描述符及相关的配置,具体的配置可以根据自己的系统配置调大或调小。

2) max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

编辑 /etc/sysctl.conf,追加以下内容(需要在 Root 下执行,如果服务器已经配置好,可以不用重复配置。):

vm.max_map_count=655360

image-1664850899387

保存后,执行:sysctl -p 命令,使配置生效。

image-1664851218059

切换到es用户,重新启动elasticsearch,成功。

bin/elasticsearch -d
  1. 开启远程后curl报错:You must address the points described in the following [1] lines before starting Elasticsearch.

具体报错信息如下:

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /home/es/es/elasticsearch-7.17.3/logs/elasticsearch.log

修改elasticsearch.yml 文件配置,vim config/elasticsearch.yml:

cluster.name: escluster
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["172.19.82.206", "127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

image-1664852315255

image-1664852815875

image-1664852751257

image-1664852768348

远程电脑浏览器访问:

image-1664852960833

8、其他配置

8.1 集群启动

修改配置文件: vim elasticsearch.yml

//配置集群名称
cluster.name: elasticsearch
//配置节点名称
node.name: node-1
//配置数据存放路径
path.data: /path/to/data
//配置日志存放路径
path.logs: /path/to/logs
//配置访问地址 所有机器可访问 则配置为0.0.0.0 
network.host: 0.0.0.0
//配置访问端口
http.port: 9200
//配置集群扫描地址
discovery.seed_hosts: ["172.18.88.96", "127.0.0.1"]
//配置集群节点主节点竞选的节点
cluster.initial_master_nodes: ["node-1", "node-2"]

三台机器不一样的配置点如下

node.name: node-1
node.name: node-2
node.name: node-3

启动集群节点:

./elasticsearch -Epath.data=data1 -Epath.logs=log1 -Enode.name=node-1 -d
./elasticsearch -Epath.data=data2 -Epath.logs=log2 -Enode.name=node-2 -d
./elasticsearch -Epath.data=data3 -Epath.logs=log3 -Enode.name=node-3 -d

查看集群健康信息:

curl http://localhost:9200/_cluster/health
curl http://localhost:9200/_cat/healthv=true

查看节点列表:

curl http://localhost:9200/_cat/nodes

查看节点信息:

curl http://localhost:9200/_nodes/transportpretty

8.2 Windows环境安装ES

# 官网下载相应版本的es:
	https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-5-0

# 解压,运行即可
	可执行文件在bin路径下:elasticsearch.bat
        
# 测试安装完成
	 访问  http://127.0.0.1:9200/ 出现一下内容就完成
{
  "name" : "LAPTOP-RTJ1RGT4",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "z30C0eUwRKa5pQsSW0Yprg",
  "version" : {
    "number" : "7.5.0",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "e9ccaed468e2fac2275a3761849cbee64b39519f",
    "build_date" : "2019-11-26T01:06:52.518245Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

8.3 Mac环境安装ES

# 官网下载相应版本
	https://www.elastic.co/cn/downloads/elasticsearch

# 下载其他版本
	https://www.elastic.co/cn/downloads/past-releases#elasticsearch

#  解压文件,切换到解压文件路径下,执行
	cd elasticsearch-<version> #切换到路径下
	./bin/elasticsearch  #启动es
	#如果你想把 Elasticsearch 作为一个守护进程在后台运行,那么可以在后面添加参数 -d 。

# 测试安装完成
	访问  http://127.0.0.1:9200/

# 关闭es
	#查看进程
		ps -ef | grep elastic
	#干掉进程
		kill -9 2382(进程号)
0

评论区