一、安装
ElasticSearch的版本号从 1.X → 2.X → 5.X → 6.X
其中ES 5.X开始支持的jdk最低版本为jdk1.8
官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch
本次安装版本2.3.3
下载并解压。
二、启动
执行命令:./bin/elasticsearch 即可启动ES
ps.如果用xshell运行,希望退出xshell后不关闭进程
nohup [shell命令] &
默认监听端口9200,可以通过浏览器打开 locaohost:9200 验证是否启动成功;
Elasticsearch 不能以root用户启动
否则会抛异常
java.lang.RuntimeException: can not run elasticsearch as root
如果你任性,非要以root用户启动,那它也没有办法。后面加个参数吧
./elasticsearch -Des.insecure.allow.root=true
默认是外网无法访问的,如果需要添加外网访问权限,需要修改elasticsearch.yml
vim elasticsearch-2.3.3/config/elasticsearch.yml
#设定绑定的ip
network.host: 192.168.5.128
三、head插件安装(该插件提供可视化界面)
环境要求:node版本大于等于6.0
1、下载node安装包
wget https://npm.taobao.org/mirrors/node/latest-v8.x/node-v8.0.0-linux-x64.tar.gz
2、安装node
tar -zxvf node-v8.0.0-linux-x64.tar.gz
3、建立软链接
ln -s /home/node-v8.0.0-linux-x64/bin/node /usr/local/bin/
ln -s /home/node-v8.0.0-linux-x64/bin/npm /usr/local/bin/
4、下载head插件安装包
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
5、安装grunt
grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动
cd elasticsearch-head-master
npm install -g grunt-cli //执行后会生成node_modules文件夹
6、安装head
npm install
7、启动head
npm run start
8、权限配置
现在集群健康状态显示未连接,这是因为head插件没有权限获取集群节点的信息
vim elasticsearch/config/elasticsearch.yml
http.cors.enabled: true # elasticsearch中启用CORS
http.cors.allow-origin: "*" #允许访问的IP地址段,*为所有IP
9、重启ES和head
集群健康状态变成青青草原的颜色就代表连接成功;
Ps.
head插件离线安装
将解压后的master.zip放在ES的plugins文件夹,改名为head
访问 http://localhost:9200/_plugin/head/ 即可
四、概念
索引 数据库
类型 表
文档 记录
1)Cluster:集群。
ES可以作为一个独立的单个搜索服务器。不过,为了处理大型数据集,实现容错和高可用性,ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。
2)Node:节点。
形成集群的每个服务器称为节点。
3)Shard:分片。
当有大量的文档时,由于内存的限制、磁盘处理能力不足、无法足够快的响应客户端的请求等,一个节点可能不够。这种情况下,数据可以分为较小的分片。每个分片放到不同的服务器上。
当你查询的索引分布在多个分片上时,ES会把查询发送给每个相关的分片,并将结果组合在一起,而应用程序并不知道分片的存在。即:这个过程对用户来说是透明的。
4)Replia:副本。
为提高查询吞吐量或实现高可用性,可以使用分片副本。
副本是一个分片的精确复制,每个分片可以有零个或多个副本。ES中可以有许多相同的分片,其中之一被选择更改索引操作,这种特殊的分片称为主分片。
当主分片丢失时,如:该分片所在的数据不可用时,集群将副本提升为新的主分片。