欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

elasticsearch 5.x 搭建学习过程

程序员文章站 2022-07-05 09:02:53
...

网上找了大部分的教程都是1.x 2.x 的搭建  找个5.x 版本的搭建资料去参考真不容易啊

liunx 下安装。cd /usr/local 目标路径 自定义的,我这里下的是最新的5.6.1的包 

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.1.tar.gz

下载完成 解压 tar -zxvfelasticsearch-5.6.1.tar.gz

需要jdk 8以上的环境 安装JD8这里就不说了,自己百度。我用的是最新的8.0_144版本

启动 ES bin目录下 ./elasticsearch

报错 0x00007f2cae000000, 33554432, 0) failed; error='Cannot allocate memory' (errno=12)

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

由于elasticsearch5.0默认分配jvm空间大小为2g,修改jvm空间分配,ES_HOME/config/jvm.options  -xms2g -xmx修改为 -xms512m -xmx512m


继续启动 报错 can not run elasticsearch as root 显然不能用root用户启动,那么我们新建一个用户去启动。

切换到 root  新建用户,adduser esUser

继续启动,继续报错 

权限不够,用root赋予ES用户文件夹权限 chown esUser /usr/local -R

切换到esUser

启动继续报错,不是权限的问题,新的问题

启动报错的部分问题 参考http://blog.csdn.net/u012246178/article/details/63253531

经过各种修改配置文件,解决,启动正常,通过 curl localhost:9200 访问,返回

{
  "name" : "Oj6a5e4",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "qbhH0ylgQp-PBARMkB_Peg",
  "version" : {
    "number" : "5.6.1",
    "build_hash" : "667b497",
    "build_date" : "2017-09-14T19:22:05.189Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

name 为es启动时自动分配给当前节点的名字,

cluster_name 当前节点所属集群的名称,默认为elasticsearch

剩下的就是一些版本的信息,说明本地访问成功,然而因为我是阿里云搭建的,我想本地测试,

那么我要开通对外网的接口访问功能了。

首先stop es,我用了最粗暴的方法 lsof -i:9200 查看9200端口的进程相关信息,

获取到PID,kill -9 pid ,

修改%ES_HOME%/config/elasticseache.yml  

放开 network:192.168.0.1 的注释 并为修改为 network:0.0.0.0 

重新启动es ,启动成功

然后通过 IP:9200 访问 失败,再次查看liunx ,成功啊 ??? 然后各种修改配置文件 ,折腾了我一下午,居然是阿里云的安全组策略,我勒个去。。坑死爹。。

新增安全组策略 开放9200端口,访问成功。


 Ip:9200/_cat?indics  这个命令可以获取到es当前所有的索引信息,

health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   customer MN7ieNzwSwGrfCfMBK0IWQ   5   1        103            0    147.9kb        147.9kb
health 健康状态 有绿色 黄色 红色。对应索引的数据状态

index 为当前es所拥有的索引,name 为 customer

/_cat 为es提供的一些系统级api,可以查看一些系统信息


从而引出索引 index ,我对索引的理解是对应数据库的库,

每个库都有自己的表,对应到es 就是 type(类型),

每个表都有自己的数据记录(行),那么每条记录 对应到es上就是 doc (文档,)

但是不同的地方是数据库里 每个表的每行记录都是固定的几个字段,不管是你增删改查,都要遵循这几个字段进行操作。

而在es中 ,每个类型里的每个文档可以有不同的字段。对于类型来说,你的文档不管几个字段,我通吃。


然后开始练习es的各种语法的联系,这里参考一下 http://blog.csdn.net/cnweike/article/details/33736429

进行一些初步的了解,然后就可以整合前段时间搭建的spring cloud demo。