网上找了大部分的教程都是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。