seo 发表于 2022-5-31 12:59:08

ElasticSearch之安装

https://s8.51cto.com/images/blog/202205/30101910_6294299e7563f33858.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
  ElasticSearch 是目前非常流行的搜索引擎,对海量数据搜索是非常友好,并且在高并发场景下,也能发挥出稳定,快速特点。也是大数据和索搜服务的开发人员所极力追捧的中间件

在安装 Elasticsearch 之前,您需安装并配置好 JDK, 设置好环境变量 ​​$JAVA_HOME​​。
众所周知,Elasticsearch 版本很多,不同的版本对 Java 的依赖也有所差别:
Elasticsearch 5 需要 Java 8 以上版本;Elasticsearch 6.5 开始支持 Java 11;Elasticsearch 7.0 开始,内置了 Java 环境,所以说,安装 7.0+ 版本会方便很多。
因为我安装的版本是7.5所以不需要单独进行Java环境的安装,本次教程中用到的版本是7.5

1. JDK 环境
ElasticSearch 在 7.x 中自带 JDK 环境,所以现在不一定要安装 JDK。默认是先判断当前服务器是否安装 JDK,如果安装了就使用服务器已安装的 JDK,否则会使用自带的 JDK,当然这个也是可以手动设置。

2. 创建启动账号
由于 ElasticSearch 默认是不支持 root 账号权限启动,所以第一步要先创建启动账号。
  1)创建一个 ElasticSearch 的运行组 es:
groupadd es  2)在 es 组中创建用户:
useradd elastic -g es  3)设置新用户密码:
passwd elastic  4)给解压出的 ElasticSearch 包授权:
chown -R elastic:es elasticsearch-7.5.0
3. 修改配置文件
  先了解一下文件结构:


https://s9.51cto.com/images/blog/202205/30101910_6294299ec45f532147.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

进入到 ​​/elasticsearch-7.5.0​​​目录,在 ​​config​​​目录里有个 ​​elasticsearch.yml​​文件,修改里面当前需要的配置。
cluster.name 是所属集群的名称node.name 当前节点名称network.host 当前节点所绑定地址,绑定到​​0.0.0.0​​所有的访问http.port 对外提供服务的端口号path.data 数据存储目录,这个我一般不适用默认目录,但是要给自定义的目录授权path.log 日志目录,和 path.data 类似配置另外一个重要的配置,在当前目录中的 ​​jvm.options​​文件设置。这里设置堆内存大小,建议设置机器内存的 50% 大小。
因为自己服务器内存只有2g,加上启动服务占据差不多1g,所以我设置了500m
-Xms500m
-Xmx500m
注意点:这两个值要设置一样
4. 启动
./bin/elasticsearch-d
-d: 后台运行
出现started,表示启动成功。可以通过访问外网进行验证
https://s3.51cto.com/images/blog/202205/30101911_6294299f2ae3046802.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

如果访问成功的话,会出现内容:
{
name: "node-1",
cluster_name: "my-application",
cluster_uuid: "ouUTDd9zRza3PhMsGFpSSw",
version: {
number: "7.5.0",
build_flavor: "default",
build_type: "tar",
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"
}  
  可以使用命令进行访问:
curl localhost:9200

注意点:
有些童鞋的机器内存可能不够,就需要修改 JVM 参数,配置文件路径为​​config/jvm.options​​​,ES V7.1 版本默认为​​1g​​​, 老版本为​​2g​​, 你可以自行修改。​​Xmx​​​ 和​​Xms​​ 数值请设置相同;​​Xmx​​​ 不要超过机器内存的​​50%​​;内存总量不要超过 30GB, 参见官方文档​​https://www.elastic.co/cn/blog/a-heap-of-trouble​​;
常见问题
  启动服务:
  1. Exception in thread "main" java.nio.file.AccessDeniedException:
  错误原因:使用非 root用户启动ES,而该用户的文件权限不足而被拒绝执行
  解决:
chown -R 用户名:用户名文件(目录)名
  2. the default discovery settings are unsuitable for production use; at least one of must be configured
  原因:默认的发现设置不适合生产使用;至少有一个[发现]。seed_hosts,发现。seed_providers,集群。必须配置initial_master_nodes]
  解决:
这时候继续编辑elasticsearch.yml文件
将 #cluster.initial_master_nodes: ["node-1", "node-2"]
修改为 cluster.initial_master_nodes: ["node-1"],记得保存。

其他:
  Elasticsearch默认安装后设置的内存是1GB,这是远远不够用于生产环境的。
有两种方式修改Elasticsearch的堆内存:
设置环境变量:​​export ES_HEAP_SIZE=10g​​ 在es启动时会读取该变量;启动时作为参数传递给es:​​./bin/elasticsearch -Xmx10g -Xms10g​​
  虚拟内存调整大小:
# 编辑 sysctl.conf 文件
vim /etc/sysctl.conf
# 在 sysctl.conf 中添加
vm.max_map_count=
262144
# 查看刚设置的是否生效
sysctl -p

基本使用
  日常会使用连接工具进行可视化的操作。例如:elasticsearch-head
使用的时候,需要进行配置修改,否则无法连接成功:
vimconfig/elasticsearch.yml
最后追加:
http.cors.enabled: true
http.cors.allow-origin: "*"
   
   
   
            
               
      
      

https://www.yilongzhijia.cn/tupian/seo365t.jpg
页: [1]
查看完整版本: ElasticSearch之安装